AutoEncoder是深度学习的另外一个重要内容,并且非常有意思,神经网络通过大量数据集,进行end-to-end的训练,不断提高其准确率,而AutoEncoder通过设计encode和decode过程使输入和输出越来越接近,是一种无监督学习过程。
AutoEncoder
Introduction
AutoEncoder包括两个过程:encode和decode,输入图片通过encode进行处理,得到code,再经过decode处理得到输出,有趣的是,我们控制encode的输出维数,就相当于强迫encode过程以低维参数学习高维特征,这导致的结果和PCA类似。
AutoEncoder的目的是使下图中的输入x和输出x_head越相似越好,这就需要在每次输出之后,进行误差反向传播,不断优化。
算法原理连接:http://ufldl.stanford.edu/wiki/index.php/自编码算法与稀疏性
总结:过程和原理都很简单,主要从头实现和一下代码就你呢很高更深的理解。
代码:
https://github.com/xiaorancs/xr-learn/blob/master/deeplearning/autoencoder.py