变分自编码器(Variational auto-encoder, VAE)理解及教程

导读

小编在读一篇论文时遇到了变分自编码器(Variational auto-encoder,VAE)的概念,我也是第一次接触,于是乎翻遍了网上现有的好多资料,稍微理解了一点,整理下来,希望能帮助大家。如有不对地方,还请各位下方评论区批评指正,感谢您的交流指导~~

引言

  1. 首先附上关于变分自编码器的论文
    Auto-Encoding Variational Bayes[PDF]
    变分自编码器(Variational auto-encoder, VAE)理解及教程
  2. 变分自编码器(Variational auto-encoder,VAE)是一类重要的生成模型(generative model),它于2013年由Diederik P.Kingma和Max Welling提出。

介绍

VAE可以通过编码解码的步骤,直接比较重建图片和原始图片的差异,但是GAN做不到。

在介绍变分自编码器之前,我们先简单了解下自编码器的一些知识:

一、自编码器

1.介绍
自编码器(autoencoder, AE)是一类在半监督学习和非监督学习中使用的人工神经网络,其功能是通过将输入信息作为学习目标,对输入信息进行表征学习。

自编码器包含编码器(encoder)和解码器(decoder)两部分。按学习范式,自编码器可以被分为收缩自编码器、正则自编码器和变分自编码器,其中前两者是判别模型、后者是生成模型 。按构筑类型,自编码器可以是前馈结构或递归结构的神经网络。
自编码器具有一般意义上表征学习算法的功能,被应用于降维和异常值检测。包含卷积层构筑的自编码器可被应用于计算机视觉问题,包括图像降噪 、神经风格迁移等。

2.算法

自编码器是一个输入和学习目标相同的神经网络,其结构分为编码器和解码器两部分。给定输入空间X∈χ\chi 和特征空间h∈F,自编码器求解两者的映射ffgg使输入特征的重建误差达成最小:
变分自编码器(Variational auto-encoder, VAE)理解及教程
求解完成后,由编码器输出的隐含层特征h,即“编码特征”可视为输入数据X的表征。

3.传统自编码器架构
变分自编码器(Variational auto-encoder, VAE)理解及教程
(图片来源网络,侵删)

二、变分自动编码器

VAE继承了传统自动编码器的架构,并使用它来学习数据生成分布,这允许我们从潜在空间中随机抽取样本。然后可以使用解码器网络对这些随机样本进行解码,以生成具有与训练网络的特征类似的特征的独特图像。
变分自编码器(Variational auto-encoder, VAE)理解及教程
(图片来源网络,侵删)

它和AE的不同点就在于:
AE 中间输出的是隐变量的 具体取值
VAE中间要输出的是隐变量的具体分布情况,
这样一来,我们就可以从这个分布中另外取样,送入到解码器,就可以生成类似输入样本 xx 的其他样本 xx^{'} 了,并且这两个会十分近似。

  • 架构
    变分自编码器(Variational auto-encoder, VAE)理解及教程
    变分自编码器架构

具体原理推导请参考参考资料部分,这里就不做重复描述了。

  • 实现
    代码稍后更新

详细教程

可参考这篇文章,详细介绍了关于变分自编码器的内容
Tutorial on Variational Autoencoders【PDF】
变分自编码器(Variational auto-encoder, VAE)理解及教程

参考资料:
1.百度百科
2.变分自编码器(一):原来是这么一回事
3.变分自编码器(一)——基本原理简介