深度学习笔记(九)AutoEncoder自动编码器

来源:互联网 发布:jquery get json 编辑:程序博客网 时间:2024/05/16 16:10
前面的神经网络都是是基于监督的网络,这一章节主要是介绍非监督学习网络,原理很简单,自己学习,然后将学习的内容反过来生存初始状态,然后对比,

×自动编码器是一种尽可能复现输入信号的神经网络
×自动编码器必须获取到代码输入数据的最主要的因素,
类似于PCA,尽量找到主要成分

基于监督的学习
 监督学习会有target,通过对比prediction和target 调整参数。如果没有target将无法进行。

非监督学习

我们将input输入一个encoder编码器,就会得到一个code,这个code也就是输入的一个表示,那么我们怎么知道这个code表示的就是input呢?我们加一个decoder解码器,这时候decoder就会输出一个信息,那么如果输出的这个信息和一开始的输入信号input是很像的(理想情况下就是一样的),那很明显,我们就有理由相信这个code是靠谱的。所以,我们就通过调整encoder和decoder的参数,使得重构误差最小,这时候我们就得到了输入input信号的第一个表示了,也就是编码code了。因为是无标签数据,所以误差的来源就是直接重构后与原输入相比得到。

对比的特征:


当第一层训练完成后,可以依次训练下一层:



当然我们也可以加入一些target微调参数。结构图如下:




具体分析:


目标函数:
 损失函数:

如果输入值是实数值,无界值,损失函数采用平方差,如果输入是时位矢量,采用交叉熵。


参考:
http://www.jianshu.com/p/8d0a7509b030