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

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

目录


自编码器AutoEncoder的简介


1、AutoEncoder发展史


1.1、RBM


1.2、稀疏AutoEncoder、噪音容忍AutoEncoder、卷积AutoEncoder、变分AutoEncoder→对抗AutoEncoder


自编码器AutoEncoder的经典案例


1、基础案例





自编码器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发展史


image.png


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预测数字的精确对比

 


相关文章
|
机器学习/深度学习 编解码 算法
DL之DeepLabv2:DeepLab v2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之DeepLabv2:DeepLab v2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之DeepLabv2:DeepLab v2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
算法 数据挖掘 计算机视觉
DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之MobileNetV2:MobileNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
算法 计算机视觉 异构计算
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
机器学习/深度学习 算法 测试技术
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(一)
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ShuffleNetV2:ShuffleNetV2算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(一)
|
机器学习/深度学习 编解码 算法
DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(一)
DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(一)
|
算法 计算机视觉 C++
DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(二)
DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之MobileNet:MobileNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略(二)
|
机器学习/深度学习 编解码 算法
DL之DeepLabv1:DeepLabv1算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之DeepLabv1:DeepLabv1算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之DeepLabv1:DeepLabv1算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
机器学习/深度学习 算法 数据挖掘
DL之Xception:Xception算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之Xception:Xception算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之Xception:Xception算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
机器学习/深度学习 算法 数据挖掘
DL之ResNet:ResNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ResNet:ResNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之ResNet:ResNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
|
机器学习/深度学习 算法 数据可视化
DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略