论文原文

ABSTRACT

知识蒸馏是一种有效的模型压缩技术,通过训练学生模型模拟教师模型来提高模型的精度。然而,大多数用于图像分类的知识蒸馏方法在目标检测等更有挑战性的任务上都失败了。本文认为知识蒸馏在目标检测中的失败主要有两个原因:

  1. 前景和背景像素之间的不平衡
  2. 缺乏对不同像素之间关系的蒸馏。

基于以上原因,我们分别提出了注意力引导蒸馏和非局部蒸馏来解决这两个问题。提出了注意引导精馏法,利用注意机制找到前景目标的关键像素点,使学生更努力地学习目标的特征。非局部蒸馏不仅能让学生学习单个像素的特征,还能学习非局部模块捕获的不同像素之间的关系。实验表明,我们的方法在单级和两级、基于锚的和无锚的探测器上都取得了很好的AP改进。例如,我们蒸馏的Faster RCNN (ResNet101骨干)在COCO2017上达到43.9 AP,比基线高4.1。代码已经发布在Github†。

图2:我们方法的细节:(a)注意力引导蒸馏分别生成在通道维度和空间维度上平均汇聚的空间注意力和通道注意力。然后,鼓励学生模仿老师的注意力。此外,学生还被训练模仿教师的特点,这是掩盖了学生和教师的注意力。(b)非局部蒸馏捕获图像中像素与非局部模块的关系。教师的关系信息是被第二语言常模缺失的学生习得的。(c)非本地模块的结构。' 1x1 '是与1x1核的卷积层。(d)蒸馏损失应用于不同分辨率的骨干特征。我们的方法不涉及头颈部的检测。

代码地址:ArchipLab-LinfengZhang/Object-Detection-Knowledge-Distillation-ICLR2021: The official implementation of ICLR2021 paper "Improve Object Detection with Feature-based Knowledge Distillation: Towards Accurate and Efficient Detectors". (github.com)

1 INTRODUCTION

最近,随着深度学习的成功,在各个领域都取得了出色的突破(Ronneberger et al., 2015;Devlin et al., 2018;任等,2015)。然而,最先进的深度神经网络总是消耗大量的计算量和内存,这限制了它们在自动驾驶汽车和手机等边缘设备上的部署。为了解决这个问题,提出了大量的技术,包括剪枝(Han et al., 2016;Zhang et al., 2018;Liu et al., 2018;Frankle & Carbin, 2018),量化(Nagel等人,2019;Zhou等人,2017),紧凑型模型设计(Sandler等人,2018;Howard等人,2019年;Ma et al., 2018;Iandola等人,2016)和知识蒸馏(Hinton等人,2014;Buciluˇet al., 2006)。知识蒸馏又称师生学习,其目的是将过度参数化的教师的知识传递给轻量级的学生。由于学生接受的训练是模仿老师的逻辑或特征,学生可以从老师那里继承黑暗知识,因此往往获得更高的准确性。由于其简单、有效的特点,知识蒸馏已成为模型压缩和提高模型精度的常用方法。

目标检测作为计算机视觉领域最关键的挑战之一,迫切需要精确和高效的模型。不幸的是,现有的计算机视觉知识蒸馏方法大多是为图像分类而设计的,通常会导致对目标检测的微小改进(Li et al., 2017)。本文将知识蒸馏在目标检测中的失败归结为以下两个问题,分别待后续解决。

前景与背景的不平衡。在待检测的图像中,背景像素往往比前景对象的像素更令人难以抗拒。然而,在之前的知识提炼中,学生总是被训练以相同的优先级模仿所有像素的特征。因此,学生将大部分注意力集中在学习背景像素特征上,抑制了学生对前景物体特征的学习。由于前景像素在检测中起着至关重要的作用,这种不平衡严重影响了知识蒸馏的性能。为了克服这个障碍,我们提出了注意力引导蒸馏,它只蒸馏关键的前景像素。由于注意图能够反映重要像素点的位置(Zhou et al., 2016),我们采用注意图作为知识蒸馏的掩模。将关注值较高的像素作为前景对象的一个像素,然后由优先级较高的学生模型进行学习。与之前的二值掩码方法(Wang et al., 2019)相比,我们的方法中由注意图生成的掩码粒度更细,不需要额外的监督。与以往基于注意力的精馏方法(Zagoruyko & Komodakis, 2017)相比,我们的方法不仅将注意力地图作为待提取的信息,还将其作为掩模信号进行特征提取。

