1 简介
本文根据2006年. G.E. Hinton 和R. R. Salakhutdinov的《Reducing the dimensionality of data with neural networks》翻译总结。
高维数据可以通过一个多层神经网络把它转换成一个低维数据,而且还能反向用低维数据重建高维数据。我们把这个神经网络叫做自动编码网络或自编码器(autoencoder)。梯度下降法可用来微调这个自动编码器的权值,但是只有在初始化权值较好时才能得到最优解,不然就容易陷入局部最优解。本文提供了一种有效的初始化权值算法(即预训练)。autoencoder这一模型比用主成份分析(PCA)来对数据进行降维更好更有效。PCA,是找到数据最大方差方向.
只从1980年代开始,通过深度autoencoder的反向传播(backpropagation)是处理非线性维度下降的一个非常有效分方法,但需要满足3个条件(1)计算机速度足够快;(2)数据集足够大;(3)初始权重有一个好的办法。而现在刚好就满足这三个条件了。
不像非参数化方法,autoencoder可以在源数据和编码数据间建立mapping,该方法可以应用于大规模数据集,因为预训练和fine-tuning在时间和空间上与训练数据大小是线性关系。
2 具体方法
如下图,(1)第一步预训练,迭代训练很多RBMs,即训练完一个RBM后,将其学到的特征用于训练下一个RBM;(2)接着是Unroll(展开),构成一个深度autoencoder;(3)最后使用反向传播fine-tuning。
3 公式
V对应图片像素,h为特征、隐藏单元。
4 实验结果
以下图B来说,第1行是原测试数据,第2行是30维 autoencoder重建的效果;第3行是30维logistic PCA重建的效果;第4行是30维标准PCA重建的效果;
下面三行的平均方差误差是3.00、8.01、13.87。可以看到autoencoder效果最好。