DL之AE:自编码器AutoEncoder的简介、应用、经典案例之详细攻略
目录
1.2、稀疏AutoEncoder、噪音容忍AutoEncoder、卷积AutoEncoder、变分AutoEncoder→对抗AutoEncoder
自编码器AutoEncoder的简介
自编码器(autoencoder, AE)是一类在半监督学习和非监督学习中使用的人工神经网络ANN,其功能是通过将输入信息作为学习目标,对输入信息进行表征学习(representation learning) 。
自编码器包含编码器(encoder)和解码器(decoder)两部分。按学习范式,自编码器可以被分为收缩自编码器(undercomplete autoencoder)、正则自编码器(regularized autoencoder)和变分自编码器(Variational AutoEncoder, VAE),其中前两者是判别模型、后者是生成模型。按构筑类型,自编码器可以是前馈结构或递归结构的神经网络。
自编码器具有一般意义上表征学习算法的功能,被应用于降维(dimensionality reduction)和异常值检测(anomaly detection)。包含卷积层构筑的自编码器可被应用于计算机视觉问题,包括图像降噪(image denoising)、神经风格迁移(neural style transfer)等。
1、AutoEncoder发展史
1.1、1986年RBM
AutoEncoder的基本思想是利用神经网络来做无监督学习,就是把样本的输入同时作为神经网络的输入和输出。本质上是希望学习到输入样本的表示(encoding)。早期AutoEncoder的研究主要是数据过于稀疏、数据高维导致计算复杂度高。比较早用神经网络做AutoEncoder的可以追溯到80年代的BPNN和MLP以及当时Hinton推崇的RBM。后来到了2000年以后还坚持在做的只剩下Hinton的RBM了。
1.2、稀疏AutoEncoder、噪音容忍AutoEncoder、卷积AutoEncoder、变分AutoEncoder→对抗AutoEncoder
从2000年以后,随着神经网络的快速兴起,AutoEncoder也得到快速发展,基本上有几条线:稀疏AutoEncoder、噪音容忍AutoEncoder、卷积AutoEncoder、变分AutoEncoder。最新的进展是结合对抗思想的对抗AutoEncoder。
- 稀疏AutoEncoder,在学习输入样本表示的时候可以学习到相对比较稀疏的表示结果,这在Overcomplete AutoEncoder(就是学习得到高维表示)方法中尤为重要。代表性人物包括斯坦福大学的Andrew Ng和蒙特利尔的Yoshua Bengio教授。具体方法就是在原来的损失函数中加一个控制稀疏化的正则化项,通过控制优化过程来实现。
- Denoising AutoEncoder的核心思想就是提高Encoder的鲁棒性,本质上就是避免可能的overfitting。一个办法是在输入中加入随机噪音(比如随机置0一些输入,或者随机把部分输入变为marked),这些思想后来在BERT等模型中也有广泛使用;另一个办法就是结合正则化的思想,比如在目标函数中加上eEncoder的Jacobian范数。Jacobian范数可以让学习到的特征表示更具有差异性。
- 著名研究者Jurgen Schmidhuber提出了基于卷积网络的AutoEncoder以及后来的LSTM AutoEncoder。Max Welling基于变分思想提出变分AutoEncoder方法VAE,这也是一个里程碑式的研究成果。后面很多研究者在这个工作上进行了扩展,包括info-VAE、beta-VAE和factorVAE等。
最近还有人借鉴Ian Goodfellow等人提出的对抗建模思想提出Adversarial AutoEncoder,也取得了很好的效果。这和之前的噪音容忍的AE学习也有一定呼应。除了上面的思想,就是可以把上面的各种方法stacking起来。
自编码器AutoEncoder的经典案例
1、基础案例
TF之AE:AE实现TF自带数据集AE的encoder之后decoder之前的非监督学习分类
TF之AE:AE实现TF自带数据集数字真实值对比AE先encoder后decoder预测数字的精确对比