目录
- [0. 符号约定](#0. 符号约定)
- [1. 核心恒等式的拆解](#1. 核心恒等式的拆解)
- [2. E 步详细推导 (Expectation Step)](#2. E 步详细推导 (Expectation Step))
- [3. M 步详细推导 (Maximization Step)](#3. M 步详细推导 (Maximization Step))
- [4. 核心问题:为什么 E 步只看 KL 散度,M 步只看 ELBO?](#4. 核心问题:为什么 E 步只看 KL 散度,M 步只看 ELBO?)
- [5. 几何直观:两步协作的跷跷板](#5. 几何直观:两步协作的跷跷板)
- [6. 算法流程总结](#6. 算法流程总结)
0. 符号约定
| 符号 | 含义 |
|---|---|
| X X X | 观测数据 |
| Z Z Z | 隐变量 (Latent Variable) |
| θ \theta θ | 模型参数 |
| q ( Z ) q(Z) q(Z) | 关于隐变量 Z Z Z 的任意概率分布 |
| θ ( t ) \theta^{(t)} θ(t) | 第 t t t 轮迭代后的参数 |
最终目标 :最大化对数似然函数 log P ( X ∣ θ ) \log P(X|\theta) logP(X∣θ)。
1. 核心恒等式的拆解
1.1 从条件概率出发
根据条件概率公式,观测数据的边缘概率可以写成联合概率除以后验概率:
P ( X ∣ θ ) = P ( X , Z ∣ θ ) P ( Z ∣ X , θ ) P(X|\theta) = \frac{P(X, Z|\theta)}{P(Z|X, \theta)} P(X∣θ)=P(Z∣X,θ)P(X,Z∣θ)
由于此等式对任意 Z Z Z 都成立,两边取对数:
log P ( X ∣ θ ) = log P ( X , Z ∣ θ ) − log P ( Z ∣ X , θ ) \log P(X|\theta) = \log P(X, Z|\theta) - \log P(Z|X, \theta) logP(X∣θ)=logP(X,Z∣θ)−logP(Z∣X,θ)
1.2 引入辅助分布 q ( Z ) q(Z) q(Z) 并取期望
引入关于隐变量 Z Z Z 的任意分布 q ( Z ) q(Z) q(Z)。由于 log P ( X ∣ θ ) \log P(X|\theta) logP(X∣θ) 本身与 Z Z Z 无关,用 q ( Z ) q(Z) q(Z) 对其求期望仍等于自身:
E q ( Z ) [ log P ( X ∣ θ ) ] = log P ( X ∣ θ ) ∑ Z q ( Z ) = log P ( X ∣ θ ) \mathbb{E}_{q(Z)}[\log P(X|\theta)] = \log P(X|\theta) \sum_Z q(Z) = \log P(X|\theta) Eq(Z)[logP(X∣θ)]=logP(X∣θ)Z∑q(Z)=logP(X∣θ)
对右边同样取期望:
log P ( X ∣ θ ) = ∑ Z q ( Z ) log P ( X , Z ∣ θ ) − ∑ Z q ( Z ) log P ( Z ∣ X , θ ) \log P(X|\theta) = \sum_Z q(Z) \log P(X, Z|\theta) - \sum_Z q(Z) \log P(Z|X, \theta) logP(X∣θ)=Z∑q(Z)logP(X,Z∣θ)−Z∑q(Z)logP(Z∣X,θ)
1.3 凑出 ELBO 与 KL 散度
在两项对数内分子分母同时除以 q ( Z ) q(Z) q(Z),利用 log A B = log A − log B \log\frac{A}{B} = \log A - \log B logBA=logA−logB 重组:
log P ( X ∣ θ ) = ∑ Z q ( Z ) log P ( X , Z ∣ θ ) q ( Z ) ⏟ ELBO L ( q , θ ) − ∑ Z q ( Z ) log P ( Z ∣ X , θ ) q ( Z ) ⏟ − D K L ( q ∣ ∣ P ( Z ∣ X , θ ) ) \log P(X|\theta) = \underbrace{\sum_Z q(Z) \log \frac{P(X, Z|\theta)}{q(Z)}}{\text{ELBO } \mathcal{L}(q, \theta)} - \underbrace{\sum_Z q(Z) \log \frac{P(Z|X, \theta)}{q(Z)}}{-D_{KL}(q \,||\, P(Z|X,\theta))} logP(X∣θ)=ELBO L(q,θ) Z∑q(Z)logq(Z)P(X,Z∣θ)−−DKL(q∣∣P(Z∣X,θ)) Z∑q(Z)logq(Z)P(Z∣X,θ)
1.4 EM 算法的核心恒等式
log P ( X ∣ θ ) = L ( q , θ ) + D K L ( q ( Z ) ∣ ∣ P ( Z ∣ X , θ ) ) \boxed{\log P(X|\theta) = \mathcal{L}(q, \theta) + D_{KL}(q(Z) \,||\, P(Z|X, \theta))} logP(X∣θ)=L(q,θ)+DKL(q(Z)∣∣P(Z∣X,θ))
由于 KL 散度恒有 D K L ≥ 0 D_{KL} \ge 0 DKL≥0,因此:
log P ( X ∣ θ ) ≥ L ( q , θ ) \log P(X|\theta) \ge \mathcal{L}(q, \theta) logP(X∣θ)≥L(q,θ)
这就是 L ( q , θ ) \mathcal{L}(q, \theta) L(q,θ) 被称为 证据下界 (ELBO, Evidence Lower Bound) 的原因。
2. E 步详细推导 (Expectation Step)
2.1 目标
固定参数 θ ( t ) \theta^{(t)} θ(t),寻找 q ( Z ) q(Z) q(Z) 使下界 L ( q , θ ( t ) ) \mathcal{L}(q, \theta^{(t)}) L(q,θ(t)) 完全贴合真实对数似然 log P ( X ∣ θ ( t ) ) \log P(X|\theta^{(t)}) logP(X∣θ(t))。
2.2 推导
由核心恒等式:
log P ( X ∣ θ ( t ) ) = L ( q , θ ( t ) ) + D K L ( q ( Z ) ∣ ∣ P ( Z ∣ X , θ ( t ) ) ) \log P(X|\theta^{(t)}) = \mathcal{L}(q, \theta^{(t)}) + D_{KL}(q(Z) \,||\, P(Z|X, \theta^{(t)})) logP(X∣θ(t))=L(q,θ(t))+DKL(q(Z)∣∣P(Z∣X,θ(t)))
左边在 θ ( t ) \theta^{(t)} θ(t) 固定时为常数,因此最大化 L \mathcal{L} L 等价于最小化 D K L D_{KL} DKL。KL 散度最小值为 0 0 0,当且仅当两分布相等时取得:
q ( t ) ( Z ) = P ( Z ∣ X , θ ( t ) ) \boxed{q^{(t)}(Z) = P(Z | X, \theta^{(t)})} q(t)(Z)=P(Z∣X,θ(t))
2.3 Q 函数的定义
基于 q ( t ) ( Z ) q^{(t)}(Z) q(t)(Z),定义 Q 函数 (即对数完全似然的期望):
Q ( θ , θ ( t ) ) = ∑ Z q ( t ) ( Z ) log P ( X , Z ∣ θ ) = E Z ∣ X , θ ( t ) [ log P ( X , Z ∣ θ ) ] Q(\theta, \theta^{(t)}) = \sum_Z q^{(t)}(Z) \log P(X, Z|\theta) = \mathbb{E}_{Z|X, \theta^{(t)}}\!\left[\log P(X, Z|\theta)\right] Q(θ,θ(t))=Z∑q(t)(Z)logP(X,Z∣θ)=EZ∣X,θ(t)[logP(X,Z∣θ)]
E 步结论 :把 q ( Z ) q(Z) q(Z) 设为当前参数下隐变量的后验分布,此时 D K L = 0 D_{KL}=0 DKL=0,下界与真实似然在 θ ( t ) \theta^{(t)} θ(t) 处相切。
3. M 步详细推导 (Maximization Step)
3.1 目标
固定 q ( t ) ( Z ) q^{(t)}(Z) q(t)(Z),寻找新参数 θ ( t + 1 ) \theta^{(t+1)} θ(t+1) 使下界 L ( q ( t ) , θ ) \mathcal{L}(q^{(t)}, \theta) L(q(t),θ) 最大化。
3.2 推导
展开下界:
L ( q ( t ) , θ ) = ∑ Z q ( t ) ( Z ) log P ( X , Z ∣ θ ) − ∑ Z q ( t ) ( Z ) log q ( t ) ( Z ) \mathcal{L}(q^{(t)}, \theta) = \sum_Z q^{(t)}(Z) \log P(X, Z|\theta) - \sum_Z q^{(t)}(Z) \log q^{(t)}(Z) L(q(t),θ)=Z∑q(t)(Z)logP(X,Z∣θ)−Z∑q(t)(Z)logq(t)(Z)
观察两项:
- 第一项 :正是 E 步定义的 Q 函数 Q ( θ , θ ( t ) ) Q(\theta, \theta^{(t)}) Q(θ,θ(t))
- 第二项 : q ( t ) ( Z ) q^{(t)}(Z) q(t)(Z) 的信息熵,与待优化变量 θ \theta θ 无关,可视为常数 C C C
因此最大化下界等价于最大化 Q 函数:
θ ( t + 1 ) = arg max θ Q ( θ , θ ( t ) ) \boxed{\theta^{(t+1)} = \arg\max_{\theta} Q(\theta, \theta^{(t)})} θ(t+1)=argθmaxQ(θ,θ(t))
M 步结论 :通过求导或其他最优化方法,找到使 Q 函数最大的 θ \theta θ 作为新一轮参数。
4. 核心问题:为什么 E 步只看 KL 散度,M 步只看 ELBO?
这种"不对称性"恰恰是 EM 算法的精妙之处。EM 本质上是一种 坐标上升法 (Coordinate Ascent) ------ 在 q q q 和 θ \theta θ 两个变量之间交替固定一个、优化另一个。
4.1 为什么 E 步只考虑 KL 散度?
核心原因 : θ \theta θ 固定时,真实对数似然是常数,最大化下界等价于最小化 KL 散度。
回看恒等式:
log P ( X ∣ θ ( t ) ) ⏟ 常数 = L ( q , θ ( t ) ) + D K L ( q ( Z ) ∣ ∣ P ( Z ∣ X , θ ( t ) ) ) \underbrace{\log P(X|\theta^{(t)})}{\text{常数}} = \mathcal{L}(q, \theta^{(t)}) + D{KL}(q(Z) \,||\, P(Z|X, \theta^{(t)})) 常数 logP(X∣θ(t))=L(q,θ(t))+DKL(q(Z)∣∣P(Z∣X,θ(t)))
逻辑非常简洁 ------ 和为定值,此消彼长:
- 要让 L \mathcal{L} L 尽可能大 ⟹ \Longrightarrow ⟹ 必须让 D K L D_{KL} DKL 尽可能小
- D K L D_{KL} DKL 的下限是 0 0 0 (两分布相等时取得)
因此 E 步只需专注于"消灭" KL 散度。一旦 D K L = 0 D_{KL}=0 DKL=0,下界就被拉到最紧 (Tight),与真实似然完全贴合,E 步使命完成。
4.2 为什么 M 步只考虑证据下界 (ELBO)?
核心原因 : q q q 固定后,最大化下界既"算得出"又"等价于"最大化真实似然的代理目标;而管 KL 散度既算不了也没必要。
理由一:算不了
KL 散度内含 P ( Z ∣ X , θ ) P(Z|X, \theta) P(Z∣X,θ) ------ 带未知参数 θ \theta θ 的隐变量后验概率。正是因为这一项难以直接对 θ \theta θ 求导优化,我们才设计了 EM 算法。若 M 步还要优化包含它的 KL 散度,就陷入了死循环 ------ 为了避开难算的式子,结果又绕回了难算的式子。
理由二:没必要
这是 EM 最绝妙之处:不必管 KL 散度,只要把下界 L \mathcal{L} L 往上推,真实似然必然跟着上升。
推演 M 步:
-
M 步起点 (参数还是 θ ( t ) \theta^{(t)} θ(t)):由于 E 步的功劳, D K L = 0 D_{KL}=0 DKL=0,所以
log P ( X ∣ θ ( t ) ) = L ( q ( t ) , θ ( t ) ) \log P(X|\theta^{(t)}) = \mathcal{L}(q^{(t)}, \theta^{(t)}) logP(X∣θ(t))=L(q(t),θ(t)) -
M 步执行 :找到新 θ ( t + 1 ) \theta^{(t+1)} θ(t+1) 使下界严格上升
L ( q ( t ) , θ ( t + 1 ) ) > L ( q ( t ) , θ ( t ) ) \mathcal{L}(q^{(t)}, \theta^{(t+1)}) > \mathcal{L}(q^{(t)}, \theta^{(t)}) L(q(t),θ(t+1))>L(q(t),θ(t)) -
更新后的真实似然 :
log P ( X ∣ θ ( t + 1 ) ) = L ( q ( t ) , θ ( t + 1 ) ) + D K L ( ⋯ ) \log P(X|\theta^{(t+1)}) = \mathcal{L}(q^{(t)}, \theta^{(t+1)}) + D_{KL}(\cdots) logP(X∣θ(t+1))=L(q(t),θ(t+1))+DKL(⋯) -
不等式链 (因为 D K L ≥ 0 D_{KL} \ge 0 DKL≥0):
log P ( X ∣ θ ( t + 1 ) ) ≥ L ( q ( t ) , θ ( t + 1 ) ) > L ( q ( t ) , θ ( t ) ) = log P ( X ∣ θ ( t ) ) \log P(X|\theta^{(t+1)}) \ge \mathcal{L}(q^{(t)}, \theta^{(t+1)}) > \mathcal{L}(q^{(t)}, \theta^{(t)}) = \log P(X|\theta^{(t)}) logP(X∣θ(t+1))≥L(q(t),θ(t+1))>L(q(t),θ(t))=logP(X∣θ(t))
结论:真实对数似然在每轮迭代中单调不减 ------ 这就是 EM 算法收敛性的核心保证。
5. 几何直观:两步协作的跷跷板
| 步骤 | 固定变量 | 优化变量 | 几何效果 |
|---|---|---|---|
| E 步 | θ ( t ) \theta^{(t)} θ(t) | q ( Z ) q(Z) q(Z) | "把下界往上提",压扁 KL 散度至 0,使下界曲线在 θ ( t ) \theta^{(t)} θ(t) 处与真实对数似然曲线 相切 |
| M 步 | q ( t ) ( Z ) q^{(t)}(Z) q(t)(Z) | θ \theta θ | "沿下界爬到山顶",在 θ \theta θ 坐标系内找到下界 L \mathcal{L} L 的最高点 θ ( t + 1 ) \theta^{(t+1)} θ(t+1) |
由于 L \mathcal{L} L 是 log P \log P logP 的下界, L \mathcal{L} L 升高 ⟹ \Longrightarrow ⟹ 真实 log P \log P logP 被"托举"着升高。两步交替进行,直至收敛。
6. 算法流程总结
输入 :观测数据 X X X,模型 P ( X , Z ∣ θ ) P(X, Z|\theta) P(X,Z∣θ),初始参数 θ ( 0 ) \theta^{(0)} θ(0)
重复直至收敛 (对 t = 0 , 1 , 2 , ... t = 0, 1, 2, \ldots t=0,1,2,...):
E 步 :计算后验分布
q ( t ) ( Z ) = P ( Z ∣ X , θ ( t ) ) q^{(t)}(Z) = P(Z|X, \theta^{(t)}) q(t)(Z)=P(Z∣X,θ(t))并构造 Q 函数
Q ( θ , θ ( t ) ) = E Z ∣ X , θ ( t ) [ log P ( X , Z ∣ θ ) ] Q(\theta, \theta^{(t)}) = \mathbb{E}_{Z|X, \theta^{(t)}}\!\left[\log P(X, Z|\theta)\right] Q(θ,θ(t))=EZ∣X,θ(t)[logP(X,Z∣θ)]M 步 :更新参数
θ ( t + 1 ) = arg max θ Q ( θ , θ ( t ) ) \theta^{(t+1)} = \arg\max_{\theta} Q(\theta, \theta^{(t)}) θ(t+1)=argθmaxQ(θ,θ(t))输出 :收敛后的参数 θ ∗ \theta^* θ∗