熵与信息论 §4 给了 KL 散度的定义跟几条性质,但容易在 plog(p/q)\sum p \log(p/q) 这一坨形式上卡住——为什么这个量自然出现、为什么不对称、为什么 ML 里到处用到它。本文从四个互补视角拆 KL,每个视角解释它的一个性质。看完之后再回去看 entropy post §7 的几个应用,每一个都能直接挂到其中一个视角的语言下。

读者预设:看过 entropy post §1-§3(信息量 logp-\log p、熵 plogp-\sum p \log p、条件熵、互信息)。


一、视角 1:Coding length

最直接的物理意义视角,Colah 的 Visual Information Theory 一篇博客把这个视角讲到最清楚。下面是中文化的同一论证。

1.1 复习:optimal code length = logp-\log p bits

考虑要把符号序列 X1,X2,X_1, X_2, \dots 压成二进制串发送。已知 XX 服从分布 PP。要让平均码长最短,Shannon 给的答案是给每个符号 xx 分配 log2p(x)-\log_2 p(x) 比特的码字(连续意义上的最优;实际无前缀码可以做到 logp\lceil -\log p \rceil)。

直觉:概率越大的符号越常出现,码字应该越短,省 bit。

1.2 当你用错码本

假设真实分布是 PP,但你不知道 PP手上的码本是按 QQ 设计的——也就是说每个符号 xx 你给它 logq(x)-\log q(x) 比特。

发送来自 PP 的数据时,平均码长是

H(P,Q)=ExP[logq(x)]=xp(x)logq(x) H(P, Q) = \mathbb{E}_{x \sim P}[-\log q(x)] = -\sum_x p(x) \log q(x)

这正是交叉熵

如果你的码本是按真实 PP 设计的,平均码长是 H(P)H(P)(这是 Shannon 极限)。所以用错码本多付的代价

H(P,Q)H(P)=xp(x)logp(x)q(x)=DKL(PQ) H(P, Q) - H(P) = \sum_x p(x) \log \frac{p(x)}{q(x)} = D_{\mathrm{KL}}(P \| Q)

KL 散度就是这个 overhead——用 QQ 的码本去编码服从 PP 的数据,平均每个符号多付的比特数。

1.3 一个数字例子

设 4 个字母 A, B, C, D,真实频率 P=(0.5,0.25,0.125,0.125)P = (0.5, 0.25, 0.125, 0.125)。Optimal code length 分别是 1, 2, 3, 3 bits。期望码长 H(P)=0.5(1)+0.25(2)+0.125(3)+0.125(3)=1.75H(P) = 0.5(1) + 0.25(2) + 0.125(3) + 0.125(3) = 1.75 bits/symbol。

如果你按均匀分布 Q=(0.25,0.25,0.25,0.25)Q = (0.25, 0.25, 0.25, 0.25) 设计码本(每个字母都 2 bits),发送 PP 的数据时期望码长是 H(P,Q)=2H(P, Q) = 2 bits/symbol。

符号pplog2p-\log_2 p (optimal)log2q-\log_2 q (used)p(logq)p \cdot (-\log q)
A0.5121.0
B0.25220.5
C0.125320.25
D0.125320.25
合计H(P)H(P) = 1.75H(P,Q)H(P,Q) = 2.0

Overhead DKL(PQ)=2.01.75=0.25D_{\mathrm{KL}}(P \| Q) = 2.0 - 1.75 = 0.25 bits/symbol。

1.4 这个视角立刻给出几条 KL 性质

  • DKL(PQ)0D_{\mathrm{KL}}(P \| Q) \geq 0——你不可能比 PP 自己最优的码本省 bit。
  • DKL(PQ)=0P=QD_{\mathrm{KL}}(P \| Q) = 0 \Leftrightarrow P = Q——零 overhead 当且仅当码本就是最优的。
  • 不对称——用 QQPP vs 用 PPQQ 是两件事:码本设计者不同、数据来源不同。数值不同正常。

这是 entropy post §4 那行"DKL=0D_{\mathrm{KL}}=0 当且仅当 P=QP=Q 显得几乎是定义性的"的具体形态。