缺乏对关系信息的蒸馏。在物体检测中,不同物体之间的关系是公认的有价值的信息。近年来,许多研究人员成功地提高了探测器的性能,使探测器能够捕获和利用这些关系,如非局部模块(Wang et al., 2018)和关系网络(Hu et al., 2018)。然而,现有的目标检测知识提取方法只是提取单个像素的信息,而忽略了不同像素之间的关系。为了解决这一问题,我们提出了非局部提取方法,该方法利用非局部模块捕获学生和教师之间的关系信息,然后将这些信息从教师提取到学生。

由于我们的方法只在训练阶段需要非局部模块和注意机制,所以我们的方法不需要在推理阶段引入额外的计算和参数。此外,我们的方法是基于特征的蒸馏方法,不依赖于特定的检测算法,可以直接用于各种检测器,无需任何修改。在MS COCO2017上,2.9、2.9和2.2 AP平均分别可以在两阶段、一阶段和无锚模型上观察到改善。在Mask RCNN上的实验表明,我们的方法也可以平均提高2.0 AP的实例分割性能。我们进行了详细的消融研究和灵敏度研究,以显示每个蒸馏损失的有效性和稳定性。此外,我们研究了教师和学生在物体检测方面的关系,发现物体检测方面的知识蒸馏需要高AP水平的教师,这与图像分类中的结论不同,高AP水平的教师可能会损害学生的表现(Mirzadeh et al., 2019;Cho & Hariharan, 2019)。我们希望这些结果对除图像分类外的其他任务的知识蒸馏有更大的参考价值。综上所述,本文的贡献可以总结如下:

  • 我们提出了注意引导精馏,强调学生对前景物体的学习,抑制学生对背景像素的学习。
  • 我们提出了非局部蒸馏,使学生不仅能从老师那里学习到单个像素的信息,还能学习到不同像素之间的关系。
  • 我们发现AP水平越高的教师在对象检测知识蒸馏方面往往表现得越好,这与图像分类的结论不同

2 RELATED WORK

知识蒸馏作为一种有效的模型压缩和模型精度提升方法,被广泛应用于各个领域和任务中,包括图像分类,目标检测、语义分割、人脸识别、预训练语言模型、多出口网络训练(Zhang et al., 2019b;a)、模型鲁棒性(Zhang et al., 2020b)等。Hinton等人(2014)首先提出了知识蒸馏的概念,即训练学生模拟教师的软max层后的结果。然后,在教师特征(Romero et al., 2015)或变异中提出了丰富的知识转移方法,如Attention, FSP (Yim et al., 2017),互信息(Ahn et al., 2019),积极特征(Heo et al., 2019),批次样品的关系。

提高目标检测的性能是近年来知识蒸馏研究的一个热点。Chen et al.(2017)设计了第一个基于对象检测的知识蒸馏方法,包括主链、分类头和回归头的蒸馏损失。然后,许多研究者发现前景物体与背景的不平衡是检测蒸馏中的一个关键问题。Li等人(2017)没有提取骨干网络的全部特征,而是只对RPN采样的特征应用L2蒸馏损失。Bajestani和Yang(2020)提出了时间知识蒸馏,它引入了一个超参数来平衡前景和背景像素之间的蒸馏损失。Wang et al.(2019)提出了细粒度特征模仿,它只提取目标锚点附近的特征。然而,这些作品虽然尝试只提取前景对象的像素点,却总是在groundtruth、anchor、bounding box的注释上做出回应,无法转移到不同种类的检测器和任务上

在该方法中,利用注意机制找到前景目标的像素点,该像素点很容易从特征中生成。因此,它可以直接应用于各种探测器上,无需任何修改。如图3所示,之前基于掩码的检测精化方法(Wang et al., 2019)与我们的注意力引导精化方法的区别如下:

  1. 我们的方法使用注意机制生成掩码,而使用地面真值包围盒和锚定先验生成掩码。
  2. 我们方法中的掩码是像素和细粒度掩码,而他们方法中的掩码是对象和二进制掩码。
  3. 我们的方法中的掩码由空间掩码和通道掩码组成,而它们只有一个空间掩码。

与相关工作的更详细的比较可以在附录e中找到。

3 METHODOLOGY

3.1 ATTENTION-GUIDED DISTILLATION

我们使用A∈RC,H,Wto表示目标检测模型中主干的特征,其中C,H,W分别表示其通道数,高度和宽度。然后,空间注意图和通道注意图的生成等价于分别找到映射函数Gs。