自编码器

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/tercel_w/article/details/53455973

自编码器

对于深层的前馈神经网络,如果使用误差逆传播算法进行训练,将会出现三大问题:
1. 神经网络参数数量巨大,极易导致过拟合。
2. 网络底层的权值难以变化,出现梯度弥散现象。
3. 深度神经网络的损失函数为非凸函数,如果随机初始化参数会使优化过程陷入局部极直。

自编码器可以用三层前馈神经网络实现。采用无监督学习方式,可以使用大量的无标记样本进行学习。
这里写图片描述

如上图所示,三层前馈神经网络的输入等于输出,第一层把x编码,第二层解码还原x。给定数据集{x_i} ,使用bp算法进行训练,最后得到一个编码器和一个解码器。从另一角度讲,编码过程其实就是提取特征的过程。

由多个自编码器组成深度神经网络,每一个自编码器使用前一个训练好的自编码器作为其输入,然后逐层训练。训练好的每一个自编码器都含有编码部分和解码部分。将这些编码部分和解码部分依次连接在一起,然后使用bp算法进行微调。

这里写图片描述
如上图所示,将所有的自编码器和解码器连接起来,形成一个深度神经网络,初始值在逐层训练时已获得,再用bp算法微调。

训练完成后,取深度网络的编码部分,作为常规的分类器和回归算法的输入,训练分类器或回归模型,即可得到整个深度神经网络的模型。

神经网络的编码部分可看作特征提取过程,特征的提取时是自动进行的,不再需要进行繁杂的特征工程了。

展开阅读全文

没有更多推荐了,返回首页