1.简介
- 自编码器是一种特殊的神经网络模型,它可以从无标签的训练集中训练得到,是一种无监督学习算法。它不仅可以用来降维,也可以作为一种生成模型,这表示此模型可以从输入数据中生成新的数据。本文中主要介绍不同类型的自编码器,并用TensorFlow进行实现。
2.原理
- 自编码器将原始的数据作为输入,然后将输入转化成有效的内部表现形式,输出数据看上去和输入是相似的。换句话说,为了生成新的数据来近似表示原始输入,自编码器从原始输入中寻找模型。
- 自编码器的组成:
- 注意:在一个自编码器中,输入层和输出层的神经元数目是相同的;为了让神经网络能够从原始输入数据中学习到最重要的特征,所以隐藏层的神经元数目必须比输入层的神经元数目少。也就是说,自编码器不是简单将输入复制到输出。因为,隐藏层比输出层的维度更低。
3.实战
1)降维
- 自编码器的一个应用就是降维,如果神经网络的激活函数使用线性激活函数,代价函数使用均方误差MSE,可以达到像PCA进行数据降维的效果。原始数据可视化如下:

- 训练一个自编码器对上述的数据进行降维,达到类似于PCA的效果:

- (2)堆自编码器(stacked autoencoders)

- (3) 变分自编码器(variational autoencoders)

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删