KL 散度与交叉熵:蒸馏损失的信息论基础

本文定位:L2 理论基础。理解蒸馏”软损失”为何常写成 KL 散度,需要先厘清熵、交叉熵与 KL 散度三者的关系。 前置知识:softmax 与交叉熵损失;建议先读本文姐妹篇《软标签与硬标签》。

1. 三个基本量

设 $p$ 为真实(或目标)分布,$q$ 为模型预测分布,$K$ 为类别数。

信息熵(Entropy)

$$ H(p) = -\sum_{i=1}^{K} p_i \log p_i $$

衡量分布 $p$ 自身的不确定性。

交叉熵(Cross-Entropy)

$$ \mathrm{CE}(p,q) = -\sum_{i=1}^{K} p_i \log q_i $$

衡量”用分布 $q$ 来编码来自 $p$ 的样本”所需的平均比特数。训练分类器时,常以 $p$ 为标签分布、$q$ 为预测,最小化 $\mathrm{CE}$。

KL 散度(Kullback–Leibler Divergence)

$$ D_{\mathrm{KL}}(p \parallel q) = \sum_{i=1}^{K} p_i \log \frac{p_i}{q_i} $$

衡量用 $q$ 近似 $p$ 时”额外损失的信息量”。

2. 三者的关系

把 KL 展开:

$$ D_{\mathrm{KL}}(p \parallel q) = \sum_i p_i \log p_i - \sum_i p_i \log q_i = -H(p) + \mathrm{CE}(p,q) $$

即:

$$ \mathrm{CE}(p,q) = D_{\mathrm{KL}}(p \parallel q) + H(p) $$

关键推论:当目标分布 $p$ 固定不变时(例如蒸馏中教师的软标签是固定的),$H(p)$ 是常数。此时:

$$ \arg\min_q \mathrm{CE}(p,q) ;=; \arg\min_q D_{\mathrm{KL}}(p \parallel q) $$

也就是说,在”目标分布固定”的前提下,最小化交叉熵与最小化 KL 散度是等价的,二者只差一个常数项。这正是蒸馏中”软损失可以写成 KL 也可以写成 CE”的根本原因。

3. KL 散度的不对称性

KL 散度不满足对称性

$$ D_{\mathrm{KL}}(p \parallel q) \neq D_{\mathrm{KL}}(q \parallel p) $$

这两种方向含义不同:

  • 前向 KL $D_{\mathrm{KL}}(p \parallel q)$:在 $p$ 有质量的地方,$q$ 也必须要有质量(“mode-covering”,倾向平滑、覆盖所有峰值)。
  • 反向 KL $D_{\mathrm{KL}}(q \parallel p)$:倾向”mode-seeking”,会把 $q$ 集中到 $p$ 的某个峰值上,更适合单模态近似。

注:前向/反向 KL 的差别在 LLM 蒸馏中尤为重要——例如 MiniLLM(Gu et al., 2024, arXiv:2306.08543)专门采用反向 KL 来缓解 mode-covering 问题。本文只建立基础,不展开 LLM 蒸馏细节(不在本 6 篇范围)。

4. 为何蒸馏用 KL 匹配软标签

回到 Hinton et al. (2015, arXiv:1503.02531):

  • 教师产生的软标签是一个概率分布 $p$(在温度 $T$ 下软化)。
  • 学生的目标是让自己的软化输出 $q$ 尽量接近 $p$。
  • 既然目标是”让两个分布一致”,KL 散度(或等价的、在 $p$ 固定下的 CE)是衡量分布差异的自然选择,比均方误差(MSE)更贴合”概率分布”的语义。

因此,蒸馏的”软损失”可写作:

$$ \mathcal{L}{\text{soft}} = T^2 \cdot D{\mathrm{KL}}!\left(\text{softmax}(z_T/T) ;\parallel; \text{softmax}(z_S/T)\right) $$

其中 $z_T, z_S$ 分别为教师与学生的 logits,$T^2$ 用于校正梯度量级(来源与推导见本文姐妹篇《蒸馏损失函数与权重设计》)。

5. 一个常见误区

  • 误区:“KL 和 CE 不一样,必须选 KL。“——在目标分布固定时二者等价,实现上用 CE 还是 KL 只差一个常数,不影响优化方向。
  • 真正需要区分 KL 方向(前向/反向)的场景,是当 $p$ 与 $q$ 都随训练变化、或显式要控制 mode-covering / mode-seeking 行为时(如 LLM 蒸馏)。

