对抗蒸馏简介
背后的动机与挑战
方法原理详解
模型结构设计
PyTorch 实现(含判别器与训练循环)
训练策略与技巧
实验效果与分析
进阶变体与未来趋势
总结
知识蒸馏(Knowledge Distillation, KD)中,学生模型模仿教师模型的输出,学习其“行为”或“特征”。
传统 KD 偏重于逐点对齐,比如 Soft Target KD 通过 KL 散度对齐 soft logits,而 Feature-based KD 则是直接对齐中间特征。但这些方式对“整体分布”理解有限。
如果把教师当作一个“真实样本的生成器”,那么我们能否训练一个“判别器”来判断学生输出是否“足够像老师”?
这正是 对抗蒸馏(Adversarial Knowledge Distillation) 的核心思想 —— 引入一个对抗模块,让学生学得更加“逼真”,从而提升泛化能力。
KL 散度主要看两个向量之间的“数值差异”,不理解深层分布;
Feature L2 Loss 没有考虑上下文之间的空间/语义联系;
高维空间中,简单的 L1/L2 往往不足以传达“