栈式自编码

介绍

栈式自编码神经网络(Stacked Autoencoder,SA),是对自编码网络的一种使用方法,是一个由多层训练好的自编码器组成的神经网络。由于网络中的每一层都是单独训练而来,相当于都初始化了一个合理的数值。所以,这样的网络会更容易训练,并且有更快的收敛性及更好的准确度。

栈式自编码常常被用于预训练(初始化)神经网络之前的权重预训练步骤。例如,在一个分类问题上,可以按照从前向后的顺序执行每一层通过自编码器来训练,最终将网络中最深层的输出作为softmax分类器的输入特征,通过softmax层将其分开。

下面以训练一个包含两个隐含层的展示自编码网络为例子。
(1)训练一个自编码器,得到原始输入的一阶特征表示h(1)
栈式自编码_第1张图片
(2)将上一步输出的特征h(1)作为输入,对其进行再一次的自编码,并同时获取特征h(2)
栈式自编码_第2张图片
(3)把上一步的特征h(2)连接上softmax分类器,得到一个图片数字标签分类的模型
栈式自编码_第3张图片

栈式自编码在深度学习中的意义

SA的优点如下:
1.每一层都可以单独训练,保证降维特征的可控性
2.对于高维度的分类问题,一下子拿出一套完整可用的模型相对来说并不是容易的事情,因为节点太多,参数热爱多,一味地增加深度只会使结果越来越不可控,成为彻底的黑盒,而使用栈式自编码逐层降维,可以将复杂问题简单化,更容易完成任务。
3.任意深层,理论上是越深层的神经网络对现实的拟合度越高,但是传统的多层神经网络,由于使用的是误差反向传播方式,导致层越深,传播的误差越小。栈式自编码巧妙地绕过这个问题,直接使用降维后的特征值进行二次训练,可以任意层数的加深。

参考资料

《深度学习之Tensorflow 入门、原理与进阶实战》 李金洪

你可能感兴趣的:(tensorflow的学习)