技术博客

变分推断与 ELBO:证据下界怎么推出来的

第 26 / 147 篇 · 2026-04-19 · ai · 变分推断ELBO潜变量模型

潜变量模型的想法很自然:观测 $x$ 背后有个更简单的隐原因 $z$,生成过程是先采样 $z\sim p(z)$ 再生成 $x\sim p_\theta(x|z)$。建模容易,做题难——给定数据想评估或训练这个模型,需要算边缘似然:

$$ p_\theta(x)=\int p_\theta(x,z)\,dz=\int p_\theta(x|z)\,p(z)\,dz. $$

这个积分在 $p_\theta(x|z)$ 稍微复杂一点(比如神经网络)时就解析不可积,蒙特卡洛 在高维 $z$ 下方差也压不住。变分推断(Variational Inference, VI)不去算这个积分,而是换一个可以优化的下界。整条逻辑链只有三步:一个恒等式、一次 Jensen、一项重组。

恒等式:任何 q 都能塞进来

边缘似然的困难在积分号。对任意一个概率密度 $q(z)$(叫变分后验),在积分里同时乘除 $q$:

$$ p_\theta(x)=\int p_\theta(x,z)\,dz=\int q(z)\,\frac{p_\theta(x,z)}{q(z)}\,dz=\mathbb{E}_{z\sim q}\!\left[\frac{p_\theta(x,z)}{q(z)}\right]. $$

恒等式对任意 $q$ 成立——这一步什么都没解,只是把积分改写成期望,但它把一个"选模型"的问题偷换成了"选 $q$"的问题,而 $q$ 是可以带着参数用优化来选的。

Jensen:期望的对数 ≤ 对数的期望

对凹函数 $\ln$ 用 Jensen 不等式($\ln\mathbb{E}[\cdot]\ge\mathbb{E}[\ln\cdot]$,凹函数方向反过来):

$$ \ln p_\theta(x)=\ln\mathbb{E}_{q}\!\left[\frac{p_\theta(x,z)}{q(z)}\right]\ge\mathbb{E}_{q}\!\left[\ln\frac{p_\theta(x,z)}{q(z)}\right]\equiv\mathrm{ELBO}(q,\theta). $$

这个下界叫 evidence lower bound(证据下界),因为 $\ln p(x)$ 在贝叶斯统计里叫 evidence。关键问题立刻出现:这个下界紧不紧?紧多少?答案藏在把期望拆开的恒等式里:

$$ \ln p_\theta(x)=\mathrm{ELBO}(q,\theta)+D_{\mathrm{KL}}\!\big(q(z)\,\|\,p_\theta(z|x)\big). $$

证明只需把 $\ln p(x,z)=\ln p(z|x)+\ln p(x)$ 代入 ELBO 定义,整理即得。所以 ELBO 与真实对数似然的差距恰好是 $q$ 到真实后验的 KL 散度——$q$ 越准,下界越紧;$q$ 取到真实后验时 KL 为零,下界精确。优化 ELBO 同时在做两件事:抬似然,和把 $q$ 拉向后验。这就是 VI 的全部内容,剩下都是这件事的工程化。

重组:两项各自的含义

把 ELBO 按联合分布拆分,

$$ \mathrm{ELBO}(q,\theta)=\mathbb{E}_{q}\!\left[\ln p_\theta(x|z)\right]-D_{\mathrm{KL}}\!\big(q(z)\,\|\,p(z)\big), $$

两项各有名字:重建项(reconstruction)和先验匹配项。第一项希望 $q$ 采样出的 $z$ 能解码回 $x$——就是自编码器的目标;第二项希望 $q$ 别离先验 $p(z)$ 太远。VAE 的全部损失就是这两项加起来的负数,所以"ELBO 是 VAE 的理论地基"不是比喻,是恒等式。

两项存在张力:重建项要 $q(z|x)$ 携带关于 $x$ 的全部信息(信息越多重建越好),先验匹配项要 $q$ 逼近不依赖 $x$ 的先验(携带信息越少 KL 越小)。最优平衡由数据自己决定——这就是 ELBO 作为目标函数的自动调参机制。beta-VAE 用系数 $\beta$ 人为加大第二项,牺牲重建换解耦,反过来证明了原权重下的平衡点是表示学习自己找到的。

为什么不用 EM

EM 算法也在最大化似然,且 E 步是精确的:算真实后验 $p(z|x)$,M 步更新 $\theta$。VI 与 EM 的差别只在 E 步——用参数化的 $q_\phi$ 逼近真实后验,把"积分/精确推断"换成"优化"。精确后验在 $p(x|z)$ 非共轭(神经网络天然非共轭)时没有闭式,EM 的 E 步直接卡死;VI 的近似让整套流程可以对任意可微生成模型跑起来,代价是下界不紧引入的近似误差。mean-field VI($q$ 取各维独立的分解形式)是更激进的近似,坐标上升每步有闭式更新但表达力受限;深度生成模型时代的做法是 $q_\phi$ 直接取神经网络(amortized inference,摊销推断),用重参数化技巧求梯度——这就是 VAE。

通向扩散模型:ELBO 的离散时间改写

扩散模型(DDPM, Ho et al. 2020)是潜变量模型的一个极端形态:潜变量 $z_{1:T}$ 是逐步加噪的图像本身,$T$ 取 1000。边缘似然 $\ln p(x)$ 同样算不动,同样用 ELBO。神奇的是,对马尔可夫加噪过程做条件化改写(把联合分布按 $q(z_t|z_{t-1})$ 分解再配对的 $p_\theta$ 逆过程),ELBO 会化简成每一小步去噪误差的加权和:

$$ \mathrm{ELBO}=\sum_{t=1}^{T}w_t\,\mathbb{E}_{q}\!\left[\left\|\epsilon_\theta(z_t,t)-\epsilon\right\|^2\right]+\text{const}, $$

即"训练一个网络从 $z_t$ 预测当初加进去的噪声"。下一篇会从前向加噪过程推出这个形式,这里只指出结构:ELBO 是把"难算的积分"翻译成"一串有条件期望的回归任务"的翻译器,VI 提供翻译框架,马尔可夫结构让翻译结果长得足够简单——简单到可以用均方误差直接训练一个 UNet。

变分推断的分解链:ELBO 与 KL 散度互补成 log p(x) 边缘似然 log p(x) 目标:算不出 ELBO(可优化) E_q[ln p(x,z)/q(z)] KL(q‖p(z|x)) 差距:≥0,q 越准越小 恒等式:log p(x) = ELBO + KL,同时优化两者 重建项 E_q[ln p(x|z)] z 要携带 x 的信息 信息越多,重建越准 先验匹配 −KL(q‖p(z)) q 不能偏离先验太远 信息越少,KL 越小 → 张力

小结

ELBO 的三步推导:任意 $q$ 塞入边缘似然改写成期望(恒等式),Jensen 不等式放缩出下界,拆项发现差距正好是 $q$ 与真实后验的 KL。优化 ELBO 同时优化似然和后验逼近,重组后的两项给出重建与正则的精确分工。VAE 是这套框架在 amortized 推断下的实例,扩散模型则是把 ELBO 翻译成逐步去噪回归的最成功案例——同一座桥,通向两个时代的深度生成模型。