6. KL 散度的关键性质(补充)

  • 非负性:由 Gibbs 不等式保证 $D_{\mathrm{KL}}(p\parallel q)\ge 0$,且当且仅当 $p=q$ 时取等号。这意味着 KL 可作为”两个分布差异有多大”的下界度量。
  • 对零概率敏感:若某处 $p_i>0$ 但 $q_i=0$,则 $D_{\mathrm{KL}}\to\infty$。这正解释了蒸馏中为何要用温度软化——硬 softmax 产生的近似 0 会让 KL 梯度爆炸,而 $T>1$ 的软化避免了绝对零概率,使训练数值上更可靠。
  • 不是度量:KL 不对称,也不满足三角不等式 $D(p,r)\le D(p,q)+D(q,r)$,因此不能像欧氏距离那样直接做”距离空间”的几何推理。这两条性质共同决定了:把 KL 用作蒸馏损失时,必须先软化教师输出。

7. 为什么不只用 MSE 回归 logits

一个自然的问题是:既然目标是让学生接近教师,为何不直接用均方误差(MSE)回归教师的 logits?原因在于:

  • MSE 衡量逐点数值差,对”分布形状”不敏感;而蒸馏关心的是概率分布的相对结构(即暗知识)。
  • logits 的绝对数值受教师的偏置、尺度影响很大,MSE 会过度惩罚”整体平移/缩放”这类并不影响最终概率的差异。
  • KL/CE 直接对齐”概率分布”,对 logits 的单调变换更鲁棒。

(补充说明:Ba & Caruana 2014 确实采用直接回归 logits 的写法,是响应基蒸馏的早期特例;但 Hinton 2015 的”软化 + KL”在分布层面更稳健,已成为主流。这也是为什么即便在 LLM 蒸馏里改用反向 KL,依然保留概率分布对齐的本质,而非退回到 logits 回归。)

为帮助建立直觉,设想 $p$ 是双峰分布(两个分离的高峰),而 $q$ 是单峰。前向 KL $D(p\parallel q)$ 会强迫 $q$ 同时覆盖两个峰(避免在任何 $p>0$ 处 $q\approx0$),结果 $q$ 往往变成横跨两峰的宽阔单峰;反向 KL $D(q\parallel p)$ 则让 $q$ 只盯住其中一个峰(mode-seeking),另一峰被忽略。蒸馏的软损失取前向 KL,即要求学生”在所有教师有质量处都有质量”,因此是 mode-covering 的——这恰好契合”学生要继承教师全部能力”的目标。LLM 蒸馏里改用反向 KL,则是为了让学生输出更集中、减少过度覆盖式的胡编。这是前向/反向 KL 选择背后最关键的一句直觉,也提醒我们:温度、散度方向都是训练期工具,服务于”对齐分布”这一本质。

把视角拉回信息论:蒸馏的软损失本质上是用 KL 把学生分布往教师分布”拉”。它和互信息、熵正则等概念同属信息论工具箱,但蒸馏只用到其中最简单的一块——分布匹配。理解这一点,就不会把蒸馏想得过于神秘:它只是用更丰富的监督信号(软标签)替代稀疏的硬标签,而 KL/CE 只是执行这种替代的数值手段。换句话说,本文铺垫的熵、交叉熵、KL 三件套,已经构成了理解几乎所有蒸馏损失的全部信息论基础。

8. 小结

  • $\mathrm{CE}(p,q) = D_{\mathrm{KL}}(p\parallel q) + H(p)$。
  • 目标分布固定时,最小化 CE 等价于最小化 KL。
  • KL 不对称:前向(mode-covering)与反向(mode-seeking)语义不同。
  • 蒸馏软损失用 KL/CE 匹配教师的软分布,是因为目标是”对齐概率分布”而非回归数值。

延伸阅读 / 参考文献

  • Hinton G., Vinyals O., Dean J. (2015). Distilling the Knowledge in a Neural Network. arXiv:1503.02531.(软化 softmax + 以 KL/CE 匹配软目标)
  • Gu Y. et al. (2024). MiniLLM: Knowledge Distillation of Large Language Models. arXiv:2306.08543(反向 KL 在 LLM 蒸馏中的应用,作为延伸背景)
本文累计阅读