知识蒸馏采用 Teacher-Student 双模型架构。教师模型是一个已训练完成的大型高性能模型,参数冻结不更新,作为知识的输出者;学生模型是参数量较小、结构更简单的模型,通过模仿教师模型的输出来学习。训练时,同一批输入数据同时送入两个模型,学生模型以教师模型的输出为学习目标进行反向传播,仅更新自身参数。
传统监督学习仅使用硬标签(Hard Label),即 one-hot 编码的唯一正确答案,如 [猫:1, 狗:0, 鸟:0],信息量十分有限。知识蒸馏引入教师模型输出的完整概率分布作为软标签,如 [猫:0.85, 狗:0.14, 鸟:0.01]。这种概率分布包含了丰富的类间关系信息——它告诉学生模型"这只猫有点像狗但绝不像鸟"。Hinton 将这类隐藏在错误类别概率中的信息称为"暗知识"(Dark Knowledge),正是蒸馏的灵魂所在。
温度参数(Temperature,记作 T)是知识蒸馏的关键超参数。在 logits 经过 Softmax 函数之前除以温度 T,当 T > 1 时,概率分布被软化,原本微小的类别间差异被放大,学生模型更容易观察到教师的判断逻辑。实验表明,T 取值在 2 到 5 之间时知识迁移效果通常最佳。训练完成后,推理阶段将 T 设回 1,按常规 Softmax 输出即可。
知识蒸馏的损失函数由两部分加权组成:蒸馏损失衡量学生模型输出与教师软标签之间的差异,通常使用 KL 散度(Kullback-Leibler Divergence);学生损失是传统的交叉熵损失,确保学生模型预测结果与真实硬标签一致。总损失公式为:
L_total = α × L_distill + (1 - α) × L_student
其中 α 是平衡权重,控制学生从教师和真实标签中学习的比例。