深度学习笔记(五) 栈式自编码器
部分内容来自:http://ufldl.stanford.edu/wiki/index.php/%E6%A0%88%E5%BC%8F%E8%87%AA%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95
栈式自编码神经网络是一个由多层稀疏自编码器组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入。对于一个 层栈式自编码的编码过程就是,按照从前向后的顺序执行每一层自编码器的编码步骤。
自编码器的隐含层t会作为t+1层的输入层,第一个输入层就是整个神经网络的输入层,利用贪心算法训练每一层的步骤如下:
1)首先采用稀疏自编码网络,先训练从输入层到H1层的参数:
训练完毕后,我们去除解码层,只留下从输入层到隐藏层的编码阶段。
2)接着我们训练从H1到H2的参数
我们把无标签数据的H1层神经元的激活值,作为H2层的输入层,然后在进行自编码训练:
最后训练完毕后,再去除H2层的解码层。
3)对所有层重复1)和2),即移除前面自编码器的输出层,用另一个自编码器代替,再用反向传播进行训练。
4)以上步骤称为预训练,但是通过这个训练并没有得到一个从输入数据到输出标记的映射,通常的办法是在网络的最后一层增加一个或多个连接层,整个网络可以看做是一个多层感知机,并用反向传播的方式进行训练,这一步也被称为微调。