https://mp.weixin.qq.com/s/yDkreTudC8JL2V2ETsADwQ
识蒸馏
点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
作者:美索不达米亚平原 | 已授权转载(源:知乎)编辑:CVer
https://zhuanlan.zhihu.com/p/477707304
本文介绍我们CVPR2022关于目标检测的知识蒸馏工作: Focal and Global Knowledge Distillation for Detectors,只需要30行代码就可以在anchor-base, anchor-free的单阶段、两阶段各种检测器上稳定涨点,现在代码已经开源,欢迎大家试用~
Focal and Global Knowledge Distillation for Detectors
文章链接:arxiv.org/abs/2111.11837
代码链接:github.com/yzd-v/FGD
一、针对问题
1. 目标检测中前背景不平衡问题
前背景的不平衡对于目标检测而言是一个重要的问题,这个问题同样影响着知识蒸馏。
知识蒸馏旨在使学生学习教师的知识,以获得相似的输出从而提升性能。为了探索学生与教师在特征层面的差异,我们首先对二者的特征图进行了可视化。可以看到在空间与通道注意力上,教师与学生均存在较大的差异。其中在空间注意力上,二者在前景中的差异较大,在背景中的差异较小,这会给蒸馏中的学生带来不同的学习难度。
为了进一步探索前背景对于知识蒸馏的影响,我们分离出前背景进行了蒸馏实验,全图一起蒸馏会导致蒸馏性能的下降,将前景与背景分开学生能够获得更好的表现。
针对学生与教师注意力的差异,前景与背景的差异,我们提出了重点蒸馏Focal Distillation:分离前背景,并利用教师的空间与通道注意力作为权重,指导学生进行知识蒸馏,计算重点蒸馏损失。
2.全局信息的丢失
如前所述,Focal Distillation将前景与背景分开进行蒸馏,割断了前背景的联系,缺乏了特征的全局信息的蒸馏。为此,我们提出了全局蒸馏Global Distillation:利用GcBlock分别提取学生与教师的全局信息,并进行全局蒸馏损失的计算。
二、整体框架
FGD仅需要获取学生与教师的特征图,便可完成重点蒸馏损失与全局蒸馏损失的计算,可以很方便的应用到各种类型的检测器上。
三、实验结果
我们对anchor-based与anchor-free的单阶段与二阶段检测器进行了实验,在COCO2017上学生检测器均获得了大幅的AP和AR提升。
我们采用了具有更强的检测器对学生进行蒸馏,发现当使用更强的模型作为教师进行蒸馏时,FGD为模型能带来更大的性能的提升。例如RetinaNet-R50在ResNet-101和ResNeXt-101的老师蒸馏下,分别可达到39.7和40.7的mAP。
对于使用FGD蒸馏完成后的学生模型,我们再次进行了注意力的可视化。可以看到,经过FGD训练后的学生,空间注意力和通道注意力的分布与教师都非常相似,这表明学生通过蒸馏学到了教师的知识并获得了更好的特征,由此实现了性能的提升。
四、更多蒸馏设置
我们已将代码开源:github.com/yzd-v/FGD
代码基于MMDetection实现,易于复现,且已添加更多的教师与学生蒸馏设置,相关结果也在代码中给出,欢迎大家使用。