介绍
栈式自编码神经网络(SA)是对自编码网络的一种使用方法,是一个由多层训练好的自编码器组成的神经网络。由于网络中的每一层都是单独训练而来,相当于都初始化一个合理的数值。所以,这样的网络会更容易训练,并且有更快的收敛性及更高的准确度。
栈式自编码常常被用于预训练深度神经网络之前的权重预训练步骤
(1)训练一个自编码器,得到原始输入的一阶特征表示h(1),也就是下图的feature I
(2)将上一步输出的特征h(1)作为输入,对其进行再一次自编码,并同时获取特征h(2)
(3)把上一步的特征h(2)连上softmax分类器,得到了一个图片数字标签分类的模型
(4)把这三层结合起来,就构成一个包含两个隐藏层加一个softmax的栈式编码网络,它可以对数字图片分类
意义
看了上面的步骤,我们不经疑问:为什么要这么麻烦?直接使用多层神经网络训练不是也可以?之所以使用这种方法,主要有以下优点:
1、每一层都可以单独训练,保证降维特征的可控性
2、对于高维度的分类问题, 一下拿出一套完整可用的模型相对来讲并不是容易的事, 因为节点太多, 参数太多, 一味地增加深度只会使结果越来越不可控, 成为测底的黑盒, 而使用栈式自编码逐层降维, 可以将复杂问题简单化, 更容易完成任务。
3、任意深层, 理论上是越深层的神经网络对现实的拟合度越高, 但是传统的多层神经网络,由于使用的是误差反向传播方式, 导致层越深,传播的误差越小。 栈式自编码巧妙地绕过这个问题, 直接使用降维后的特征值进行二次训练, 可以任意层数的加深。
栈式自编码网络具有强大的表达能力和深度神经网络的所有优点,它通常能够获取到输入的“层次型分组”或者“部分整体分解”结构,自编码其倾向于学习得到与样本相对应的低维向量,该向量可以更好地表示高位样本的数据特征
如果网络输入的是图像,第一层会学习边特征,二层会学习组合边、角等,更高层会学习更形象的特征