理解:用变分推断统一理解深度生成模型(VAE、GAN、AAE、ALI(BiGAN))

本文深入探讨变分推断在深度生成模型中的应用,如VAE、GAN及其变式AAE和ALI。通过变分推理解释这些模型的内在联系,介绍它们的优化目标和训练过程,揭示变分推断如何为理解和改进生成模型提供新视角。
摘要由CSDN通过智能技术生成

参考文章:https://kexue.fm/archives/5716

https://zhuanlan.zhihu.com/p/40282714

本篇博客主要是参照上述两个博文,另外加入了一些自己的理解,也为了和自己学习或者常见的知识做一个对照,因为在学习过程中总有一个问题困扰,就是符号,前后的符号对照不好,还得想半天。所以有些符合可能跟原文章对不上,但跟我之前的博客可以对上。

特意将常用的符号归纳一下(当然我也是希望和我之前的博客的符号相一致,但是可惜还是没能做好):

p_{data}(x)→真实数据的分布,或者称为x的证据分布(在《模式分类(第二版)》中贝叶斯决策这一章里这样描述)
z→隐变量(VAE)或噪声数据(GAN)
q_{\theta }(x)q(x)q(x;\theta )→生成模型的分布这些符号的记法不同,只是为了方便不同的推导和作者们不同的理解角度,最主要的我们在生成模型中要研究的就是找到一个合适的参数\theta使得q_{\theta }(x)近似于p_{data}(x)

对于GAN,我们现有的认识角度至少包括以下几个:

1、变分推断新解

假设x是显变量(或者我们称之为样本),z为隐变量(或者我们称之为噪音数据)。p_{data}(x)x的证据分布,或者成为真实数据的分布,并且有

q_{\theta }(x)=\int q_{\theta }(x,z)dz……(1)

生成模型要求的就是希望找到一个最优的参数\theta使得q_{\theta }(x)能逼近p_{data}(x),所以一般情况下,我们会最大化似然函数:

\theta =arg max_{\theta}E_{x\sim p_{data}(x)}\left [ log q_{\theta}(x) \right ]=arg max_{\theta }\int p_{data}(x)log q_{\theta}(x)dx……(2)

原文中将\theta省去,可以认为默认q(x)是带有参数\theta的,为了简单起见,我们这里也就不带有参数\theta

最大化(2)式的似然函数等价于最小化KL散度KL(p_{data}(x)||q(x)),这个我在机器学习与信息论之熵那篇博客中就提到过,这里似然函数可以看做交叉熵,而KL散度(也就是相对熵)与交叉熵之间是有关系的:

D_{KL}(p||q)\\ =\sum_{i=1}^{n}p(x_{i})log\frac{p(x_{i})}{q(x_{i})}=\sum_{i=1}^{n}p(x_{i})log(p(x_{i}))-\sum_{i=1}^{n}p(x_{i})log(q(x_{i}))\\ =-H(p(x))+\left [ -\sum_{i=1}^{n}p(x_{i})log(q(x_{i})) \right ]

等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵:由于KL散度中的前一部分-H(y)不变,所以最大化交叉熵和最小化KL散度是等价的。

这里我们转化为最小化KL散度KL(p_{data}(x)||q(x))

KL(p_{data}(x)||q(x))=\int p_{data}(x)log\frac{p_{data}(x)}{q(x)}dx……(3)

但是由于积分难以计算,因此大多数情况下都难以直接优化。

变分推断中,首先引入联合分布p(x,z)使得p_{data}(x)=\int p(x,z)dz,而变分推断的本质,就是将边缘分布的KL散度KL(p_{data}(x)||q(x))改为联合分布的KL散度KL(p(x,z)||q(x,z))=KL(q(x,z)||p(x,z)),而

KL(p(x,z)||q(x,z))=\int \int p(x,z)log\frac{p(x,z)}{q(x,z)}dxdz\\ =\int \int p_{data}(x)p(z|x)log\frac{p_{data}(x)p(z|x)}{q(x)q(z|x)}dxdz\\ =\int \int p_{data}(x)p(z|x)log\frac{p_{data}(x)}{q(x)}dxdz+\int \int p_{data}(x)p(z|x)log\frac{p(z|x)}{q(z|x)}dxdz\\ =KL(p_{data}(x)||q(x))+\int p_{data}(x)KL(p(z|x)||q(z|x))dx\\ \geqslant KL(p_{data}(x)||q(x))……(4)

(4)式表明联合分布的KL散度是边缘分布的KL散度的一个更强的条件上界。所以一旦优化成功,也就是KL散度最小(或者两个联合分布的距离很小),那么我们就得到q(x,z)\rightarrow p(x,z),从而\int q(x,z)dz\rightarrow \int p(x,z)dz=p_{data}(x),即\int q(x,z)dz成为了真实数据分布p_{data}(x)的一个近似。

当然,引入变分推断也不是加强条件而加强,而是因为在很多情况下,KL(p(x,z)||q(x,z))KL(p_{data}(x)||q(x))gen更容易计算。所以变分推断是提供了一个可计算的方案。

2、VAE和EM算法

结合上述关于变分推断的新理解,我们可以简单导出两个基本的算法就是:变分自动编码器和EM算法。

2.1 VAE

在VAE中,假设q(x,z)=q(x|z)q(z)p(x,z)=p_{data}(x)p(z|x),其中q(x|z)是带有未知参数的高斯分布(代表解码器或生成器),p(z|x)是带有未知参数的高斯分布(代表编

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值