Part4 蒸馏

1. 基本概念

定义:知识蒸馏是一种模型压缩技术,通过将大模型(教师模型)的知识迁移到小模型(学生模型),帮助小模型在资源受限的设备上高效运行。
核心思想:学生模型通过模仿教师模型的输出分布(如logits、概率、中间特征等)进行训练。
notion image
The goal of knowledge distillation is to align the class probability distributions from teacher and student networks.

2. 匹配的内容

2. 1. 输出Logits

  • 方法:最小化教师和学生输出logits的差异。
  • 损失函数
    • 交叉熵损失
    • L2损失
      • notion image

2. 2. 中间权重

  • FitNets方法 [Romero et al., ICLR 2015]:
    • 对齐教师和学生的中间层权重(通过线性变换适配维度)。
    • 损失函数:L2损失(教师权重 vs. 学生权重)。
      • notion image

2.3. 中间特征

  • 最大均值差异(MMD) [Huang & Wang, 2017]:
    • 匹配中间特征图的分布(而不仅是输出概率)。
      • notion image
  • 注意力图 [Zagoruyko & Komodakis, ICLR 2017]:
    • 使用梯度定义注意力: 表示特征图的重要性。
    • 学生需模仿教师模型的注意力分布。
      • notion image

2.4. 稀疏模式

  • 激活边界匹配 [Heo et al., AAAI 2019]:
    • 对齐ReLU激活后的稀疏模式(即神经元是否激活)。
    • 损失函数:二值交叉熵损失。
      • notion image

2.5. 关系信息

  • 层间关系 [Yim et al., CVPR 2017]:
    • 通过内积提取层间关系矩阵,匹配教师和学生的关系模式。
      • notion image
  • 样本间关系 [Park et al., CVPR 2019]:
    • 计算特征向量的成对距离(如欧氏距离),匹配跨样本的关系分布。
      • notion image

3. 自蒸馏与在线蒸馏

3.1. 自蒸馏(Self-Distillation)

  • Born-Again Networks [Furlanello et al., ICML 2018]:
    • 迭代训练同一模型,用前一轮模型作为教师指导当前模型。
    • 效果:多阶段训练后,学生模型性能可能超越原始教师。
      • notion image

3.2. 在线蒸馏(Online Distillation)

  • 深度互学习(Deep Mutual Learning, DML) [Zhang et al., CVPR 2018]:
    • 多个模型同时训练,互相作为教师和学生。
    • 损失函数:交叉熵损失 + KL散度损失(对齐彼此的输出分布)。
      • notion image

3.3. 混合方法

  • Be Your Own Teacher [Zhang et al., ICCV 2019]:
    • 深层监督 + 蒸馏:用深层分类器的输出监督浅层分类器。
    • 优点:提升中间层性能,加速推理(可选择使用中间分类结果)。
      • notion image

4. 不同任务的蒸馏应用

4.1. 目标检测

  • 特征模仿 [Chen et al., NeurIPS 2017]:
    • 对齐教师和学生的中间特征图(通过L2损失)。
    • 边界框回归:使用教师预测作为学生回归的上界(若学生预测优于教师,损失置零)。
  • 定位蒸馏 [Zheng et al., CVPR 2022]:
    • 将边界框坐标离散化为分类问题(分桶),匹配教师的概率分布。

4.2. 语义分割

  • 结构化知识蒸馏 [Liu et al., CVPR 2019]:
    • 引入判别器网络生成对抗损失,使学生特征分布逼近教师。

4.3. 生成对抗网络(GAN)

  • GAN压缩 [Li et al., CVPR 2020]:
    • 匹配生成器的中间特征和输出(L1损失)。
    • 结合重建损失(paired/unpaired)和对抗损失。

4.4. 自然语言处理(NLP)

  • MobileBERT [Sun et al., ACL 2020]:
    • 对齐注意力图和多层特征,压缩BERT模型。

4.5. 大语言模型(LLM)

  • Minitron [Muralidharan et al., NeurIPS 2024]:
    • 剪枝后通过蒸馏恢复性能,匹配logits和中间特征。

5. 网络增强(Network Augmentation, NetAug)

背景

  • 传统数据增强的局限性
    • 对大型模型有效(如Mixup、AutoAugment),但会损害小型模型性能(因容量不足)。

NetAug方法 [Cai et al., ICLR 2022]

  • 核心思想:通过动态增强模型结构(如添加辅助分支),提供额外监督信号。
  • 训练过程
      1. 基础监督:标准分类损失。
      1. 辅助监督:增强模型分支的损失(加权叠加)。
        1. notion image
  • 优势
    • 提升小模型训练和验证精度(如MobileNetV2-Tiny +1.6% Top1)。
    • 与知识蒸馏正交,可结合使用(NetAug + KD效果更优)。