神经网络学习之栈式自编码器

Posted 小黄有点忙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络学习之栈式自编码器相关的知识,希望对你有一定的参考价值。

多层自编码器能够更好地进行压缩和特征表达,通过对多个自编码器进行堆叠,即可形成栈式自编码器。

以两层自编码器堆叠为例,第一层的中间层可获得一阶特征,在第二层中,以一阶特征为输入,第二层的中间层即为二阶特征,最后将二阶特征作为下一步应用的依据,两层自编码器如下图所示。因此,不论多少层自编码器组合,都是将前一个的中间层作为下一个的输入层,以此类推,完成训练。其实上述过程也称为无监督预训练(pre-training),后面再介绍其作用。

将两层自编码器组合,最终获得高阶特征,并以分类应用为例,组合图如下图所示。

神经网络学习之栈式自编码器

上述的过程中我们提到了栈式自编码器可以用来实现无监督预训练,那么为什么需要无监督预训练,预训练又应该在哪里使用呢?

我们知道一般网络的层数都很多,对于网络的参数一般都是随机初始化,然后采用梯度下降法调整,随着层数太多,就会出现梯度消失等问题。如果多层网络采用栈式自编码器实现无监督预训练法,我们可以将得到的参数作为神经网络的初始参数,而这些参数能够更好地表达训练对象,效果优于随机初始化,使得训练过程更加顺利。除了无监督预训练之外,一般我们还会使用微调(fine turning),即有监督学习来调整整个网络的参数。

总结:自编码器机器衍生自编码器主要的功能有两项,其一可作为无监督学习的特征提取工具,其二可以对多层神经网络进行预训练。


如有问题,欢迎交流


以上是关于神经网络学习之栈式自编码器的主要内容,如果未能解决你的问题,请参考以下文章

降噪自编码器/稀疏自编码器/栈式自编码器

多层自编码器的微调

深度学习是什么

深度学习之自编码器

『cs231n』无监督学习

《Attention is all you need》论文学习