机器学习数学基础 120 章

KL 散度及其非对称性

层级:A|建议先修:07-01、07-02、05-08

KL 散度(Kullback–Leibler divergence)衡量:真实分布为 pp 时,却用 qq 近似或编码,会增加多少平均信息代价。

1. 定义

对离散分布,

DKL(pq)=xp(x)logp(x)q(x).D_{\mathrm{KL}}(p\|q) =\sum_x p(x)\log\frac{p(x)}{q(x)}.

对连续密度,

DKL(pq)=p(x)logp(x)q(x)dx.D_{\mathrm{KL}}(p\|q) =\int p(x)\log\frac{p(x)}{q(x)}\,dx.

期望形式为

DKL(pq)=EXp[logp(X)logq(X)].D_{\mathrm{KL}}(p\|q) =\mathbb E_{X\sim p}[\log p(X)-\log q(X)].

这里的样本由 pp 产生,所以 pp 写在竖线左侧并决定期望权重。

2. 与交叉熵的关系

DKL(pq)=H(p,q)H(p).D_{\mathrm{KL}}(p\|q)=H(p,q)-H(p).

它表示使用 qq 替代 pp 后的额外平均编码长度。若对固定 pp 训练模型 qθq_\theta,最小化交叉熵和最小化正向 KL 完全等价。

3. 非负性:Gibbs 不等式

KL 散度满足

DKL(pq)0,D_{\mathrm{KL}}(p\|q)\ge0,

且在适当条件下,当且仅当 p=qp=q 几乎处处成立时取 0。

一种证明使用 logtt1\log t\le t-1

DKL(pq)=xp(x)logq(x)p(x)xp(x)(q(x)p(x)1)=0.-D_{\mathrm{KL}}(p\|q) =\sum_xp(x)\log\frac{q(x)}{p(x)} \le\sum_xp(x)\left(\frac{q(x)}{p(x)}-1\right)=0.

4. 为什么它不是距离

数学上的距离通常需要满足对称性和三角不等式。KL 散度一般有

DKL(pq)DKL(qp),D_{\mathrm{KL}}(p\|q)\ne D_{\mathrm{KL}}(q\|p),

也不满足三角不等式。因此应称为“散度”,而不是严格意义上的距离。

5. 非对称性的直觉

考虑 p=(0.9,0.1)p=(0.9,0.1)q=(0.5,0.5)q=(0.5,0.5)。正向 KL 以 pp 加权,重点惩罚 qq 是否覆盖 pp 经常出现的位置;反向 KL 以 qq 加权,关注点不同。

更关键的是零概率:

  • 若某处 p(x)>0p(x)>0q(x)=0q(x)=0,则 DKL(pq)=+D_{\mathrm{KL}}(p\|q)=+\infty
  • 若某处 p(x)=0p(x)=0,它对正向 KL 的贡献按约定为 0。

因此正向 KL 强烈要求 qq 覆盖 pp 的全部支持集,常呈“覆盖模式”;反向 KL 在多峰分布近似中可能偏向选择某一个峰,常呈“寻找模式”。这只是常见现象,具体结论还取决于分布族和参数化。

6. 两个一元高斯的 KL

p=N(μ0,σ02),q=N(μ1,σ12),p=\mathcal N(\mu_0,\sigma_0^2),\qquad q=\mathcal N(\mu_1,\sigma_1^2),

DKL(pq)=logσ1σ0+σ02+(μ0μ1)22σ1212.D_{\mathrm{KL}}(p\|q) =\log\frac{\sigma_1}{\sigma_0} +\frac{\sigma_0^2+(\mu_0-\mu_1)^2}{2\sigma_1^2} -\frac12.

交换 p,qp,q 后,分母和对数项都会改变,非对称性一目了然。

7. 条件 KL 与链式分解

联合分布的 KL 可分解为

DKL(p(x,y)q(x,y))=DKL(p(x)q(x))+Ep(x)DKL(p(yx)q(yx)).D_{\mathrm{KL}}(p(x,y)\|q(x,y)) =D_{\mathrm{KL}}(p(x)\|q(x)) +\mathbb E_{p(x)}D_{\mathrm{KL}}(p(y\mid x)\|q(y\mid x)).

它说明联合分布的差异由边缘分布差异和平均条件分布差异共同构成。

8. 机器学习中的使用

  • 变分推断用易计算分布 qq 逼近后验 pp
  • VAE 的目标中包含近似后验与先验的 KL 正则项;
  • 知识蒸馏比较教师与学生的预测分布;
  • 强化学习常用 KL 约束限制新旧策略变化;
  • 分布漂移检测可比较训练期与线上分布。

9. 对称替代量

一种对称化是

DKL(pq)+DKL(qp),D_{\mathrm{KL}}(p\|q)+D_{\mathrm{KL}}(q\|p),

但它仍未必满足三角不等式。Jensen–Shannon 散度定义为

JS(p,q)=12DKL(pm)+12DKL(qm),m=p+q2.\operatorname{JS}(p,q)=\frac12D_{\mathrm{KL}}(p\|m) +\frac12D_{\mathrm{KL}}(q\|m),\quad m=\frac{p+q}{2}.

它对称且有界;其平方根在适当设置下是一个度量。

10. 易错点

  1. KL 中的顺序不能随意交换。
  2. 概率质量函数和概率密度的数值含义不同,但密度比构成的连续 KL 仍合理。
  3. 样本直方图含零频数时,直接计算可能得到无穷;平滑只能作为带假设的工程处理。
  4. KL 很小表示平均对数密度比小,不保证每个点的概率都接近。

常见问答

Q1:KL 散度为什么可以为 0,却不是距离?
“同分布时为 0”只满足距离公理的一部分;它仍缺少对称性和三角不等式。

Q2:经验数据没有显式真实分布 pp,如何训练?
用样本的经验平均近似 pp 下的期望,这就得到常见的负对数似然或交叉熵。

Q3:KL 散度能比较两个未归一化打分函数吗?
不能直接比较;KL 要求合法概率分布或密度。若归一化常数未知,必须采用能处理该结构的推断或估计方法。

Q4:为什么反向 KL 容易漏掉某些峰?
qq 在某个 pp 的峰附近几乎不给质量,该区域也很少被 qq 采到,对反向 KL 的期望贡献可能较小。

练习

  1. 计算 p=(1/2,1/2)p=(1/2,1/2)q=(3/4,1/4)q=(3/4,1/4)DKL(pq)D_{\mathrm{KL}}(p\|q)
  2. 再计算 DKL(qp)D_{\mathrm{KL}}(q\|p),验证二者不同。
  3. 说明 p(x)>0,q(x)=0p(x)>0,q(x)=0 时正向 KL 为什么发散。
  4. 两个方差相同的高斯分布之间,KL 如何随均值差变化?

答案与提示

  1. 12log(2/3)+12log2=12log(4/3)\tfrac12\log(2/3)+\tfrac12\log2=\tfrac12\log(4/3)
  2. 34log(3/2)+14log(1/2)\tfrac34\log(3/2)+\tfrac14\log(1/2),一般不等于上一题。
  3. 对应项含 p(x)log[p(x)/0]=+p(x)\log[p(x)/0]=+\infty
  4. 设共同方差为 σ2\sigma^2,KL 为 (μ0μ1)2/(2σ2)(\mu_0-\mu_1)^2/(2\sigma^2),随均值差的平方增长。