证据下界(Evidence Lower Bound,ELBO)

1. 背景:为什么需要ELBO?

贝叶斯推断的挑战

在概率模型中,我们通常需要处理两类变量:

  • 观测变量 xxx:直接可观测的数据,例如图片像素、文本单词。
  • 潜在变量 zzz:隐藏的、不可直接观测的变量,代表数据的内在结构,例如图片的类别、内容的语义。

我们希望通过贝叶斯推断,计算后验分布 p(z∣x)p(z|x)p(zx),即给定数据 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(zx)=p(x)p(x,z)=p(xz)p(z)dzp(xz)p(z)

  • p(x∣z)p(x|z)p(xz):似然,描述 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(xz)p(z)dz 非常困难,因为:

  1. 高维积分:当 zzz 是高维变量时,积分无法解析求解。
  2. 复杂模型:在深度学习中,p(x∣z)p(x|z)p(xz) 可能是神经网络,积分更是无从下手。

这导致我们无法直接计算 p(z∣x)p(z|x)p(zx),需要一种近似方法。

变分推断的引入

变分推断(Variational Inference)是一种解决贝叶斯推断难题的方法。其核心思想是:

  • 不直接计算复杂的 p(z∣x)p(z|x)p(zx),而是用一个简单、参数化的分布 qϕ(z∣x)q_\phi(z|x)qϕ(zx)(称为变分分布)来近似它。
  • 通过优化参数 ϕ\phiϕ,使 qϕ(z∣x)q_\phi(z|x)qϕ(zx) 尽可能接近 p(z∣x)p(z|x)p(zx)

衡量“接近”的标准通常是 KL散度(Kullback-Leibler Divergence):
DKL(qϕ(z∣x)∥p(z∣x))=Eqϕ(z∣x)[log⁡qϕ(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ϕ(zx)p(zx))=Eqϕ(zx)[logp(zx)qϕ(zx)]
目标是找到 ϕ\phiϕ,使KL散度最小化。但直接最小化KL散度需要知道 p(z∣x)p(z|x)p(zx),这又回到了原问题。

ELBO的角色:ELBO提供了一个间接的方法,通过最大化一个目标函数(即ELBO),同时:

  1. 逼近 p(z∣x)p(z|x)p(zx)
  2. 提高数据的边际似然 log⁡p(x)\log p(x)logp(x)

2. ELBO是什么?

直观解释与类比

你可以将ELBO想象为一个“替代目标”。我们真正想要的是计算 log⁡p(x)\log p(x)logp(x)(数据的概率),但这太难了。ELBO就像一个“更容易计算的近似目标”,它保证:

  • ELBO的值总是小于或等于 log⁡p(x)\log p(x)logp(x)(因此称为“下界”)。
  • 最大化ELBO会使我们的近似分布 qϕ(z∣x)q_\phi(z|x)qϕ(zx) 更接近真实后验 p(z∣x)p(z|x)p(zx)

类比

  • 假设你想爬一座山(目标是到达山顶,代表 log⁡p(x)\log p(x)logp(x)),但山路崎岖,直接爬很困难。
  • ELBO就像一条“绕路的平坦小路”(下界),虽然不会直接带你到山顶,但通过不断优化这条小路,你会越来越接近山顶,同时避开了复杂的计算。

数学定义

ELBO的数学表达式为:
L(θ,ϕ;x)=Eqϕ(z∣x)[log⁡pθ(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ϕ(zx)[logpθ(xz)]DKL(qϕ(zx)pθ(z))
其中:

  • θ\thetaθ:生成模型 pθ(x∣z)p_\theta(x|z)pθ(xz) 和先验 pθ(z)p_\theta(z)pθ(z) 的参数。
  • ϕ\phiϕ:近似后验 qϕ(z∣x)q_\phi(z|x)qϕ(zx) 的参数。
  • Eqϕ(z∣x)[log⁡pθ(x∣z)]\mathbb{E}_{q_\phi(z|x)}[\log p_\theta(x|z)]Eqϕ(zx)[logpθ(xz)]:重构项,衡量生成数据的质量。
  • DKL(qϕ(z∣x)∥pθ(z))D_{KL}(q_\phi(z|x) \| p_\theta(z))DKL(qϕ(zx)pθ(z)):KL散度项,衡量近似后验与先验的差异。

直观理解

  • 重构项:从 qϕ(z∣x)q_\phi(z|x)qϕ(zx) 采样 zzz,用 pθ(x∣z)p_\theta(x|z)pθ(xz) 生成数据,查看生成的 xxx 与真实 xxx 的接近程度。
  • KL散度项:确保 qϕ(z∣x)q_\phi(z|x)qϕ(zx) 不偏离先验 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(xz)p(z)dz
取对数:
log⁡p(x)\log p(x)logp(x)
这是我们优化的最终目标,但积分难以计算。

引入变分分布

我们引入一个变分分布 qϕ(z∣x)q_\phi(z|x)qϕ(zx) 来近似后验 p(z∣x)p(z|x)p(zx)。用KL散度衡量两者的差异:
DKL(qϕ(z∣x)∥p(z∣x))=Eqϕ(z∣x)[log⁡qϕ(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ϕ(zx)p(zx))=E

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱看烟花的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值