AutoEncoder是多层神经网络,其中输入层和输出层表示相同的含义,具有相同的节点数。AutoEncode学习的是一个输入输出相同的“恒等函数”。不过输入和输出相同,使得这个网络的输出没有任何意义。AutoEncoder的意义在于学习的(通常是节点数更少的)中间coder层(最中间的那一层),这一层是输入向量的良好表示。这个过程起到了“降维”的作用。当AutoEncoder只有一个隐含层的时候,其原理相当于主成分分析(PCA),当AutoEncoder有多个隐含层的时候,每两层之间可以用RBM来pre-training,最后由BP来调整最终权值。网络权重更新公式很容易用求偏导数的方法推导出来,算法是梯度下降法。(RBM:层内无连接,层间全连接,二分图)
Denoising AutoEncoder是AutoEncoder的一个变种,与AutoEncoder不同的是,Denoising AutoEncoder在输入的过程中加入了噪声信息,从而让AutoEncoder能够学习这种噪声。
Denoising AutoEncoder与RBM非常像:
(1)参数一样:隐含层偏置、显示层偏置、网络权重
(2)作用一样:都是输入的另一种(压缩)表示
(3)过程类似:都有reconstruct,并且都是reconstruct与input的差别,越小越好
Denoising AutoEncoder与RBM的区别:
背后原理就不说了(RBM是能量函数),区别在于训练准则。RBM是隐含层“产生”显示层的概率(通常用log表示),Denoising AutoEncoder是输入分布与reconstruct分布的KL距离。所用的训练方法,前者是CD-k&