Distilling Knowledge via Knowledge Review: 通过知识回顾提炼知识
摘要
知识蒸馏将知识从教师网络传输到学生网络,旨在极大提高学生网络的性能。先前的方法大多集中在提出特征转换和损失函数,用于同一级别特征之间的改进效果。我们不同地研究了教师网络和学生网络之间跨级连接路径的因素,并揭示了其重要性。在知识蒸馏中,我们首次提出了跨阶段连接路径。我们的新的评估机制既有效又结构简单。我们最终设计的嵌套和紧凑框架需要极少的计算开销,在各种任务中表现优于其他方法。我们将我们的方法应用于分类、目标检测和实例分割任务。所有这些任务都显著见证了学生网络性能的提升。代码可在 https://github.com/Jia-Research-Lab/ReviewKD 上获取。
1.介绍
深度卷积神经网络(CNNs)在各种计算机视觉任务中取得了显著的成功。然而,CNN的成功通常伴随着相当大的计算和内存消耗,这使得将其应用于资源有限的设备成为一个具有挑战性的话题。已经有一些技术用于训练快速和紧凑的神经网络,包括设计新的架构 [10, 2, 11, 26],网络剪枝 [20, 15, 34, 4, 19],量化 [13] 和知识蒸馏 [9, 25]。
本文专注于知识蒸馏,考虑到它的实用性、效率以及最重要的潜力。它形成了一个非常通用的线路,几乎适用于所有网络架构,并且可以与许多其他策略结合,例如网络剪枝和量化 [32],以进一步改善网络设计。
知识蒸馏最初是在文献[9]中提出的。该过程是在一个更大的网络(即教师)的监督下训练一个较小的网络(即学生)。在文献[9]中,知识是通过教师的logit进行蒸馏的,这意味着学生既受到地面真实标签的监督,也受到教师的logits监督。最近,已经有努力改进蒸馏的有效性。FitNet [25]通过中间特征进行知识蒸馏。AT [38]进一步优化了FitNet,并使用特征的注意力图来传递知识。PKT [23]将教师的知识建模为概率分布,而CRD [28]则使用对比目标来传递知识。所有这些解决方案都集中在转换和损失函数上。
我们在本文中从一个新的角度解决这个具有挑战性的问题,关注教师和学生之间的连接路径。为了简要了解我们的想法,我们首先展示了先前的工作如何处理这些路径。如图1(a)-©所示,所有先前的方法只使用相同级别的信息来指导学生。例如,当监督学生的第四阶段输出时,总是利用教师的第四阶段信息。这个过程看起来直观且易于构建。但我们有趣地发现,事实上这实际上是整个知识蒸馏框架中的一个瓶颈 - 结构的快速更新出人意料地显著改善了许多任务的整体性能。
我们调查了在知识蒸馏中先前被忽视的设计连接路径的重要性,并据此提出了一个新的有效框架。关键修改是使用教师网络中的低级特征来监督学生的更深层次特征,这导致整体性能大大提高。
我们进一步分析了网络结构,并发现学生的高层阶段有能力从教师的低层特征中学习有用的信息。更多的分析见第4.4节。这个过程类似于人类的学习曲线 [35],在那里一个年幼的孩子只能理解所教授的一小部分知识。在成长过程中,越来越多来自过去年份的知识可能逐渐被理解并作为经验记住。
图1. (a)-© 先前的知识蒸馏框架。它们仅在相同级别之间传递知识。(d)我们提出的“知识审查”机制。我们利用教师的多层来监督学生的一层。因此,在不同级别之间产生了知识传递。
基于这些发现,我们提出利用教师的多级信息来指导学生网络的单级学习。我们的新型流程如图1(d)所示,我们称之为“知识审查”。审查机制是利用先前(更浅层次的)特征来指导当前特征。这意味着学生必须始终检查之前学习过的内容,以更新对“旧知识”的理解和背景。这在我们人类的学习中是一个常见的做法,用来连接在学习期间不同阶段教授的知识。
然而,如何从教师的多级信息中提取有用信息,并将其传递给学生是一个开放且具有挑战性的问题。为了解决这些问题,我们提出了一个残差学习框架,使学习过程更稳定和高效。此外,设计了一种新颖的基于注意力的融合(ABF)模块和分层上下文损失(HCL)函数来提升性能。我们提出的框架显著提高了学生网络的学习效果。
通过应用这个想法,我们在许多计算机视觉任务中取得了更好的性能。在第4节的广泛实验证明了我们提出的知识审查策略的巨大优势。
主要贡献:
- 我们在知识蒸馏中提出了一个新的审查机制,利用教师的多级信息来指导学生网络的单级学习。
- 我们提出了一个残差学习框架,更好地实现了审查机制的学习过程。
- 为了进一步改善知识审查机制,我们提出了基于注意力的融合(ABF)模块和分层上下文损失(HCL)函数。
- 通过应用我们的蒸馏框架,我们在多个计算机视觉任务中实现了许多紧凑模型的最先进性能。
2. Related Work
在文献[9]中提出了知识蒸馏的概念,其中学生网络同时从地面真实标签和教师提供的软标签中学习。FitNet [25]通过一个阶段的中间特征进行知识蒸馏。FitNet的想法很简单,即学生网络特征经过卷积层转换成与教师相同形状的特征。使用L2距离来衡量它们之间的距离。
许多方法都遵循FitNet,并使用单个阶段的特征来进行知识蒸馏。PKT [23]将教师的知识建模为概率分布,并使用KL散度来衡量距离。RKD [22]使用多个示例关系来引导学生的学习。CRD [28]结合了对比学习和知识蒸馏,并使用对比目标来传递知识。
还有一些方法使用多个阶段的信息来传递知识。AT [38]使用多层注意力图来传递知识。FSP [36]从层特征生成FSP矩阵,并使用该矩阵来指导学生。SP [29]进一步改进了AT。SP不使用单一输入信息,而是使用示例之间的相似性来指导学生。OFD [8]包含一个新的距离函数,用于通过边缘ReLU在教师和学生之间蒸馏主要信息。
所有先前的方法都没有讨论“审查知识”的可能性,然而,我们的工作发现“审查知识”对快速提高系统性能非常有效。
3. Our Method
我们首先对知识蒸馏过程和审查机制进行形式化。然后,我们提出了一个新颖的框架,并介绍了基于注意力的融合模块和分层上下文损失函数。
3.1. 审查机制
给定输入图像 X 和学生网络 S,我们让 Ys = S(X) 表示学生的输出logit。S 可以分成不同的部分(S1, S2, · · · , Sn, Sc),其中 Sc 是分类器,S1, · · · , Sn 是由下采样层分隔的不同阶段。因此,生成输出 Ys 的过程可以表示为:
我们将“◦”表示为函数的嵌套,其中 g ◦ f(x) = g(f(x))。Ys 是学生的输出,中间特征是 (F1s, · · · , Fns)。第 i 个特征的计算如下所示:
对于教师网络 T,该过程几乎相同,我们省略了细节。遵循先前的符号表示:
图2. (a) 根据审查机制监督学生单层的架构。 (b) 从一个层面直接推广到多个层面。这个过程很直接但代价很高。 © 使用融合模块优化了图(b)中的架构,以获得一个紧凑的框架。 (d) 我们进一步以渐进的方式改进了该过程,并将残差学习作为我们的最终架构。ABF和HCL的结构见图3。此图在彩色显示下效果最佳。
待更新