Jensen 不等式 → KL 散度 → 最大化对数似然下界(ELBO)

变分推断核心链条的通俗推导:Jensen 不等式给出下界,KL 散度度量间隙,ELBO 是可优化目标;附高斯数值验证与 EM/VAE 落地。

Jensen 不等式 → KL 散度 → 最大化对数似然下界(ELBO)

一句话主线:对数似然 $\log p(x)$ 算不动 → 引入任意分布 $q(z|x)$ 构造期望 → 用 Jensen 不等式强行挖出一个下界 ELBO → 下界与真值之间的"缝"恰好由 KL 散度度量 → 最大化 ELBO 就是在做"最大似然"与"逼近真实后验"两件事的合体。

graph LR
    A["对数似然 log p(x) 不可解析计算"] --> B["引入任意分布 q(z|x)"]
    B --> C["Jensen 不等式<br/>log E[f] >= E[log f]"]
    C --> D["得到下界 ELBO(q)"]
    D --> E["间隙 log p(x) - ELBO = KL(q || p(z|x))"]
    E --> F["最大化 ELBO<br/>推高似然 + 逼近真实后验"]

1. 动机:隐变量模型的困境

考虑带隐变量 $z$ 的模型,观测数据 $x$ 的边际似然为:

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

最大似然估计(MLE)要求最大化 $\log p(x)$,但现实中:

  1. 积分不可解:$p(x|z)$ 复杂(神经网络、混合模型等)时,积分无解析形式;
  2. 后验不可得:$p(z|x) = \dfrac{p(x|z)p(z)}{p(x)}$ 的分母 $p(x)$ 正是那个算不动的积分。

于是我们"曲线救国":不直接算 $\log p(x)$,而是构造它的一个可优化、可计算的下界,然后最大化这个下界。下界的两个构件就是本笔记的另外两个主角:Jensen 不等式(下界的来源)和 KL 散度(间隙的度量)。


2. Jensen 不等式:下界的"出处"

定理:设 $\varphi$ 为凸函数,$X$ 为随机变量,则

$$ \varphi\big(\mathbb{E}[X]\big) \;\le\; \mathbb{E}\big[\varphi(X)\big] $$

若 $\varphi$ 是凹函数,不等号反向:

$$ \mathbb{E}\big[\varphi(X)\big] \;\le\; \varphi\big(\mathbb{E}[X]\big) $$

直观:凸函数的图像"凹陷",切线在图像下方——函数在均值处的取值 ≤ 函数值的平均;凹函数反之。

为什么成立(凸函数):凸函数在任意点 $x_0$ 处有支撑线 $\varphi(x) \ge \varphi(x_0) + \varphi'(x_0)(x - x_0)$,取 $x_0 = \mathbb{E}[X]$ 再对两边取期望即得。

关键特例:$\log$ 是严格凹函数,因此

$$ \boxed{\;\log \mathbb{E}_q[f] \;\ge\; \mathbb{E}_q[\log f]\;} $$

这是整个 ELBO 推导里唯一的"不等号来源",其余全是恒等变形。


3. KL 散度:间隙的"度量"

定义($q$ 相对于 $p$):

$$ \mathrm{KL}(q \,\|\, p) \;=\; \mathbb{E}_{q}\Big[\log \frac{q(z)}{p(z)}\Big] \;=\; \int q(z)\log\frac{q(z)}{p(z)}\, dz $$

核心性质

  1. 非负:$\mathrm{KL}(q\|p) \ge 0$,当且仅当 $q = p$(几乎处处)时取等;
  2. 非对称:$\mathrm{KL}(q\|p) \ne \mathrm{KL}(p\|q)$,所以它不是"距离";
  3. 信息论含义:用 $q$ 去近似编码真实分布 $p$ 时,平均多付出的信息量(比特数)。

用 Jensen 证明非负性(这条证明把三个概念第一次扣在一起):

$$ -\mathrm{KL}(q\|p) = \mathbb{E}_q\Big[\log \frac{p}{q}\Big] \;\overset{\text{Jensen}}{\le}\; \log \mathbb{E}_q\Big[\frac{p}{q}\Big] = \log \int p\, dz = \log 1 = 0 $$

所以 $\mathrm{KL}(q\|p) \ge 0$。由于 $\log$ 严格凹,等号成立当且仅当 $p/q$ 为常数,即 $q \propto p$,结合归一化得 $q = p$。


4. 主线推导:对数似然下界(ELBO)

第 1 步:乘一个"无害的 1"。 对任意分布 $q(z|x)$(满足支撑条件,即 $q>0$ 处 $p(x,z)>0$):

