目录

ELBO

ELBO 与变分方法详解

在隐变量生成模型中,观测 xx 由隐变量 zz 通过解码器 pϕ(xz)p_\phi(x|z) 生成,先验为 p(z)p(z)。**边际似然(证据)**为:

logpϕ(x)=logpϕ(xz)p(z)dz \log p_\phi(x) = \log \int p_\phi(x|z)\, p(z)\, dz
  • 理想:用最大似然估计(MLE)最大化 logpϕ(x)\log p_\phi(x) 来学习解码器参数 ϕ\phi
  • 障碍:积分对 zz 在高维、非线性解码器下难以计算(intractable),直接 MLE 不可行。
  • 变分思路:不直接算 logpϕ(x)\log p_\phi(x),而是构造一个可计算的下界,通过最大化该下界间接增大 logpϕ(x)\log p_\phi(x)。这个下界就是 ELBO(Evidence Lower BOund,证据下界)。

真实后验为:

pϕ(zx)=pϕ(xz)p(z)pϕ(x) p_\phi(z|x) = \frac{p_\phi(x|z)\, p(z)}{p_\phi(x)}

分母 pϕ(x)p_\phi(x) 含难算积分,故 pϕ(zx)p_\phi(z|x) 也无法直接得到。

变分方法引入一族由参数 θ\theta 控制的分布 qθ(zx)q_\theta(z|x)(如高斯,由编码器输出 μ(x),σ(x)\mu(x),\sigma(x)),用 qθ(zx)q_\theta(z|x) 近似 pϕ(zx)p_\phi(z|x)。“变分”即在该族内调整 θ\theta,使 qq 尽量接近真实后验。


下面从 logpϕ(x)\log p_\phi(x) 出发,对任意xx 有关的分布 q(zx)q(z|x)(不要求等于真实后验 pϕ(zx)p_\phi(z|x)),逐步推出 ELBO 与 KL 的分解。推导中只用到概率的乘法公式与期望的线性性,不涉及对 zz 的难算积分。

logpϕ(x)\log p_\phi(x)zz 无关,故对任意分布 q(zx)q(z|x) 有:

logpϕ(x)=q(zx)logpϕ(x)dz=Ezq(zx)[logpϕ(x)]. \log p_\phi(x) = \int q(z|x)\, \log p_\phi(x)\, dz = \mathbb{E}_{z \sim q(z|x)} \left[ \log p_\phi(x) \right].

这样做的目的:后面会把被积函数换成含 zz 的式子,从而出现只依赖 qq 的期望,而不再出现 pϕ(x)p_\phi(x) 的积分。

由条件概率 pϕ(zx)=pϕ(x,z)/pϕ(x)p_\phi(z|x) = p_\phi(x,z)\,/\,p_\phi(x)pϕ(x)=pϕ(x,z)/pϕ(zx)p_\phi(x) = p_\phi(x,z)\,/\,p_\phi(z|x),代入上式:

logpϕ(x)=Ezq(zx)[logpϕ(x,z)pϕ(zx)]. \log p_\phi(x) = \mathbb{E}_{z \sim q(z|x)} \left[ \log \frac{p_\phi(x,z)}{p_\phi(z|x)} \right].

这里 log\log 里出现了联合 pϕ(x,z)p_\phi(x,z) 与后验 pϕ(zx)p_\phi(z|x);后者仍然难算,下一步通过引入 qqpϕ(zx)p_\phi(z|x)log\log 里“换掉”。

log\log 内分子分母同乘 q(zx)q(z|x),不改变取值:

pϕ(x,z)pϕ(zx)=pϕ(x,z)q(zx)q(zx)pϕ(zx). \frac{p_\phi(x,z)}{p_\phi(z|x)} = \frac{p_\phi(x,z)}{q(z|x)} \cdot \frac{q(z|x)}{p_\phi(z|x)}.

于是:

logpϕ(x)=Ezq(zx)[log(pϕ(x,z)q(zx)q(zx)pϕ(zx))]. \log p_\phi(x) = \mathbb{E}_{z \sim q(z|x)} \left[ \log \left( \frac{p_\phi(x,z)}{q(z|x)} \cdot \frac{q(z|x)}{p_\phi(z|x)} \right) \right].