二、视角 2:似然比的期望

把 KL 改写一下:

DKL(PQ)=ExP[logp(x)q(x)]=EP[LLR(P:Q)] D_{\mathrm{KL}}(P \| Q) = \mathbb{E}_{x \sim P}\left[\log \frac{p(x)}{q(x)}\right] = \mathbb{E}_P[\mathrm{LLR}(P : Q)]

里面那个 log(p/q)\log(p/q) 是经典的 log-likelihood ratio(LLR),在假设检验里是检验统计量。

2.1 跟 hypothesis testing 的连接

假设你在做一个判断:数据是来自 PP 还是来自 QQ?Neyman-Pearson 引理告诉你最优检验是基于 LLR 阈值。

具体到 sample complexity:要在固定 type-I error 下区分 PPQQ,需要的样本数大致是 n1/DKL(PQ)n \sim 1 / D_{\mathrm{KL}}(P \| Q)。也就是说 KL 越大,区分这两个分布越容易;KL 越小,需要越多样本。

这给 KL 一个统计意义:“在 PP 的视角下,PPQQ 看起来有多不像”

Stein 引理把这件事写得更精确:在固定 type-I error 的设定下,type-II error 随样本数 nn 衰减率正好是 exp(nDKL(PQ))\exp(-n \cdot D_{\mathrm{KL}}(P \| Q))。KL 直接出现在 exponent 上。

2.2 跟 MLE 的连接

设数据经验分布是 p^data\hat p_{\text{data}},模型族是 {pθ}\{p_\theta\}

θ^MLE=argmaxθExp^data[logpθ(x)]=argminθDKL(p^datapθ) \hat\theta_{\mathrm{MLE}} = \arg\max_\theta \mathbb{E}_{x \sim \hat p_{\text{data}}}[\log p_\theta(x)] = \arg\min_\theta D_{\mathrm{KL}}(\hat p_{\text{data}} \| p_\theta)

中间一步用了 H(p^data)H(\hat p_{\text{data}})θ\theta 无关——它是常数,跟优化 θ\theta 没关系。

MLE 本质上是在 KL 距离意义下找跟数据经验分布最接近的模型。这条等价在 entropy post §4 推过,但放在似然比视角下意义更清楚——MLE 在做的是"最大化样本下的平均 LLR(数据 vs 模型)",等价于"最小化样本经验分布到模型分布的 KL"。

2.3 不对称在这个视角下的含义

DKL(PQ)D_{\mathrm{KL}}(P \| Q) 是"站在 PP 视角的 LLR 期望",DKL(QP)D_{\mathrm{KL}}(Q \| P) 是"站在 QQ 视角的 LLR 期望"。两个完全不同的统计量。

实际后果:

  • 要用数据估计模型时(MLE),数据来自 PP,你应该最小化 DKL(PQθ)D_{\mathrm{KL}}(P \| Q_\theta) —— forward KL。
  • 要用模型采样来逼近 posterior 时(变分推断 VI),样本来自 QQ,你应该最小化 DKL(QPposterior)D_{\mathrm{KL}}(Q \| P_{\text{posterior}}) —— reverse KL。

这两种用法对应 ML 里两个不同的范式(generative density estimation vs variational inference),各自有各自的 KL 方向。


三、视角 3:信息几何与 Bregman divergence

这是解释"为什么不对称"的代数根源。

3.1 概率单纯形不是欧式空间

nn 个离散事件的概率分布构成 (n1)(n-1) 维单纯形 Δn1\Delta^{n-1}nn 个非负数和为 1 的约束)。这是个有边界的流形,不是欧式空间——靠近边界(某个 pi0p_i \to 0)跟靠近内部(均匀分布附近)的"几何"完全不同。

欧式空间上距离对称(xy=yx\|x - y\| = \|y - x\|)。单纯形上的"自然距离"不对称,因为单纯形的几何结构由概率本身决定,而概率有内禀的非对称性(在 p0p \to 0logp\log p \to -\infty 是单边奇异)。

3.2 KL 是一个 Bregman divergence

给定一个严格凸函数 FFBregman divergence 定义为:

