Variational AutoEncoder_变分自动编码器原理解析

Variational AutoEncoder_变分自动编码器原理解析_第1张图片

<模型汇总-9>部分,详细讲解了与VAE有关的基础知识,涉及LVMMAPEMMCMCVariational InferenceVI),可以通过公众号往期内容查看。有了这些知识的铺垫,今天就为大家分析下VAE的原理。

2.1 VAE产生背景

生成模型根据公式(11)对观测样本pX)建模:


其中,引入了一个参数O,参数化后的隐变量z来简化观测样本概率密度函数(PCBpX)的计算,这其中存在一个问题:如何定义一个有效的隐变量Z,获得有效的latent information?隐变量的具体定义很复杂,很难人为指定那些隐特征是有效的,且通常我们也不需要人为去指定那些隐特征是有效的。比如说,数字[0,9]的识别,这些隐变量可以是数字本身、写下数字的角度、笔法宽度、或其他抽象的形式化特性等等,而且这些特征之间可能是互相关联的。VAE采用了一种比较简单的方法来处理这个问题:不存在关于Z的简单解释,但Z是可以直接从一个简单的分布采样得到,比如高斯分布N0I),I是单位矩阵。

为什么这样做可行呢?任何一个d维的分布,都可以采用一个d维的高斯分布过有限次复杂的函数变换得到。因此,可以通过学习一个函数f,把独立且服从高斯分布的Z映射到任意我们希望的隐变量,随后,再把这个隐变量解码回观测样本X。因此,公式(11)中,观测样本X关于隐变量Z的似然函数可以写成如下形式:


其中,映射函数fzO)可以采用一个多层的神经网络来逼近。可以假设:这个多层神经网络把高斯分布Z映射到真正的隐变量(比如,数字的特征、笔法宽度、角度等)。随后,可以通过另外一个多层网络把隐变量解码回真是的数字。这也是VAE使用深度学习模型充当encoderdecoder的原理。

2.2 VAE目标函数建立

在公式(11)中,我们希望引入条件概率px|z)来近似计算观测样本X的分布px),但对于大多数隐变量z来说,条件概率px|z)是等于零的,对于估计px)没有用。因此,VAEs的核心思想就是尝试去采样得到最优可能产生观测样本X的隐变量Z,然后基于Z计算px)。最直接做法是构造一个新的函数qz|x),该函数表示输入观测样本X条件下,产生与之相关的隐变量Z的分布,相当于在基于观测样本X,依概率qz|x)对隐变量Z进行筛选。可见,基于qz|x)的隐变量Zspace,比基于pz)的隐变量Zspace小很多。怎么来构建qz|x)呢?VAE采用了变分推理的原理。关于变分推理的一些细节,我们已经在1.5节做了详细介绍,这里就直接拿来用。

通过1.5节推导得出,变分推理中优化的目标函数是变分的证据下界ELBO函数,如公式(13)所示:


公式(13)右边期望中的第二项KLqZ|X||p(Z))表示把X编码到隐变量Z,第一项pX|Z)表示把隐变量Z解码重构观测样本X,等式的右边整体一起表示编码和解码后整体期望。VAE知识形式上和自动编码器类似,但它与传统的自动编码器,比如稀疏自动编码器和降噪自动编码器不同。

2.3 VAE目标函数优化与Reparameterization Trick

首先需要得到ELBO目标函数的具体表达形式。假设观测样本X服从NuXO),d(XO))的高斯分布,隐变量Z服从N0I)的高斯分布。目标函数中最右边的KL距离可以简化表示成(14)式的形式:


注意pX)与pZ|X)是同分布的。

目标函数中的第一项Eq[p(X|Z)],后验概率期望,直接计算比较复杂,可以采用MCMC采样的方法近似,此时,VAEs的网络结构如图2所示左图所示。但这样做有两个问题:1MCMC采样计算量大,实现起来很难;2、采样操作没有办法进行梯度反向传播。

 Variational AutoEncoder_变分自动编码器原理解析_第2张图片

2 VAEs网络结构示意图

因此,提出了Reparameterization Trick来处理这个问题。

Reparameterization Trick:把采样(sampling)操作移动到输出层操作。可以从NuX),dX))中,结合e~N0,I)采样得到qz|x)的均值ux)和协方差矩阵dx),然后计算z=uX+d^1/2(X)*e。此时,目标函数转换为公式(15):


公式(15)中,把采样方式换成相乘在求和的方式,可以求导数,是的梯度反向传播可导。注意,Reparameterization Trick进适用于pZ|X)和pZ)是连续函数的状态下。此时的VAEs模型如图2的右边图所示。

2.4 Conditional Variational AutoencodersCVAE

VAEs的推理过程中添加观测样本X做为条件进行变分计算,得到CVAEsCVAE处理input-to-output中一对多映射的问题。CVAEs的网络结构如图3所示。

 Variational AutoEncoder_变分自动编码器原理解析_第3张图片

3 CVAE结构示意图

此时ELBO目标函数转换为公式(16):


此时,pz|xO)仍然服从N0I)分布,因为CVAEsZ是独立与X采样得到的。

参考文献:

Grammar Variational Autoencoder

Tutorial on Variational Autoencoders

DEEP UNSUPERVISED CLUSTERING WITH GAUSSIAN MIXTURE VARIATIONAL AUTOENCODERS

GAUSSIAN MIXTURE VAE: LESSONS ABOUT VARIATIONAL INFERENCE, GENERATIVE MODELING, AND DEEP NETS.

Variational Autoencoders for Semi-supervised Text Classification


更多深度学习在NLP方面应用的经典论文、实践经验和最新消息,欢迎关注微信公众号“深度学习与NLPDeepLearning_NLP”或扫描二维码添加关注。

Variational AutoEncoder_变分自动编码器原理解析_第4张图片

你可能感兴趣的:(深度学习,深度学习模型汇总,生成对抗网络GAN)