KL Divergence
KL Divergence
度量两个概率分布差异的非对称统计量,在 VAE、扩散模型、信息论中广泛应用
Overview
KL 散度(Kullback-Leibler divergence)是机器学习中最重要的分布距离度量之一。辉少的博客详细推导了两个正态分布之间的 KL 散度闭式解,这在 VAE 的 ELBO、扩散模型的变分下界中反复出现。
Key Facts / Claims
定义
\(\text{KL}(P \parallel Q) = \int p(x) \log \frac{p(x)}{q(x)} dx\)
正态分布的 KL 散度(闭式解)
对于 $P \sim \mathcal{N}(\mu_P, \sigma_P^2)$ 和 $Q \sim \mathcal{N}(\mu_Q, \sigma_Q^2)$: \(\text{KL}(P \parallel Q) = \log \frac{\sigma_Q}{\sigma_P} + \frac{\sigma_P^2 + (\mu_P - \mu_Q)^2}{2\sigma_Q^2} - \frac{1}{2}\)
推导要点
- 展开 $\log \frac{p(x)}{q(x)}$ 的对数项
- 利用正态分布的期望和方差:$E[x] = \mu_P$,$E[x^2] = \sigma_P^2 + \mu_P^2$
- 积分后得到闭式表达式
应用场景
-
VAE:ELBO 中的 $D_{KL}(q(z x) p(z))$ 项 - 扩散模型:ELBO 分解中的 KL 项
- 变分推断:衡量近似后验与真实后验的差距
- 信息论:相对熵,描述编码效率损失
Related
- [[diffusion-model]] — ELBO 推导中大量使用 KL 散度
- [[vae]] — 潜变量模型的核心损失组件
- [[machine-learning-basics]] — 基础概率统计
- [[llm-rl-algorithms]] — PPO/DPO/GRPO 中的 KL 约束
- [[sft-vs-rlhf]] — RLHF 中的 KL 惩罚
Counter-arguments & Data Gaps
-
KL 散度非对称:$KL(P Q) \neq KL(Q P)$,某些场景需要 JS 散度或 Wasserstein 距离 - 两个分布无重叠时 KL 散度为无穷大,训练不稳定
- 多维正态分布的 KL 散度推导(博客仅覆盖了一维)
Sources
- Kullback-Leibler divergence — 2024-09-18