Decoupled Knowledge Distillation 论文精读总结

Title

Decoupled Knowledge Distillation CVPR 2022

Summary

将KD loss拆分成TCKD(二值概率)以及NCKD(多值概率),并探究了KD loss存在的局限性,提出了DKD方法

Research Objective

性能最好的蒸馏方法都是基于中间层特征的蒸馏,这类方法不够完美:会引进额外的计算量和内存消耗。直觉上,基于logit的方法相比基于feature在更高的语义层面,因此它应当与基于features具有相当的性能。

Problem Statement

通过将KD的loss拆分成TCKD与NCKD,探究发现:

  1. 首先,NCKD loss项的权重大小与Teacher模型对样本目标类的置信度负相关,事实上,teacher模型置信度越高的样本,应该具有更可靠以及更有价值的知识
  2. 其次,TCKD与NCKD权重高度耦合,TCKD与NCKD的权重应该被分别考虑

Method(s)

两个工作:

  1. 通过重写KD loss,将KD拆分成TCKD与NCKD,同时通过实验证明了两个因子对性能的影响:
    • TCKD迁移了有关于训练样本学习难度的知识,并且训练样本越难被学习,TCKD的价值越高:通过数据增强,噪声标签以及使用imagenet三个方法来实现对猜想的验证。
    • NCKD是基于logit方法能够工作的核心原因,但它的作用被压制了,NCKD在具有更高置信度的样本上能蒸馏出更有价值的知识:解耦实验,只用NCKD就可以超过student模型并且与baseline KD性能相当;将训练样本拆分为置信度高的与置信度低的两组,通过NCKD分别在两个数据集上蒸馏,发现置信度高的数据集能迁移更多知识
  2. 基于TCKD与NCKD的拆分公式,将TCKD的权重置为超参数α\alpha,NCKD的权重由teacher模型的置信度改为超参数β\beta,从而解决高耦合的问题。

Evaluation

通过设计巧妙的实验验证所有的猜想:

基于TCKD与NCKD拆分后的实验效果,猜想TCKD与NCKD的作用

  1. 通过降低Teacher模型的置信度,验证TCKD表示的是样本的学习难度,且越难学习的样本,TCKD越有效
  2. 通过拆分数据集,验证NCKD对具有更高置信度的样本能够迁移更多知识

通过对超参数的搜索验证方法的有效性

  1. αβ\alpha、\beta分别进行超参数搜索,得出TCKD与NCKD前的权重都是有必要的,即需要对KD loss实现解耦合

  2. 主实验结果增加了别的领域(目标检测)的数据集测试

设计许多额外实验,证明方法的强大

  1. 将与基于feature的方法及base lineKD作对比,DKD训练效率最高(准确率,训练时间,参数量)

  2. 缓解大参数量的teacher模型不能很好地蒸馏的问题

    image-20240409183849163
    1. 知识迁移能力(特征迁移)

      image-20240409183929613
    2. 可视化:特征区分度,logits与teacher的差异

      image-20240409184009644

Conclusion

作者给了哪些strong conclusion, 又给了哪些weak conclusion?

  1. 将KD loss重写为TCKD与NCKD,两部分都会影响蒸馏效果
  2. baseline KD loss约束了知识蒸馏的灵活性和有效性
  3. 提出了DKD方法
  4. 局限性:DKD方法不是性能最好的,DKD的超参数缺少足够研究

Notes

  1. 实验
  2. 超参数与样本关联而不是数据集