变分推断简单理解

1 需要搞清楚的几个问题
1 .1 变分推断求的是什么
变分推断(Variational Inference, VI)是贝叶斯近似推断的一种方法,将后验推断问题巧妙的转换为优化问题进行求解。贝叶斯公式求解posterior distribution P ( Z ∣ X ) P(Z|X) P(ZX)
P ( Z ∣ X ) = p ( X , Z ) ∫ z p ( X , Z = z ) d z P(Z \mid X)=\frac{p(X, Z)}{\int_{z} p(X, Z=z) d z} P(ZX)=zp(X,Z=z)dzp(X,Z).这个公式难以求解的地方在于分母的求解,分母是一个积分, ∫ z p ( X , Z = z ) d z {\int_{z} p(X, Z=z) d z} zp(X,Z=z)dz,而 Z Z Z通常是一个高维的随机变量,所以积分难求。其中 P ( x , z ) = p ( z ) p ( x ∣ z ) P(x,z)=p(z)p(x|z) P(x,z)=p(z)p(xz)
另外,这个贝叶斯公式中, P ( X ) P(X) P(X)表示先验分布。p(x|z)表示似然函数, p ( x ) = ∫ z p ( X , Z = z ) d z p(x)={\int_{z} p(X, Z=z) d z} p(x)=zp(X,Z=z)dz(也称之为evidence)。p(x)是和观测数据x有关系的,因此在计算的时候把他认为是一个常数。
1.2 变分推断是什么
变分推断方法,想求解分布难以确定的p,可以通过寻找易表达和求解的p,当p和q分布接近(距离接近)的时候,我们可以认为q是p的近似分布。因此通过变分推断的思想将求分布的推断问题转换为了求解“缩小距离”的优化问题

2 求解变分推断的步骤:

2.1 首先构造一个容易求解的分布 q ( z ; λ ) q(z;\lambda) q(z;λ)
2.2 调整q分布中的参数 λ \lambda λ,使得分布q不断的去接近分布p,通常采用KL散度去衡量两个分布之间的距离,因此这个优化问题就转换为如下的形式:
min ⁡ λ K L ( q ( z ; λ ) ∥ p ( z ∣ x ) ) \min _{\lambda} K L(q(z ; \lambda) \| p(z \mid x)) minλKL(q(z;λ)p(zx))
但是这个KL散度中还是包含着 P ( Z ∣ X ) P(Z \mid X) P(ZX)这个后验分布,所以依然难求。
通过等价变化,我们可以将上面这个KL散度转化为如下的形式:
log ⁡ P ( x ) = K L ( q ( z ; λ ) ∥ p ( z ∣ x ) ) + E q ( z ; λ ) log ⁡ p ( x , z ) q ( z ; λ ) \log P(x)=K L(q(z ; \lambda) \| p(z \mid x))+\mathbb{E}_{q(z ; \lambda)} \log \frac{p(x, z)}{q(z ; \lambda)} logP(x)=KL(q(z;λ)p(zx))+Eq(z;λ)logq(z;λ)p(x,z)
通常下, l o g p ( x ) logp(x) logp(x)可以看成是常量,所以最小化 min ⁡ λ K L ( q ( z ; λ ) ∥ p ( z ∣ x ) ) \min _{\lambda} K L(q(z ; \lambda) \| p(z \mid x)) minλKL(q(z;λ)p(zx))等价于:
max ⁡ λ E q ( z ; λ ) log ⁡ p ( x , z ) q ( z ; λ ) \max _\lambda \mathbb{E}_{q(z ; \lambda)} \log \frac{p(x, z)}{q(z ; \lambda)} maxλEq(z;λ)logq(z;λ)p(x,z)
因此变分推断的进一步目标转换为:
max ⁡ λ E q ( z ; λ ) [ log ⁡ p ( x , z ) − log ⁡ q ( z ; λ ) ] \max _\lambda \mathbb{E}_{q(z ; \lambda)}[\log p(x, z)-\log q(z ; \lambda)] maxλEq(z;λ)[logp(x,z)logq(z;λ)]
E q ( z ; λ ) [ log ⁡ p ( x , z ) − log ⁡ q ( z ; λ ) ] \mathbb{E}_{q(z ; \lambda)}[\log p(x, z)-\log q(z ; \lambda)] Eq(z;λ)[logp(x,z)logq(z;λ)]称为 Evidence lower Bound(ELBO), P ( X ) P(X) P(X)称之为evidence 而 K L ( P ∣ ∣ Q ) > 0 KL(P||Q)>0 KL(P∣∣Q)>0,所以 p ( x ) > = E q ( z ; λ ) [ log ⁡ p ( x , z ) − log ⁡ q ( z ; λ ) ] p(x)>=E_{q(z ; \lambda)}[\log p(x, z)-\log q(z ; \lambda)] p(x)>=Eq(z;λ)[logp(x,z)logq(z;λ)],因此称之为ELBO

通过下面这个公式可以看出VAE的计算流程以及为了优化VAE网络参数所需要的两个loss
其一是:重构损失: ∣ ∣ x − f ( z ) ∣ ∣ 2 ||x-f(z)||^{2} ∣∣xf(z)2,第二项是编码约束损失 K L [ N ( μ ( X ) , Σ ( X ) ) ∣ ∣ N ( 0 , I ) ] \mathcal{K} \mathcal{L}[\mathcal{N}(\mu(X), \Sigma(X))|| \mathcal{N}(0, I)] KL[N(μ(X),Σ(X))∣∣N(0,I)]
在这里插入图片描述
参考blog:
https://www.zhihu.com/question/41765860

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值