您的位置:首页 > 理论基础 > 计算机网络

<模型汇总-10> Variational AutoEncoder_变分自动编码器原理解析

2017-06-07 09:35 585 查看


在<模型汇总-9>部分,详细讲解了与VAE有关的基础知识,涉及LVM、MAP、EM、MCMC、Variational
Inference(VI),可以通过公众号往期内容查看。有了这些知识的铺垫,今天就为大家分析下VAE的原理。
2.1 VAE产生背景
生成模型根据公式(11)对观测样本p(X)建模:



其中,引入了一个参数O,参数化后的隐变量z来简化观测样本概率密度函数(PCB)p(X)的计算,这其中存在一个问题:如何定义一个有效的隐变量Z,获得有效的latent
information?隐变量的具体定义很复杂,很难人为指定那些隐特征是有效的,且通常我们也不需要人为去指定那些隐特征是有效的。比如说,数字[0,9]的识别,这些隐变量可以是数字本身、写下数字的角度、笔法宽度、或其他抽象的形式化特性等等,而且这些特征之间可能是互相关联的。VAE采用了一种比较简单的方法来处理这个问题:不存在关于Z的简单解释,但Z是可以直接从一个简单的分布采样得到,比如高斯分布N(0,I),I是单位矩阵。
为什么这样做可行呢?任何一个d维的分布,都可以采用一个d维的高斯分布过有限次复杂的函数变换得到。因此,可以通过学习一个函数f,把独立且服从高斯分布的Z映射到任意我们希望的隐变量,随后,再把这个隐变量解码回观测样本X。因此,公式(11)中,观测样本X关于隐变量Z的似然函数可以写成如下形式:



其中,映射函数f(z,O)可以采用一个多层的神经网络来逼近。可以假设:这个多层神经网络把高斯分布Z映射到真正的隐变量(比如,数字的特征、笔法宽度、角度等)。随后,可以通过另外一个多层网络把隐变量解码回真是的数字。这也是VAE使用深度学习模型充当encoder和decoder的原理。
2.2 VAE目标函数建立
在公式(11)中,我们希望引入条件概率p(x|z)来近似计算观测样本X的分布p(x),但对于大多数隐变量z来说,条件概率p(x|z)是等于零的,对于估计p(x)没有用。因此,VAEs的核心思想就是尝试去采样得到最优可能产生观测样本X的隐变量Z,然后基于Z计算p(x)。最直接做法是构造一个新的函数q(z|x),该函数表示输入观测样本X条件下,产生与之相关的隐变量Z的分布,相当于在基于观测样本X,依概率q(z|x)对隐变量Z进行筛选。可见,基于q(z|x)的隐变量Z的space,比基于p(z)的隐变量Z的space小很多。怎么来构建q(z|x)呢?VAE采用了变分推理的原理。关于变分推理的一些细节,我们已经在1.5节做了详细介绍,这里就直接拿来用。
通过1.5节推导得出,变分推理中优化的目标函数是变分的证据下界ELBO函数,如公式(13)所示:



公式(13)右边期望中的第二项KL(q(Z|X)||p(Z))表示把X编码到隐变量Z,第一项p(X|Z)表示把隐变量Z解码重构观测样本X,等式的右边整体一起表示编码和解码后整体期望。VAE知识形式上和自动编码器类似,但它与传统的自动编码器,比如稀疏自动编码器和降噪自动编码器不同。
2.3 VAE目标函数优化与Reparameterization Trick
首先需要得到ELBO目标函数的具体表达形式。假设观测样本X服从N(u(X,O),d(X,O))的高斯分布,隐变量Z服从N(0,I)的高斯分布。目标函数中最右边的KL距离可以简化表示成(14)式的形式:



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


图2 VAEs网络结构示意图
因此,提出了Reparameterization Trick来处理这个问题。
Reparameterization Trick:把采样(sampling)操作移动到输出层操作。可以从N(u(X),d(X))中,结合e~N(0,I)采样得到q(z|x)的均值u(x)和协方差矩阵d(x),然后计算z=u(X)+d^1/2(X)*e。此时,目标函数转换为公式(15):



公式(15)中,把采样方式换成相乘在求和的方式,可以求导数,是的梯度反向传播可导。注意,Reparameterization Trick进适用于p(Z|X)和p(Z)是连续函数的状态下。此时的VAEs模型如图2的右边图所示。
2.4 Conditional Variational Autoencoders(CVAE)
对VAEs的推理过程中添加观测样本X做为条件进行变分计算,得到CVAEs。CVAE处理input-to-output中一对多映射的问题。CVAEs的网络结构如图3所示。
 


图3 CVAE结构示意图
此时ELBO目标函数转换为公式(16):



此时,p(z|x,O)仍然服从N(0,I)分布,因为CVAEs中Z是独立与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方面应用的经典论文、实践经验和最新消息,欢迎关注微信公众号“深度学习与NLP”或“DeepLearning_NLP”或扫描二维码添加关注。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息