分享

DL之AE:自编码器AutoEncoder的简介、应用、经典案例之详细攻略

 处女座的程序猿 2021-09-28

DL之AE:自编码器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预测数字的精确对比
 

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多