温度参数 Temperature 的数学原理与作用

前置知识:本文是系列第 6 篇(L2 理论基础)。建议先读《知识蒸馏是什么》《发展简史》。本文将用公式讲清温度 $T$ 这个最容易被”调参玄学化”的概念。

一、从普通 softmax 说起

标准 softmax 把模型最后一层输出的 logits $z_i$ 变成概率:

$$p_i = \frac{\exp(z_i)}{\sum_j \exp(z_j)}$$

注意 $\exp$ 是指数函数——它会放大差距。若 $z_2 = 3$,$z_3 = 1$,则 $\exp(3)/\exp(1) = e^2 \approx 7.4$,即类别 2 比类别 3 在概率上被拉到约 7 倍。正确类往往接近 1,错误类被压到极小(如 $10^{-4}$)。这批”极小但非零”的错误类概率,正是暗知识的载体,却因为太小而在梯度里几乎不起作用

二、引入温度 T

Hinton 等人(2015, arXiv:1503.02531)在 softmax 里引入温度 $T>0$,把 logits 先除以 $T$ 再归一化:

$$q_i = \frac{\exp(z_i / T)}{\sum_j \exp(z_j / T)}$$

这里的 $T$ 类似统计力学里的”温度”:温度越高,分布越”混乱/均匀”;温度越低,越”尖锐/自信”。

三、两个极限情形

(1)$T = 1$:退化为普通 softmax。

$$q_i = \frac{\exp(z_i/1)}{\sum_j \exp(z_j/1)} = p_i$$

即原始分布,没有软化。

(2)$T \to \infty$:分布趋近均匀。

当 $T$ 很大时,对所有 $i$ 都有 $z_i/T \to 0$,于是 $\exp(z_i/T) \to 1$,从而

$$q_i \to \frac{1}{K}$$

$K$ 为类别数——所有类概率趋于相等。此时暗知识被”烫”得过于平坦,反而失去区分度。所以 $T$ 不是越大越好。

四、T 如何”暴露”暗知识

关键在中间区段。把 $T$ 调大(如 2~4 或更高,依任务而定),原本被指数压成 $10^{-3}$ 与 $10^{-4}$ 的两个错误类,经 $/T$ 后差距被压缩,相对比例被”放大可见”:

举例,logits $z = [3.0, 1.0, 0.0]$(三类):

  • $T=1$:$q \approx [0.837, 0.114, 0.042]$(差距被指数拉大);
  • $T=3$:$q \approx [0.576, 0.289, 0.135]$(错误类 3 从 0.042 升到 0.135,相对结构更可见)。

学生用 $T=3$ 的软标签训练时,能更清楚地学到”类 3 比类 2 更像类 1 一点”这类细微关系——这就是暗知识被温度”显影”的过程。

直觉:低温”只信正确类”,高温”连错误类之间的细微差别都告诉你”。蒸馏要的就是后者。

五、温度下的蒸馏损失

Hinton 的蒸馏损失由两部分组成(加权和):

$$\mathcal{L} = \alpha , T^2 \cdot \mathrm{KL}(q^{\text{teacher}}_T ,|, q^{\text{student}}T) ;+; (1-\alpha), \mathrm{CE}(p^{\text{student}}, y{\text{hard}})$$

其中:

  • 第一项:软损失,在温度 $T$ 下让学生的软化分布对齐教师的软化分布,常用 KL 散度(或等价的交叉熵)。乘 $T^2$ 是为了在反向传播时抵消因 $/T$ 带来的梯度缩放,使软损失量级与硬损失可比。
  • 第二项:硬损失,学生普通 softmax 对真实 one-hot 标签的交叉熵,保证不偏离真实标注。
  • $\alpha$ 控制软/硬损失权重。

需要注意:推理部署时,学生用 $T=1$ 的普通 softmax 输出——温度只在训练时用于”软化教师信号”。

六、温度怎么选(实践提示)

事实库给出的是原理框架,未规定具体最优 $T$。工程上常见做法(属通用经验,非事实库数字):

  • 从 $T \in {2, 3, 4, 6}$ 做小网格搜索;
  • 配合 $\alpha$ 调软/硬损失比重;
  • 任务类别越多、越需要细腻类间结构,往往倾向更大 $T$。

凡 fact 库未给出的”某任务 T=4 最佳""某数据集涨点 X%“等结论,本文不编造,请以你自己的实验/原论文为准。

七、为什么软损失要乘 $T^2$(梯度视角)

很多读者会疑惑:公式里为什么要乘 $T^2$?这来自对梯度的尺度分析。

记软化分布 $q_i = \frac{\exp(z_i/T)}{\sum_j \exp(z_j/T)}$。当同一样本对教师和学生的 logits 相差不大时,对 $z_i$ 求 KL 散度的梯度近似为:

$$\frac{\partial \mathcal{L}_{\text{soft}}}{\partial z_i} \approx \frac{1}{T^2}\left(q_i - p_i\right)$$

其中 $p_i$ 是教师软化分布。也就是说,未缩放的软损失梯度天然带着 $1/T^2$ 的因子——温度越高,梯度越小,软损失在数值上被”稀释”了。为了让软损失的梯度量级与硬损失(CE 对原始 logits 的梯度,相当于 $T=1$ 情形)可比,反向传播时把损失乘以 $T^2$,恰好把 $1/T^2$ 抵消掉,使得高温下的软监督信号仍能有效驱动学生更新。

一句话记忆:除以 $T$ 软化分布,乘 $T^2$ 还原梯度量级

八、温度与”熵”的直觉

从信息论看,温度提升等价于提高输出分布的熵(entropy)

  • 低温 → 分布尖锐、熵低、确定性强,但暗知识被压缩;
  • 高温 → 分布平缓、熵高、确定性的”尖峰”被抹平,类间相对结构浮出水面。

这也揭示了蒸馏与标签平滑(label smoothing)的精神联系:两者都让 one-hot 目标变得”软”一些,降低模型对硬标签的过自信。区别在于,蒸馏的软目标是由教师数据驱动的——它不是均匀地把概率分给所有类,而是按教师学到的”类间相似度”有结构地分配,因此携带了比人工平滑更有用的暗知识。

九、小结

  • 普通 softmax 是 $T=1$;温度 $T$ 是 logits 的缩放因子。
  • $T\to\infty$ 趋近均匀分布,$T=1$ 即原始分布。
  • 适度升温把”暗知识”(错误类间的细微结构)放大显影,让学生学得更好。
  • 蒸馏损失 = 温度下软损失(含 $T^2$ 缩放)+ 硬损失;推理时回到 $T=1$。
  • $T^2$ 用于抵消温度带来的梯度缩放;$T$ 提升等价于提高输出分布的熵。

延伸阅读 / 参考文献

  • Hinton, G., Vinyals, O., Dean, J. (2015). Distilling the Knowledge in a Neural Network. arXiv:1503.02531(NIPS 2014 Deep Learning Workshop).
本文累计阅读