站点图标 AI技术聚合

堆叠式自动编码器(SAE)–学习笔记

  1. 自动编码器及常见类型:
    1. 对于自编码器,往往并不关心输出是什么(因为输出就是输入的复现),只需要关心中间层的编码,或输入到编码的映射。
    2. 如果在编码和输入不同的前提下,系统仍可以复原输入,则说明编码已承载输入的所有信息。即特征提取。
    3. 给隐层增加一定的约束,从数据维度:
      1. 隐藏层维度小于输入数据维度,当每两层之间的变换均为线性且监督训练的误差是二次型误差时,网络等价于PCA。
      2. 隐藏层维度大于输入数据维度,即“稀疏自编码器”,原理,从人脑机理出发,人类神经系统在某一刺激下,大部分神经元是被抑制的。
    4. 稀疏自编码器:
      1. 对隐藏单元施加稀疏性(同时具有比输入更多的隐藏单元), 自动编码器可以在输入数据中学习有用的结构。 这允许输入 的稀疏表示。 这些对于分类任务的前训练是有用的。
      2. 稀疏自动编码器是对自动编码器加入一个正则化项,约束隐含层神经元节点大部分输出0,少部分输出非零,大大减少了需要训练的参数数目。克服了自动编码器容易陷入局部及小值和存在过拟合的问题
  2. 无监督逐层贪婪预训练:
    1. 对于较深的网络,如果直接进行训练很容易出现梯度消失或梯度爆炸问题,无监督逐层贪婪预训练是减缓这一问题的一个简单方法,即通过逐层的进行单独训练,形成一个初始化的参数,在训练第L层时,冻结第1~(L-1)层的参数, 最终实现每一层的单独训练.
    2. 逐层单独使得每个层得参数都只是全部最优,然后再进行这个网络的训练,直到网络的收敛。
    3. 逐层预训练使得深度网络的训练成为可能,原因:预训练好的网络在一定程度上拟合了训练数据的结构,使得整个网络的初始值在一个合适的状态,便于有监督阶段加快迭代收敛。
  3. SAE:
    1. 是一个由多层稀疏自编码器组成的深度神经网络模型,其前一层自编码器隐层的输出作为其后一层自编码器的输入,最后一层是个分类器(logistic 回归或者softmax分类(预测分析))。
    2. SAE是在简单自动编码器基础上,增加隐藏层的深度,一般,堆栈自动编码器是关于隐层对称的,通常Encoder和Decoder的层数是一样的,左右对称.其对称层的参数也可以是具有转置关系的,这种技术称为权重捆绑,这样可以使得模型的参数减半,加快训练速度并降低过拟合的风险。注意: 偏置项不进行捆绑。
    3. 训练一个编码器得到隐层的特征表示h,再将h作为原始信息,训练一个新的自编码器,得到新的特征表达。
    4. SAE整个网络的训练不是一蹴而就的,而是需要逐层进行。逐层非监督预训练。
    5. 对于常见的分类任务,一般分为两个阶段:
      1. 逐层预训练(非监督学习,自动编码器各层的输出都是原始数据的不同表达)
      2. 微调(增加一层分类层,并结合有标注的训练数据,在误差函数指导下,对系统的参数进行微调,以使得整个网络能够完成所需的分类任务。)
      3. 通过layer-wise pre-training逐层堆叠起来,而不是直接训练多层的网络。
    6. 堆叠自动编码器方法与DBN相同,具体过程描述如下:
      1. 给定初始输入,采用无监督方式训练第一层自动编码器,减小重构误差达到设定值。
      2. 把第一个自动编码器隐含层的输出作为第二个自动编码器的输入,采用以上同样的方法训练自动编码器。
      3. 重复第二步直到初始化完成所有自动编码器。
      4. 把最后一个堆叠自动编码器的隐含层的输出作为分类器的输入,然后采用有监督的方法训练分类器的参数。

文章出处登录后可见!

已经登录?立即刷新
退出移动版