【论文阅读】Auto-Encoding Variational Bayes

VAE code:https://arxiv.org/abs/1312.6114v11

目录

AutoEncoder

VAE

VQVAE

总结


重建图像

【论文阅读】Auto-Encoding Variational Bayes_第1张图片

上面的人脸图片可以描述成多种不同属性,比如微笑、皮肤黑、男性、有胡须、不戴眼镜和头发黑等等。如果想要通过神经网络架构重构出这张人脸图片,可以先将图片编码成一个一个不同的属性,然后通过综合这些属性解码得到重构图片,这就是自编码器的常规思路。

【论文阅读】Auto-Encoding Variational Bayes_第2张图片

然而这里还有一个需要解决的问题是,如何对一张图片的属性进行编码,因为属性既可以描述成离散值的形式也可以描述成概率分布的形式(从概率分布中随机采样出离散值)。比如第一张小男孩图片的smile属性,离散值可以表示为-0.8,概率分布可以表示成-1到0之间的正态分布(然后从中随机采样出离散值,大概率在正态分布最高点的横坐标-0.5附近)。

AutoEncoder

【论文阅读】Auto-Encoding Variational Bayes_第3张图片

最基础的AutoEncoder由一个Encoder和一个Decoder组成。Encoder对输入图片进行编码得到latent code,然后通过Decoder进行重建,就算输入图片和生成图片的重构误差,训练的时候最小化重构误差。

AutoEncoder可以理解为通过网络学习出任意概率分布,然后取概率分布中的最高点的横坐标作为编码的离散值。这会导致AutoEncoder的生成过程是不可控的,对输入噪声敏感,因为学习得到的概率分布是不能提前预知的。

VAE

【论文阅读】Auto-Encoding Variational Bayes_第4张图片

VAE通过Encoder学习出mean和std两个编码,同时随机采样一个正态分布的编码  ,然后通过 \varepsilon * std + mean公式重采样得到latent code,然后通过Decoder进行重建。

另外,由于正态分布的连续性,不存在不可导问题,可以通过重参数方法,对latent code进行恢复,并且通过链式求导法则进行梯度更新。

【论文阅读】Auto-Encoding Variational Bayes_第5张图片

VAE可以理解为通过网络学习出每个属性正太分布的mean和std编码,然后通过mean和std和N ( 0,1 )正态分布恢复每个属性的正态分布,最后随机采样得到每个属性的离散值。

【论文阅读】Auto-Encoding Variational Bayes_第6张图片

如图所示,VAE相对于AutoEncoder的好处是,当采样输入不同时,VAE对于任意采样都能重构出鲁棒的图片。VAE的生成过程是可控的,对输入噪声不敏感,我们可以预先知道每个属性都是服从正态分布的。

VQ-VAE

【论文阅读】Auto-Encoding Variational Bayes_第7张图片

作为一个自编码器,VQ-VAE的一个明显特征是它编码出的编码向量是离散的,换句话说,它最后得到的编码向量的每个元素都是一个整数,这也就是“Quantised”的含义,我们可以称之为“量子化”(跟量子力学的“量子”一样,都包含离散化的意思)。

VQ-VAE通过Encoder学习出中间编码,然后通过最邻近搜索将中间编码映射为codebook中K个向量之一,然后通过Decoder对latent code进行重建。

另外由于最邻近搜索使用argmax来找codebook中的索引位置,导致不可导问题,VQVAE通过stop gradient操作来避免最邻近搜索的不可导问题,也就是latent code的梯度跳过最近邻搜索直接复制到中间编码上。

VQVAE相比于VAE最大的不同是,直接找每个属性的离散值,通过类似于查表的方式,计算codebook和中间编码的最近邻作为latent code。由于维护了一个codebook,编码范围更加可控,VQVAE相对于VAE,可以生成更大更高清的图片(这也为后续DALLE和VQGAN的出现做了铺垫)。

具体原理:

VQ-VAE的简明介绍:量子化自编码器 - 科学空间|Scientific Spaces

 

总结

因此AutoEncoder、VAE和VQVAE可以统一为latent code的概率分布设计不一样,AutoEncoder通过网络学习得到任意概率分布,VAE设计为正态分布,VQVAE设计为codebook的离散分布。总之,AutoEncoder的重构思想就是用低纬度的latent code分布来表达高纬度的数据分布,VAE和VQVAE的重构思想是通过设计latent code的分布形式,进而控制图片生成的过程。

参考:Variational autoencoders.

漫谈VAE和VQVAE,从连续分布到离散分布

你可能感兴趣的:(论文阅读)