自编码器 AutoEncoder

作者 Boxiao Zhang 日期 2019-05-08
自编码器 AutoEncoder

https://www.cnblogs.com/royhoo/p/Autoencoders.html

https://cloud.tencent.com/developer/news/274563

自编码器

自编码器,一种捕捉数据最重要特征的神经网络

  • 无监督
  • A-A‘
  • 通过降维等操作,让网络学到input中的特征

自编码器是一种能够通过无监督学习,学到输入数据高效表示的人工神经网络。输入数据的这一高效表示称为编码(codings),其维度一般远小于输入数据,使得自编码器可用于降维。更重要的是,自编码器可作为强大的特征检测器(feature detectors),应用于深度神经网络的预训练。此外,自编码器还可以随机生成与训练数据类似的数据,这被称作生成模型(generative model)。比如,可以用人脸图片训练一个自编码器,它可以生成新的图片。

img

欠完备自编码器

自编码器我们想要它能够对输入的数据进行分析获取一些特性,而不是简单的输入输出,所以我们通过限制h的维度来实现,强迫自编码器去寻找训练数据中最显著的特征。

为什么叫欠完备,那是因为隐含层h的维度比输入x的小

稀疏自编码器

稀疏自编码器是正则编码器的一种,正则即代表正则化,在之前的自编码器中我们的隐藏层的维数是小于输入层的,因此我们可以强迫自编码器学习数据的“特征”。但是,如果隐含层的维数和输入层的维数相同或者大于输入层的维数(也可以说是容量)。那么我们的自编码器可能就学不到什么有用的东西了。

这个时候应该怎么办,我们可以学习神经网络中经常用到的东西,那就是正则化

Dropout?

为什么叫稀疏自编码器?

看下面的图就可以知道,隐含层中有些结点消失了,自然就变稀疏了。稀疏的隐含层与我们之前介绍的欠完备隐含层的区别是:稀疏自编码器可以使我们的隐含层中相对独立的结点对特定的输入特征或者属性变得更加敏感。也就是说欠完备的自编码器的隐含层对输入数据所有的信息进行观测利用,而稀疏则不同,它是有选择性的,只对感兴趣的区域进行探测。

img

这个效果好些没有欠完备自编码器好