来源:CVPR-2021

论文标题:Distilling Knowledge via Knowledge Review

论文链接:https://arxiv.org/abs/2104.09044

论文代码:https://github.com/Jia-Research-Lab/ReviewKD

作者单位:香港中文大学&思谋科技&牛津大学

【推荐理由】

以前的蒸馏方法主要是在同一层次的特征之间提出特征变换和损失函数来提高效率。本文对教师与学生网络跨层次连接路径进行研究,从一个新的角度提出利用教师多层监督学生一层的回顾机制。该方法在目标分类,目标检测,实例分割等任务上取得了比以前的SOTA方法更好的结果。

【主要内容】

回顾机制

输入图像\( X \),学生网络\( S \)\( Y_S=S(X) \)为学生的输出logit,\( S \)可以被分为\( (S_1,S_2,...,S_n,S_c), \)其中\( S_c \)为分类器,\( (S_1,S_2,...,S_n) \)是由下采样层分开的不同阶段。所以产生输出\( Y_S \)的过程可以被表示为:

\( Y_S=S_C\circ S_n \circ ...\circ S_1(X)\ \ (1) \)

其中\( \circ \)表示函数的嵌套,如\( (F_s^1,...F_s^n) \),中间层特征为,第\( i \)层特征可以计算为:

\( F_s^i=S_i \circ ...\circ S_1(X)\ \ (2) \)

对于教师网络\( T \),过程几乎一样。基于此,单层的蒸馏可以被表示为:

\( L_{SKD}=D(M_s^i(F_s^i),M_t^i(F_t^i)) \ \ (3) \)

其中\( M \)是将特征转换到注意图]或因子的目标表征的转换。D是距离函数,测量学生和老师之间的距离。同样,多层蒸馏可以表示为:

\( L_{MKD}=\sum _{i\in I}D(M_s^i(F_s^i),M_t^i(F_t^i)) \ \ (4) \)

回顾机制用以前的特征来指导当前的特征。因此结合回顾机制的单层蒸馏可以被表示为:

\( L_{SKD\_R}=\sum_{j=1}^{i}D(M_s^{i,j}(F_s^i),M_t^{j,i}(F_t^j)) \ \ (5) \)

它与多层知识精馏看似相同,但本质不同。这里固定学生特征\( F_s^i, \)使用教师的前i层特征指导学生,回顾机制和多层蒸馏是互补的概念。将回顾机制与多层知识蒸馏相结合,得到

\( L_{MKD\_R}=\sum_{i\in I}(\sum _{j=1}^iD(M_s^{i,j}(F_s^i),M_t^{j,i}(F_t^j))) \ \ (6) \)

利用λ因子来平衡蒸馏损失和原始损失。以分类任务为例,定义整体损失函数为

\( L=L_{CE}+\lambda{L}_{MKD\_R}\ \ (7) \)

回顾机制中,只使用教师较浅的特征来监督学生较深的特征,相反的做法只会带来边际效益,反而会浪费大量的资源。直观的解释是,更深层和更抽象的特征对于早期学习来说太复杂。

Residual Learning Framework 

首先设计了一个简单的框架如图2(a)所示。变换\( M^{i,j}_ s \)由卷积层和最近邻插值层组成,用来转换学生的第\( i \)个特征图,以匹配教师第\( j \)个特征图的大小。

图2(b)直接将此思想应用于多层蒸馏,蒸馏每级的特征。然而,由于阶段之间存在巨大的信息差异,这种策略并不是最优的。此外,它会产生一个复杂的过程,其中所有的特征都被使用。例如,对于一个有\( n \)个阶段的网络,损失耗函数需要计算\( n(n + 1)/2 \)对特征,这使得学习过程非常繁琐,耗费大量资源。

图2(d)中的结构很简练,利用残差学习的概念简化了蒸馏过程。例如,第四阶段的学生特征与第三阶段的学生特征相结合,模仿第三阶段的教师特征。因此,第四阶段的学生特征学习了第三阶段特征在学生和教师之间的残差。残差信息很可能是教师取得高质量成果的关键因素

残差学习的过程比直接让学生的高水平特征学习教师的低水平特征更稳定和有效,在残差学习框架下,学生的高级特征可以更好地逐步提取有用的信息。

ABF and HCL

图2(d)中有两个关键部分,分别是基于注意力的融合模块(ABF)和分层上下文损失(HCL)。

ABF模块如图3(a),首先调整高级特征使其与低级特征具有相同的shape,然后将不同层次的两个特征(concat)连接在一起,然后生成两幅 H*W的注意图。这些图分别带有两个特征,最后,这两个图被用来生成最终的输出。

HCL如图3(b)所示。通常,我们使用L2距离作为两个特征映射之间的损失函数。L2距离可以有效地在同一层次的特征之间传递信息。但这里,不同层次的信息被聚集在一起向教师学习,全局L2距离不足以传递复合层的信息。

因此提出了HCL模型,利用空间金字塔池化,将知识转移到不同层次的上下文信息中。通过这种方式,信息可以更好地在不同的抽象层次上进行提炼:首先利用空间金字塔池化的方法从特征中提取不同层次的知识,然后用L2距离分别提取它们之间的知识。

内容中包含的图片若涉及版权问题,请及时与我们联系删除