$$ \log p(x) = \log \int p(x,z)\, dz = \log \int q(z|x)\cdot \frac{p(x,z)}{q(z|x)}\, dz = \log \mathbb{E}_{q(z|x)}\Big[\frac{p(x,z)}{q(z|x)}\Big] $$

第 2 步:Jensen 出手。 对 $\log$ 用 Jensen 不等式($\log \mathbb{E} \ge \mathbb{E}\log$):

$$ \log p(x) \;\ge\; \mathbb{E}_{q(z|x)}\Big[\log \frac{p(x,z)}{q(z|x)}\Big] \;\triangleq\; \underbrace{\mathrm{ELBO}(q)}_{\text{证据下界 Evidence Lower Bound}} $$

第 3 步:把 ELBO 拆成两项(得到可计算的形态)。只用三个工具:对数除法性质、期望线性性、联合分布链式分解:

$$ \begin{aligned} \mathrm{ELBO}(q) &= \mathbb{E}_q\Big[\log \frac{p(x,z)}{q(z|x)}\Big] && \text{(定义)} \\[2pt] &= \mathbb{E}_q\big[\log p(x,z)\big] - \mathbb{E}_q\big[\log q(z|x)\big] && \text{(对数除法性质、期望线性性)} \\[2pt] &= \mathbb{E}_q\big[\log p(x|z)\big] + \mathbb{E}_q\big[\log p(z)\big] - \mathbb{E}_q\big[\log q(z|x)\big] && \text{(链式分解:联合 = 条件 × 先验)} \\[2pt] &= \underbrace{\mathbb{E}_q\big[\log p(x|z)\big]}_{\text{重构项:z 解释 x 的能力}} \;-\; \underbrace{\mathbb{E}_q\Big[\log\frac{q(z|x)}{p(z)}\Big]}_{\mathrm{KL}\big(q(z|x)\,\|\,p(z)\big):\ \text{正则项}} && \text{(后两项合并,KL 定义前有个负号)} \end{aligned} $$

第 4 步:间隙到底有多大? 看 $\log p(x)$ 与 ELBO 的差(恒等变形,不再用不等式):

$$ \begin{aligned} \log p(x) = \mathbb{E}_q\big[\log p(x)\big] &= \mathbb{E}_q\Big[\log \frac{p(x,z)}{p(z|x)}\Big] \\[4pt] &= \mathbb{E}_q\Big[\log \frac{p(x,z)}{q(z|x)}\Big] + \mathbb{E}_q\Big[\log \frac{q(z|x)}{p(z|x)}\Big] \\[4pt] &= \mathrm{ELBO}(q) + \mathrm{KL}\big(q(z|x) \,\|\, p(z|x)\big) \end{aligned} $$

得到本笔记最核心的一个恒等式:

$$ \boxed{\;\log p(x) \;=\; \mathrm{ELBO}(q) \;+\; \mathrm{KL}\big(q(z|x)\,\|\,p(z|x)\big)\;} $$

5. 三个概念是如何串起来的

把上面的结果排成一条链:

$$ \log p(x) \;=\; \underbrace{\mathrm{ELBO}(q)}_{\text{可优化下界}} \;+\; \underbrace{\mathrm{KL}\big(q \,\|\, p(z|x)\big)}_{\ge\,0,\ \text{Jensen 保证}} \;\ge\; \underbrace{\mathrm{ELBO}(q)}_{ \begin{array}{c} \mathbb{E}_q[\log p(x|z)] \\[-2pt] - \mathrm{KL}(q \,\|\, p(z)) \end{array}} $$

逐一对应三个概念的分工:

概念在链条中的角色提供什么
Jensen 不等式第 2 步的不等号下界的存在性($\log \mathbb{E} \ge \mathbb{E}\log$);顺带证明 KL ≥ 0
KL 散度第 4 步的间隙项度量"下界离真值有多远";等于 0 时下界变等式
ELBO整个链条的优化目标替代不可算的 $\log p(x)$ 的可计算代理目标

“最大化下界"为什么是有意义的——从恒等式读出来的两条信息:

  1. 推高似然:ELBO 上升,$\log p(x) \ge$ ELBO 意味着下界被抬高,似然"至少"涨这么多;
  2. 逼近后验:$\log p(x)$ 固定时,$\mathrm{KL}(q\|p(z|x)) = \log p(x) - \mathrm{ELBO}(q)$,最大化 ELBO 等价于最小化 $q$ 与真实后验之间的 KL 散度

