在隐变量生成模型中,观测 x 由隐变量 z 通过解码器 pϕ(x∣z) 生成,先验为 p(z)。**边际似然(证据)**为:
logpϕ(x)=log∫pϕ(x∣z)p(z)dz- 理想:用最大似然估计(MLE)最大化 logpϕ(x) 来学习解码器参数 ϕ。
- 障碍:积分对 z 在高维、非线性解码器下难以计算(intractable),直接 MLE 不可行。
- 变分思路:不直接算 logpϕ(x),而是构造一个可计算的下界,通过最大化该下界间接增大 logpϕ(x)。这个下界就是 ELBO(Evidence Lower BOund,证据下界)。
真实后验为:
pϕ(z∣x)=pϕ(x)pϕ(x∣z)p(z)分母 pϕ(x) 含难算积分,故 pϕ(z∣x) 也无法直接得到。
变分方法引入一族由参数 θ 控制的分布 qθ(z∣x)(如高斯,由编码器输出 μ(x),σ(x)),用 qθ(z∣x) 近似 pϕ(z∣x)。“变分”即在该族内调整 θ,使 q 尽量接近真实后验。
下面从 logpϕ(x) 出发,对任意与 x 有关的分布 q(z∣x)(不要求等于真实后验 pϕ(z∣x)),逐步推出 ELBO 与 KL 的分解。推导中只用到概率的乘法公式与期望的线性性,不涉及对 z 的难算积分。
logpϕ(x) 与 z 无关,故对任意分布 q(z∣x) 有:
logpϕ(x)=∫q(z∣x)logpϕ(x)dz=Ez∼q(z∣x)[logpϕ(x)].这样做的目的:后面会把被积函数换成含 z 的式子,从而出现只依赖 q 的期望,而不再出现 pϕ(x) 的积分。
由条件概率 pϕ(z∣x)=pϕ(x,z)/pϕ(x) 得 pϕ(x)=pϕ(x,z)/pϕ(z∣x),代入上式:
logpϕ(x)=Ez∼q(z∣x)[logpϕ(z∣x)pϕ(x,z)].这里 log 里出现了联合 pϕ(x,z) 与后验 pϕ(z∣x);后者仍然难算,下一步通过引入 q 把 pϕ(z∣x) 从 log 里“换掉”。
在 log 内分子分母同乘 q(z∣x),不改变取值:
pϕ(z∣x)pϕ(x,z)=q(z∣x)pϕ(x,z)⋅pϕ(z∣x)q(z∣x).于是:
logpϕ(x)=Ez∼q(z∣x)[log(q(z∣x)pϕ(x,z)⋅pϕ(z∣x)q(z∣x))].log(ab)=loga+logb,且期望线性,故:
logpϕ(x)=Ez∼q(z∣x)[logq(z∣x)pϕ(x,z)]+Ez∼q(z∣x)[logpϕ(z∣x)q(z∣x)].第二项正是 q(z∣x) 对 pϕ(z∣x) 的 KL 散度:
DKL(q(z∣x)∥pϕ(z∣x))=Ez∼q(z∣x)[logpϕ(z∣x)q(z∣x)].由 Jensen 不等式或 Gibbs 不等式可知 KL 散度非负,且当且仅当 q=pϕ(z∣x) 时为零,故:
DKL(q(z∣x)∥pϕ(z∣x))≥0.记第一项为 ELBO(证据下界),即得:
logpϕ(x)=ELBOEz∼q(z∣x)[logq(z∣x)pϕ(x,z)]+DKL(q(z∣x)∥pϕ(z∣x))因此:
logpϕ(x)≥ELBO,等号成立当且仅当 q(z∣x)=pϕ(z∣x)(几乎处处)。即 ELBO 是 logpϕ(x) 的下界,且等号越紧说明 q 越接近真实后验。ELBO 中只出现 pϕ(x,z) 与 q(z∣x),不包含难算的 pϕ(x) 或 pϕ(z∣x)。
ELBO 的原始形式为 Ez∼q(z∣x)[logq(z∣x)pϕ(x,z)]。下面通过分解 pϕ(x,z) 得到两种常用写法。
由联合概率分解 pϕ(x,z)=pϕ(x∣z)p(z)(先验 × 似然),有:
logq(z∣x)pϕ(x,z)=logpϕ(x∣z)+logp(z)−logq(z∣x).对 q(z∣x) 取期望(期望的线性性),得:
ELBO=Ez∼q(z∣x)[logpϕ(x∣z)]+Ez∼q(z∣x)[logp(z)−logq(z∣x)].第二项 Ez∼q(z∣x)[logp(z)−logq(z∣x)] 正是 −DKL(q(z∣x)∥p(z))(q 对先验 p(z) 的 KL 的相反数)。因此:
ELBO=Ez∼q(z∣x)[logpϕ(x∣z)]−DKL(q(z∣x)∥p(z))- 第一项 Ez∼q(z∣x)[logpϕ(x∣z)]:重构对数似然。从 q(z∣x) 采样 z,看解码器 pϕ(x∣z) 能否把 z 还原成 x;越大重构越好。
- 第二项 −DKL(q(z∣x)∥p(z)):正则项。约束 q(z∣x) 不要偏离先验 p(z) 太远,避免后验塌缩或过于任意。
在第三节已得到 logpϕ(x)=ELBO+DKL(q∥pϕ(z∣x)),移项即:
ELBO=logpϕ(x)−DKL(q(z∣x)∥pϕ(z∣x)).因此:
- 最大化 ELBO 等价于同时 增大 logpϕ(x) 与 减小 q 与真实后验的 KL。
- q 越接近 pϕ(z∣x),KL 越小,ELBO 越紧(越接近 logpϕ(x))。
| 对象 | 是否含难算积分 |
|---|
| logpϕ(x) | 含 ∫pϕ(x∣z)p(z)dz,难算 |
| ELBO | 仅含 Ez∼q(z∣x)[⋯],无难解积分 |
ELBO 只涉及对 q(z∣x) 的期望:
- 采样:从 qθ(z∣x) 采样 z(VAE 中用重参数化 z=μ+σ⊙ε,ε∼N(0,I),便于对 θ 求导)。
- 估计:用蒙特卡洛 N1∑ilogpϕ(x∣z(i)) 估计第一项;当 q、p 为高斯时,KL 项可解析写出,无需采样。
- 梯度:对 ϕ,θ 可微,用反向传播即可训练解码器与编码器。
因此 变分方法 通过引入 q(z∣x),把“难算的边际积分”转化为“对 q 的期望”,得到可优化的 ELBO。
- 直接 MLE:最大化 logpϕ(x),梯度为 ∇ϕlogpϕ(x),仍含对 z 的积分;若用先验 p(z) 采样做蒙特卡洛,绝大多数 z 对当前 x 几乎无贡献,梯度估计方差极大,优化不稳定。
- 变分 + ELBO:用 q(z∣x) 在“对当前 x 重要的 z”附近采样,有效样本多、方差小,梯度估计可行,故 VAE 采用最大化 ELBO 而非直接 MLE。
变分方法:用可参数量 qθ(z∣x) 近似难算的后验 pϕ(z∣x),并构造 logpϕ(x) 的可算下界。
ELBO:
L(ϕ,θ)=Ez∼qθ(z∣x)[logpϕ(x∣z)]−DKL(qθ(z∣x)∥p(z))训练:最大化 ELBO,即同时近似 MLE(提高 logpϕ(x))和学好近似后验 q(z∣x)。VAE 即在此框架下,用神经网络表示 pϕ(x∣z) 与 qθ(z∣x) 并优化上述目标。