DF(p,q)=F(p)F(q)F(q), pq D_F(p, q) = F(p) - F(q) - \langle \nabla F(q),\ p - q \rangle

直观理解:在 qq 点取 FF 的一阶 Taylor 展开作为线性近似,DF(p,q)D_F(p, q) 是真值 F(p)F(p) 跟这个线性近似在 pp 处的差。FF 越凸,这个 gap 越大。FF 是平面(F\nabla F 常数)时,gap 恒为零。

代入 F(p)=ipilogpiF(p) = \sum_i p_i \log p_i(注意符号约定:这个 FF 在概率单纯形上是严格凸的;它是负熵 H-H),F(q)i=logqi+1\nabla F(q)_i = \log q_i + 1,可以算出来:

DF(p,q)=ipilogpiqi=DKL(pq) D_F(p, q) = \sum_i p_i \log \frac{p_i}{q_i} = D_{\mathrm{KL}}(p \| q)

KL 就是负熵这个凸函数对应的 Bregman divergence

3.3 Bregman 几何上的不对称

Bregman divergence 一般是不对称的——除非 FF 是 squared 2-norm(这时 DFD_F 就是欧氏距离平方,对称)。原因从定义就看得出:DF(p,q)D_F(p, q) 是在 qq取的 Taylor 展开,而 DF(q,p)D_F(q, p) 是在 pp取的 Taylor 展开。两个不同的局部线性近似自然给不同数值。

几何 picture:想象概率单纯形上有两个点 PPQQ。从 PP “看向” QQ 用的是 PP 处的切空间;从 QQ “看向” PP 用的是 QQ 处的切空间。这两个切空间的几何性质不一样(因为单纯形不是均匀的——靠边界的地方曲率不一样),所以"距离感"不一样。

这是 KL 不对称的代数根源——跟视角 1 的"码本不同"是同一件事的不同描述。

3.4 一个连带产物:natural gradient

普通梯度下降假设参数空间是欧式空间——每一步沿 L-\nabla L 走固定欧氏长度。但如果你的参数 θ\theta 是某个分布族 pθp_\theta 的参数,模型的"距离"该按 KL 度量,不按欧氏度量

举个具体例子:θ1=(0.5,0.5)\theta_1 = (0.5, 0.5) vs θ2=(0.51,0.49)\theta_2 = (0.51, 0.49)θ3=(0.01,0.99)\theta_3 = (0.01, 0.99) vs θ4=(0.02,0.98)\theta_4 = (0.02, 0.98),在欧式空间里这两对参数差都是 0.0002\sqrt{0.0002}。但 KL 上两者差好几个数量级——靠近 (0,1)(0, 1) 边界处微小欧氏移动对应大的概率变化,靠近 (0.5,0.5)(0.5, 0.5) 中心处不会。

Natural gradient 就是把这件事修正掉:在 KL 度量下做 steepest descent,等价于把欧氏梯度乘上 Fisher information matrix 的逆。

θt+1=θtηF(θt)1L(θt) \theta_{t+1} = \theta_t - \eta\, F(\theta_t)^{-1} \nabla L(\theta_t)

其中 F(θ)=Expθ[logpθ(x)logpθ(x)]F(\theta) = \mathbb{E}_{x \sim p_\theta}[\nabla \log p_\theta(x) \nabla \log p_\theta(x)^\top] 是 Fisher information。在分布族空间里 natural gradient 沿着真实"信息几何上的最速方向"走,比欧氏梯度下降在 ill-conditioned 情况下稳得多。

这是 KL 视角间最有用的工程产物——之后看 TRPO / PPO / K-FAC 这些 RL / 优化器都用这个工具。


四、视角 4:Mode-seeking vs mass-covering

把上面三个视角合起来后,ML 里实际能观察到的行为差异。这一节在 entropy post §4 里点过,这里展开成可视化。

4.1 Setup

让真实分布 PP 是双峰高斯:

P=0.5N(2,0.52)+0.5N(2,0.52) P = 0.5 \cdot \mathcal{N}(-2, 0.5^2) + 0.5 \cdot \mathcal{N}(2, 0.5^2)

