1. 背景:为什么需要ELBO?
贝叶斯推断的挑战
在概率模型中,我们通常需要处理两类变量:
- 观测变量 xxx:直接可观测的数据,例如图片像素、文本单词。
- 潜在变量 zzz:隐藏的、不可直接观测的变量,代表数据的内在结构,例如图片的类别、内容的语义。
我们希望通过贝叶斯推断,计算后验分布 p(z∣x)p(z|x)p(z∣x),即给定数据 xxx 时,潜在变量 zzz 的概率分布:
p(z∣x)=p(x,z)p(x)=p(x∣z)p(z)∫p(x∣z)p(z)dzp(z|x) = \frac{p(x, z)}{p(x)} = \frac{p(x|z)p(z)}{\int p(x|z)p(z) dz}p(z∣x)=p(x)p(x,z)=∫p(x∣z)p(z)dzp(x∣z)p(z)
- p(x∣z)p(x|z)p(x∣z):似然,描述 zzz 如何生成 xxx。
- p(z)p(z)p(z):先验,描述 zzz 的分布(通常假设为简单分布,如标准正态分布)。
- p(x)p(x)p(x):边际似然(也称“证据”),是联合分布 p(x,z)p(x, z)p(x,z) 对 zzz 的积分。
问题:计算 p(x)=∫p(x∣z)p(z)dzp(x) = \int p(x|z)p(z) dzp(x)=∫p(x∣z)p(z)dz 非常困难,因为:
- 高维积分:当 zzz 是高维变量时,积分无法解析求解。
- 复杂模型:在深度学习中,p(x∣z)p(x|z)p(x∣z) 可能是神经网络,积分更是无从下手。
这导致我们无法直接计算 p(z∣x)p(z|x)p(z∣x),需要一种近似方法。
变分推断的引入
变分推断(Variational Inference)是一种解决贝叶斯推断难题的方法。其核心思想是:
- 不直接计算复杂的 p(z∣x)p(z|x)p(z∣x),而是用一个简单、参数化的分布 qϕ(z∣x)q_\phi(z|x)qϕ(z∣x)(称为变分分布)来近似它。
- 通过优化参数 ϕ\phiϕ,使 qϕ(z∣x)q_\phi(z|x)qϕ(z∣x) 尽可能接近 p(z∣x)p(z|x)p(z∣x)。
衡量“接近”的标准通常是 KL散度(Kullback-Leibler Divergence):
DKL(qϕ(z∣x)∥p(z∣x))=Eqϕ(z∣x)[logqϕ(z∣x)p(z∣x)]D_{KL}(q_\phi(z|x) \| p(z|x)) = \mathbb{E}_{q_\phi(z|x)}\left[\log \frac{q_\phi(z|x)}{p(z|x)}\right]DKL(qϕ(z∣x)∥p(z∣x))=Eqϕ(z∣x)[logp(z∣x)qϕ(z∣x)]
目标是找到 ϕ\phiϕ,使KL散度最小化。但直接最小化KL散度需要知道 p(z∣x)p(z|x)p(z∣x),这又回到了原问题。
ELBO的角色:ELBO提供了一个间接的方法,通过最大化一个目标函数(即ELBO),同时:
- 逼近 p(z∣x)p(z|x)p(z∣x)。
- 提高数据的边际似然 logp(x)\log p(x)logp(x)。
2. ELBO是什么?
直观解释与类比
你可以将ELBO想象为一个“替代目标”。我们真正想要的是计算 logp(x)\log p(x)logp(x)(数据的概率),但这太难了。ELBO就像一个“更容易计算的近似目标”,它保证:
- ELBO的值总是小于或等于 logp(x)\log p(x)logp(x)(因此称为“下界”)。
- 最大化ELBO会使我们的近似分布 qϕ(z∣x)q_\phi(z|x)qϕ(z∣x) 更接近真实后验 p(z∣x)p(z|x)p(z∣x)。
类比:
- 假设你想爬一座山(目标是到达山顶,代表 logp(x)\log p(x)logp(x)),但山路崎岖,直接爬很困难。
- ELBO就像一条“绕路的平坦小路”(下界),虽然不会直接带你到山顶,但通过不断优化这条小路,你会越来越接近山顶,同时避开了复杂的计算。
数学定义
ELBO的数学表达式为:
L(θ,ϕ;x)=Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥pθ(z))\mathcal{L}(\theta, \phi; x) = \mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)] - D_{KL}(q_\phi(z|x) \| p_\theta(z))L(θ,ϕ;x)=Eqϕ(z∣x)[logpθ(x∣z)]−DKL(qϕ(z∣x)∥pθ(z))
其中:
- θ\thetaθ:生成模型 pθ(x∣z)p_\theta(x|z)pθ(x∣z) 和先验 pθ(z)p_\theta(z)pθ(z) 的参数。
- ϕ\phiϕ:近似后验 qϕ(z∣x)q_\phi(z|x)qϕ(z∣x) 的参数。
- Eqϕ(z∣x)[logpθ(x∣z)]\mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)]Eqϕ(z∣x)[logpθ(x∣z)]:重构项,衡量生成数据的质量。
- DKL(qϕ(z∣x)∥pθ(z))D_{KL}(q_\phi(z|x) \| p_\theta(z))DKL(qϕ(z∣x)∥pθ(z)):KL散度项,衡量近似后验与先验的差异。
直观理解:
- 重构项:从 qϕ(z∣x)q_\phi(z|x)qϕ(z∣x) 采样 zzz,用 pθ(x∣z)p_\theta(x|z)pθ(x∣z) 生成数据,查看生成的 xxx 与真实 xxx 的接近程度。
- KL散度项:确保 qϕ(z∣x)q_\phi(z|x)qϕ(z∣x) 不偏离先验 pθ(z)p_\theta(z)pθ(z) 太远,相当于一种“正则化”。
3. ELBO的详细数学推导
为了让你彻底理解ELBO,我将一步步推导,尽量清晰且详细。我们从贝叶斯推断的目标开始。
目标:计算边际似然
我们希望计算数据的边际似然:
p(x)=∫p(x,z)dz=∫p(x∣z)p(z)dzp(x) = \int p(x, z) dz = \int p(x|z)p(z) dzp(x)=∫p(x,z)dz=∫p(x∣z)p(z)dz
取对数:
logp(x)\log p(x)logp(x)
这是我们优化的最终目标,但积分难以计算。
引入变分分布
我们引入一个变分分布 qϕ(z∣x)q_\phi(z|x)qϕ(z∣x) 来近似后验 p(z∣x)p(z|x)p(z∣x)。用KL散度衡量两者的差异:
DKL(qϕ(z∣x)∥p(z∣x))=Eqϕ(z∣x)[logqϕ(z∣x)p(z∣x)]D_{KL}(q_\phi(z|x) \| p(z|x)) = \mathbb{E}_{q_\phi(z|x)}\left[\log \frac{q_\phi(z|x)}{p(z|x)}\right]DKL(qϕ(z∣x)∥p(z∣x))=E

最低0.47元/天 解锁文章
3489

被折叠的 条评论
为什么被折叠?



