自蒸馏

分类: 知识蒸馏

type:: concept aliases:: 自蒸馏, self-distillation, Born-Again Networks

  • 自蒸馏

  • 定义

  • 自蒸馏 (Self-Distillation) 指模型以自身(或自身的不同部分/阶段)作为教师,对自身进行 知识蒸馏。不需要外部的更大教师模型。

  • 数学形式

  • 典型损失:L=Ltask+αKL(pteacherpstudent)\mathcal{L} = \mathcal{L}_{\text{task}} + \alpha \cdot \text{KL}(p_{\text{teacher}} \| p_{\text{student}})

  • 其中 pteacherp_{\text{teacher}} 来自同一模型的不同阶段(如上一轮训练的 checkpoint)或不同层的输出

  • 核心要点

  • Born-Again Networks:用上一轮训练完成的模型作为教师,训练一个结构完全相同的新模型,性能反而提升

  • 层间自蒸馏:深层的特征蒸馏到浅层,实现推理时的 early exit

  • 在线自蒸馏:同一 batch 内不同数据增强视图之间互相学习(如 DINO、BYOL)

  • 特征蒸馏 的区别:自蒸馏强调教师和学生来自同一模型,而非独立的大小模型

  • 在模型增长场景中,已训练的小模型可作为 teacher 指导增长后模型的训练

  • 代表工作

  • Born-Again Networks (Furlanello et al., 2018): 自蒸馏的开创性工作

  • DINO (Caron et al., 2021): 视觉 Transformer 的自监督自蒸馏

  • 知识蒸馏: 自蒸馏是知识蒸馏的特殊形式

  • 相关概念

  • 知识蒸馏

  • 特征蒸馏

  • early exit