要用一个单峰高斯 Q=N(μ,σ2)Q = \mathcal{N}(\mu, \sigma^2) 来拟合它。这显然拟合不准——但拟合怎么不准取决于你用 forward KL 还是 reverse KL。

4.2 Forward KL: argminQDKL(PQ)\arg\min_Q D_{\mathrm{KL}}(P \| Q) → mass-covering

写开看:

argminQExP[logp(x)q(x)]=argmaxQExP[logq(x)] \arg\min_Q \mathbb{E}_{x \sim P}\left[\log \frac{p(x)}{q(x)}\right] = \arg\max_Q \mathbb{E}_{x \sim P}[\log q(x)]

也就是 MLE:拟合 QQ 让它在所有 PP 有 mass 的地方都不能太小,否则 logq(x)\log q(x) 在那些点变成大负数,loss 上升。

对高斯 QQ,解析解:μ=EP[X]=0\mu^* = \mathbb{E}_P[X] = 0σ2=VarP(X)=4.25\sigma^{2*} = \mathrm{Var}_P(X) = 4.25

结果:Q=N(0,4.25)Q^* = \mathcal{N}(0, 4.25)中心在两个 mode 中间,方差大到把两个 mode 都包进来。在 x=0x = 0 附近 QQ 有显著质量但 PP 几乎为零——这正是 mass-covering 的代价。

4.3 Reverse KL: argminQDKL(QP)\arg\min_Q D_{\mathrm{KL}}(Q \| P) → mode-seeking

argminQExQ[logq(x)p(x)] \arg\min_Q \mathbb{E}_{x \sim Q}\left[\log \frac{q(x)}{p(x)}\right]

期望在 QQ 下取——QQ 只关心自己 mass 在哪。如果 QQp(x)0p(x) \approx 0 的地方放质量,log(q/p)\log(q/p) 会爆。QQ 被强迫只在 PP 有 mass 的地方放概率,自然会塌缩到 PP 的某一个 mode 上

对我们的 setup,reverse KL 没有 closed form,但数值优化会收敛到 Q=N(2,0.52)Q^* = \mathcal{N}(2, 0.5^2)N(2,0.52)\mathcal{N}(-2, 0.5^2) 中的一个(具体哪个取决于初始化)——单 mode 完美 fit

4.4 复现这张图

用 matplotlib 跑一下就有可视化:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

x = np.linspace(-5, 5, 1000)
P = 0.5 * norm.pdf(x, -2, 0.5) + 0.5 * norm.pdf(x, 2, 0.5)

# Forward KL min (mass-covering): closed form
mu_fwd, var_fwd = 0.0, 4.25
Q_forward = norm.pdf(x, mu_fwd, np.sqrt(var_fwd))

# Reverse KL min (mode-seeking): 数值结果 (其中一个 mode)
Q_reverse = norm.pdf(x, 2.0, 0.5)

plt.figure(figsize=(8, 4))
plt.plot(x, P, 'k-', linewidth=2, label='P (真实双峰)')
plt.plot(x, Q_forward, 'b--', linewidth=2, label=r'$Q^* = \arg\min\ KL(P\|Q)$ (mass-covering)')
plt.plot(x, Q_reverse, 'r:', linewidth=2, label=r'$Q^* = \arg\min\ KL(Q\|P)$ (mode-seeking)')
plt.legend()
plt.title('Forward KL vs Reverse KL')
plt.xlabel('x'); plt.ylabel('density')
plt.tight_layout(); plt.show()

肉眼能看到:蓝色(forward)扁平地横跨两个峰,红色(reverse)跟其中一个峰几乎重合。这是 mode-seeking vs mass-covering 最直接的视觉对照。

4.5 ML 里两种 KL 方向分别在哪里

任务用哪个 KL行为后果
MLE / 分类 cross-entropyforward DKL(pdatapθ)D_{\mathrm{KL}}(p_{\text{data}} \| p_\theta)mass-covering,模型试图覆盖全数据分布
Variational Inference (VAE ELBO)reverse DKL(qϕptrue posterior)D_{\mathrm{KL}}(q_\phi \| p_{\text{true posterior}})mode-seeking,posterior collapse 的根源
GAN (某些近似下)reversemode collapse
Diffusion 训练目标等价于一个加权 score matching绕开端到端 KL,所以更稳
RLHF / DPO 的 KL penaltyreverse DKL(πθπref)D_{\mathrm{KL}}(\pi_\theta \| \pi_{\text{ref}})防止策略远离 reference
SAC entropy bonusDKL(πuniform)D_{\mathrm{KL}}(\pi \| \mathrm{uniform}) 的等价形式鼓励探索