log(ab)=loga+logb\log(ab) = \log a + \log b,且期望线性,故:

logpϕ(x)=Ezq(zx)[logpϕ(x,z)q(zx)]+Ezq(zx)[logq(zx)pϕ(zx)]. \log p_\phi(x) = \mathbb{E}_{z \sim q(z|x)} \left[ \log \frac{p_\phi(x,z)}{q(z|x)} \right] + \mathbb{E}_{z \sim q(z|x)} \left[ \log \frac{q(z|x)}{p_\phi(z|x)} \right].

第二项正是 q(zx)q(z|x)pϕ(zx)p_\phi(z|x)KL 散度

DKL(q(zx)pϕ(zx))=Ezq(zx)[logq(zx)pϕ(zx)]. D_{\mathrm{KL}}\bigl( q(z|x) \,\|\, p_\phi(z|x) \bigr) = \mathbb{E}_{z \sim q(z|x)} \left[ \log \frac{q(z|x)}{p_\phi(z|x)} \right].

由 Jensen 不等式或 Gibbs 不等式可知 KL 散度非负,且当且仅当 q=pϕ(zx)q = p_\phi(z|x) 时为零,故:

DKL(q(zx)pϕ(zx))0. D_{\mathrm{KL}}\bigl( q(z|x) \,\|\, p_\phi(z|x) \bigr) \geq 0.

记第一项为 ELBO(证据下界),即得:

logpϕ(x)=Ezq(zx)[logpϕ(x,z)q(zx)]ELBO+DKL(q(zx)pϕ(zx)) \boxed{ \log p_\phi(x) = \underbrace{\mathbb{E}_{z \sim q(z|x)} \left[ \log \frac{p_\phi(x,z)}{q(z|x)} \right]}_{\mathrm{ELBO}} + D_{\mathrm{KL}}\bigl( q(z|x) \,\|\, p_\phi(z|x) \bigr) }

因此:

logpϕ(x)ELBO, \log p_\phi(x) \geq \mathrm{ELBO},

等号成立当且仅当 q(zx)=pϕ(zx)q(z|x) = p_\phi(z|x)(几乎处处)。即 ELBO 是 logpϕ(x)\log p_\phi(x) 的下界,且等号越紧说明 qq 越接近真实后验。ELBO 中只出现 pϕ(x,z)p_\phi(x,z)q(zx)q(z|x)不包含难算的 pϕ(x)p_\phi(x)pϕ(zx)p_\phi(z|x)


ELBO 的原始形式为 Ezq(zx)[logpϕ(x,z)q(zx)]\mathbb{E}_{z \sim q(z|x)} \left[ \log \frac{p_\phi(x,z)}{q(z|x)} \right]。下面通过分解 pϕ(x,z)p_\phi(x,z) 得到两种常用写法。

由联合概率分解 pϕ(x,z)=pϕ(xz)p(z)p_\phi(x,z) = p_\phi(x|z)\, p(z)(先验 × 似然),有:

logpϕ(x,z)q(zx)=logpϕ(xz)+logp(z)logq(zx). \log \frac{p_\phi(x,z)}{q(z|x)} = \log p_\phi(x|z) + \log p(z) - \log q(z|x).

q(zx)q(z|x) 取期望(期望的线性性),得:

ELBO=Ezq(zx)[logpϕ(xz)]+Ezq(zx)[logp(z)logq(zx)]. \mathrm{ELBO} = \mathbb{E}_{z \sim q(z|x)} \left[ \log p_\phi(x|z) \right] + \mathbb{E}_{z \sim q(z|x)} \left[ \log p(z) - \log q(z|x) \right].

第二项 Ezq(zx)[logp(z)logq(zx)]\mathbb{E}_{z \sim q(z|x)} \left[ \log p(z) - \log q(z|x) \right] 正是 DKL(q(zx)p(z))-D_{\mathrm{KL}}(q(z|x) \| p(z))qq 对先验 p(z)p(z) 的 KL 的相反数)。因此:

ELBO=Ezq(zx)[logpϕ(xz)]DKL(q(zx)p(z)) \boxed{ \mathrm{ELBO} = \mathbb{E}_{z \sim q(z|x)} \left[ \log p_\phi(x|z) \right] - D_{\mathrm{KL}}\bigl( q(z|x) \,\|\, p(z) \bigr) }
  • 第一项 Ezq(zx)[logpϕ(xz)]\mathbb{E}_{z \sim q(z|x)} \left[ \log p_\phi(x|z) \right]重构对数似然。从 q(zx)q(z|x) 采样 zz,看解码器 pϕ(xz)p_\phi(x|z) 能否把 zz 还原成 xx;越大重构越好。
  • 第二项 DKL(q(zx)p(z))-D_{\mathrm{KL}}(q(z|x) \| p(z))正则项。约束 q(zx)q(z|x) 不要偏离先验 p(z)p(z) 太远,避免后验塌缩或过于任意。

在第三节已得到 logpϕ(x)=ELBO+DKL(qpϕ(zx))\log p_\phi(x) = \mathrm{ELBO} + D_{\mathrm{KL}}(q \| p_\phi(z|x)),移项即:

ELBO=logpϕ(x)DKL(q(zx)pϕ(zx)). \mathrm{ELBO} = \log p_\phi(x) - D_{\mathrm{KL}}\bigl( q(z|x) \,\|\, p_\phi(z|x) \bigr).

因此:

  • 最大化 ELBO 等价于同时 增大 logpϕ(x)\log p_\phi(x)减小 qq 与真实后验的 KL
  • qq 越接近 pϕ(zx)p_\phi(z|x),KL 越小,ELBO 越紧(越接近 logpϕ(x)\log p_\phi(x))。

对象是否含难算积分
logpϕ(x)\log p_\phi(x)pϕ(xz)p(z)dz\int p_\phi(x \mid z)p(z)\,dz,难算
ELBO仅含 Ezq(zx)[]\mathbb{E}_{z \sim q(z \mid x)}[\cdots],无难解积分

ELBO 只涉及对 q(zx)q(z|x) 的期望:

  1. 采样:从 qθ(zx)q_\theta(z|x) 采样 zz(VAE 中用重参数化 z=μ+σεz = \mu + \sigma \odot \varepsilonεN(0,I)\varepsilon \sim \mathcal{N}(0,I),便于对 θ\theta 求导)。
  2. 估计:用蒙特卡洛 1Nilogpϕ(xz(i))\frac{1}{N}\sum_i \log p_\phi(x|z^{(i)}) 估计第一项;当 qqpp 为高斯时,KL 项可解析写出,无需采样。
  3. 梯度:对 ϕ,θ\phi,\theta 可微,用反向传播即可训练解码器与编码器。

因此 变分方法 通过引入 q(zx)q(z|x),把“难算的边际积分”转化为“对 qq 的期望”,得到可优化的 ELBO。


  • 直接 MLE:最大化 logpϕ(x)\log p_\phi(x),梯度为 ϕlogpϕ(x)\nabla_\phi \log p_\phi(x),仍含对 zz 的积分;若用先验 p(z)p(z) 采样做蒙特卡洛,绝大多数 zz 对当前 xx 几乎无贡献,梯度估计方差极大,优化不稳定。
  • 变分 + ELBO:用 q(zx)q(z|x) 在“对当前 xx 重要的 zz”附近采样,有效样本多、方差小,梯度估计可行,故 VAE 采用最大化 ELBO 而非直接 MLE。

  • 变分方法:用可参数量 qθ(zx)q_\theta(z|x) 近似难算的后验 pϕ(zx)p_\phi(z|x),并构造 logpϕ(x)\log p_\phi(x) 的可算下界。

  • ELBO

    L(ϕ,θ)=Ezqθ(zx)[logpϕ(xz)]DKL(qθ(zx)p(z))\mathcal{L}(\phi,\theta) = \mathbb{E}_{z \sim q_\theta(z|x)} \left[ \log p_\phi(x|z) \right] - D_{\mathrm{KL}}\bigl( q_\theta(z|x) \,\|\, p(z) \bigr)
  • 训练:最大化 ELBO,即同时近似 MLE(提高 logpϕ(x)\log p_\phi(x))和学好近似后验 q(zx)q(z|x)。VAE 即在此框架下,用神经网络表示 pϕ(xz)p_\phi(x|z)qθ(zx)q_\theta(z|x) 并优化上述目标。

相关内容