所以最大化 ELBO 是一举两得:既在向 MLE 逼近,又在把变分分布 $q$ 拉向真实后验 $p(z|x)$。当且仅当 $q(z|x) = p(z|x)$ 时 $\mathrm{KL}=0$,下界取等,ELBO 精确等于 $\log p(x)$。

一句话记忆Jensen 挖洞(制造不等号),KL 量缝(度量间隙),ELBO 是桥(替代目标),最大化 ELBO = 填缝 + 抬坡。


6. 数值小例子(高斯情形,全程可解析)

设先验 $p(z) = \mathcal N(0,1)$,似然 $p(x|z) = \mathcal N(z,1)$,观测 $x = 0.5$。

  • 边际似然解析:$p(x) = \mathcal N(0,\;2)$,故 $\log p(x) = -1.3280$;
  • 真实后验解析:$p(z|x) = \mathcal N\big(\frac{x}{2}, \frac12\big) = \mathcal N(0.25,\;0.5)$。

取两种变分分布 $q$,验证恒等式 $\log p(x) = \mathrm{ELBO} + \mathrm{KL}(q\|p(z|x))$:

$q(z)$ELBO($q$)KL($q \Vert p(z \mid x)$)ELBO + KL
$\mathcal N(0, 1)$(即先验)−1.54390.2159−1.3280 ✓
$\mathcal N(0.25,\,0.5)$(即真实后验)−1.32800−1.3280 ✓

可以清楚看到:$q$ 取先验时下界松松垮垮(KL 大);$q$ 取真实后验时 KL = 0、下界取等、ELBO 精确等于对数似然——“最大化下界"就是在这两者之间移动 $q$


7. 两个经典落地:EM 与 VAE

7.1 EM 算法(下界视角的 EM)

EM 的每一次迭代恰好是"填缝 + 抬坡"两步:

  • E 步:固定参数 $\theta_{old}$,令 $q(z|x) = p(z|x; \theta_{old})$,则 $\mathrm{KL}=0$,下界与 $\log p(x;\theta_{old})$ 取等(填缝);
  • M 步:固定 $q$,对 $\theta$ 最大化 ELBO(抬坡)。

因为 $\log p(x;\theta) \ge \mathrm{ELBO}(\theta)$,而 E 步起点处取等,所以每一步迭代都保证 $\log p(x;\theta)$ 单调不减——这正是 EM 收敛性的证明骨架。

7.2 VAE(变分自编码器)

  • 变分后验 $q_\phi(z|x)$(编码器)与生成模型 $p_\theta(x|z)$(解码器)都是神经网络;
  • 目标函数就是 ELBO:$\;\mathcal L(\theta,\phi) = \mathbb{E}_{q_\phi}\big[\log p_\theta(x|z)\big] - \mathrm{KL}\big(q_\phi(z|x)\,\|\,p(z)\big)$;
  • 重参数化技巧 $z = \mu_\phi(x) + \sigma_\phi(x)\odot\epsilon,\ \epsilon\sim\mathcal N(0,I)$ 让期望对 $\phi$ 可求梯度,于是训练 = 对 ELBO 做随机梯度上升。

8. 总结

  • Jensen 不等式:$\log \mathbb{E}_q[f] \ge \mathbb{E}_q[\log f]$——下界的唯一来源,也顺带证明了 KL ≥ 0;
  • KL 散度:$\mathrm{KL}(q\|p) \ge 0$,取等当且仅当 $q=p$——负责度量下界与对数似然之间的缝;
  • ELBO:$\log p(x) = \mathrm{ELBO}(q) + \mathrm{KL}(q\|p(z|x)) \ge \mathrm{ELBO}(q)$——三个概念咬合的最终产物,是变分推断(VAE、EM、平均场)的公共目标函数。

整条链只需四行:

log p(x) = log E_q[ p(x,z)/q(z|x) ]        # 乘 1,引入任意 q
        ≥ E_q[ log p(x,z)/q(z|x) ] = ELBO  # Jensen 不等式
log p(x) = ELBO + KL(q || p(z|x))          # 恒等变形,间隙现身
max ELBO  ⟺  抬坡 + 填缝                   # 变分推断的一切

9. 延伸阅读

  • 变分推断与平均场近似(mean-field VI)的坐标上升算法;
  • EM 算法收敛性证明与 ELBO 的联系(Dempster et al., 1977);
  • VAE 原文(Kingma & Welling, 2014)中的重参数化技巧;
  • 更一般的框架:$\log p(x)$ 还可与自由能、重要性采样(IWAE)联系。