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 蒸馏中的应用,作为延伸背景)