VAE 的 mode collapse 跟 forward KL 不会塌缩这个事实直接相关——如果 VAE 改成 forward KL(“reverse ELBO” / IWAE 这类),mode collapse 会缓解但训练会变难,因为 forward KL 在 qq 等于零的地方不爆,但需要从 ptruep_{\text{true}} 采样(VAE 做不到,因为 ptruep_{\text{true}} 就是我们不知道的东西)。

这是 mode-seeking vs mass-covering 在 ML 里最深的 trade-off:你想要的 KL 方向,跟你能算的 KL 方向,常常不一致


五、把四个视角放回原 post 的应用

entropy post §7 列了 5 个深度学习里的 KL 应用。把每个挂到上面四个视角,归位一下:

应用主要视角解释
§7.1 Cross-entropy lossCoding length + 似然比pθp_\theta 的"码本"编码经验数据 p^data\hat p_{\text{data}},多付的 bit 就是 DKL(p^datapθ)D_{\mathrm{KL}}(\hat p_{\text{data}} \| p_\theta)。等价于 MLE。Forward KL。
§7.2 VAE ELBO 的 KL 项Mode-seekingDKL(qϕ(zx)p(z))D_{\mathrm{KL}}(q_\phi(z\|x) \| p(z)) 是 reverse KL,所以 qϕq_\phi 容易塌到 prior 的某一个 mode 上,产生 posterior collapse。
§7.3 Information Bottleneck似然比 + 信息几何I(T;Y)βI(T;X)I(T;Y) - \beta I(T;X) 是两个互信息(每个本身就是 KL),平衡点对应单纯形上某个几何位置。
§7.4 SAC entropy bonusMode-seeking 反方向加 entropy reward 等价于鼓励 π\pi 远离 deterministic policy(远离 single-mode),跟 reverse KL 行为相反,故意提升 multi-modality。
§7.5 RLHF KL penaltyMode-seeking (信任域)DKL(πθπref)D_{\mathrm{KL}}(\pi_\theta \| \pi_{\text{ref}}) 是 reverse KL,强迫 πθ\pi_\thetaπref\pi_{\text{ref}} 有 mass 的地方才有 mass——这是信任域约束。

读到这一层之后再回看 §7 那几个公式,每个就不只是"加了 KL 项",而是"加了某个方向、有某种行为后果的 KL 项"。


参考

可视化与直觉

形式化教材

  • Cover & Thomas. Elements of Information Theory. 第 2-3 章。
  • Amari. Information Geometry and Its Applications. 第 1-3 章——视角 3 (Bregman 与信息几何) 的标准参考。

应用侧 paper

  • Carl Doersch. Tutorial on Variational Autoencoders. arXiv:1606.05908 — ELBO 跟 KL 项的逐步推导。
  • Tishby & Zaslavsky. Deep Learning and the Information Bottleneck Principle. arXiv:1503.02406
  • Saxe et al. On the Information Bottleneck Theory of Deep Learning. ICLR 2018 — 对 IB 强论断的实验反驳。
  • Haarnoja et al. Soft Actor-Critic. arXiv:1801.01290 — max-entropy RL 的具体形态。
  • Eysenbach & Levine. If MaxEnt RL is the Answer, What is the Question? arXiv:1910.01913 — max-entropy RL 的批判性 framing。

Stein 引理 / hypothesis testing 的 KL 角色

  • Cover & Thomas Chapter 11 (Information Theory and Statistics) — Stein 引理跟 KL 的连接。

Natural gradient

  • Amari, Natural Gradient Works Efficiently in Learning. 1998 — natural gradient 的奠基论文。
  • Martens. New insights and perspectives on the natural gradient method. JMLR 2020。