Channel-wise KD阅读笔记
(一) Title
论文地址:https://arxiv.org/abs/2011.13256
代码地址:https://github.com/irfanICMLL/TorchDistiller/tree/main/SemSeg-distill
前言:本文的主要工作集中在5.2小节,思路简单并且比较novel
(二) Summary
背景工作:
大量的Knowledge distillation(KD)工作集中在空间域上处理教师网络和学生网络的激活图,具体的做法是将activation values经过normalization之后再最小化point-wise和/或pair-wise的差异。
本文工作:
本文的工作在每一个channel上normalization激活图特征值,从而得到一个soft probability map,通过最小化教师网络和学生网络之间channel-wise probability map的Kullback-Leibler(KL) divergence来实现蒸馏,实现对特征图上突出部分提高注意力。
实验结果:
在目标检测任务中帮助RetinaNet detector(ResNet50)的mAP提升了3.4%,在semantic segmentation任务中帮助mIoU提升了5.81%。
本文贡献:
- 不同于现有的spatial distillation approaches,本文提出的是一种channel-wise distillation,并且是比较简单的.
- 在目标检测任务以及semantic segmentation任务中,取得了超越state-of-the-art KD方法的成绩,并且方法是通用的。
(三) Research Object
本文通过改进前人工作中存在的过于严格的约束,以及不同空间位置在知识transfer过程中等价的问题,提出了一个基于Kullback-Leibler(KL) divergence的方法.
首先,对于特征图的每一个通道进行normalization,最小化经过norm的特征图之间的非对称KL divergence,也就是将每一个channel转换成一个分布,利用分布之间的约束来进行蒸馏,这种对通道进行norm的方式能够凸显需要关注的部分,如下图所示:
通过这种方式处理activation能够更突出significant的激活值,这里一定会有激活值大的地方在知识transfer中得到的关注更多嘛?怎么去看待这个"关注"?第二个问题,一个训练好的网络的激活图norm之后表现情况是上面嘛?尤其是检测任务。
(四) Problem Statement
目前现有的知识蒸馏主要集中在分类任务上,本文希望解决dense prediction下的KD问题,然而简单的pixel-wise的方式并不能够很好的解决当前的问题,本文怎么考虑整个activation feature map中不同spatial position之间的差异以及如何施加不严苛的约束来实现对dense prediction的蒸馏呢?
(五) Method
5.1 spatial distillation
现有的空间蒸馏方式如下式所示:
ℓ ( y , y S ) + α ⋅ φ ( ϕ ( y T ) , ϕ ( y S ) ) \ell\left(y, y^{S}\right)+\alpha \cdot \varphi\left(\phi\left(y^{T}\right), \phi\left(y^{S}\right)\right) ℓ(y,yS)+α⋅φ(ϕ(yT),ϕ(yS))
上式中 ℓ ( . ) \ell\left(.\right) ℓ(.)表示当前的任务损失,其中 y y y表示Ground-Truth的标签,然后 y S y^S yS和 y T y^T yT分别表示学生网络和教师网络activations的logits或者inner。 α \alpha α表示平衡损失项的超参数,这里的疑问是 φ \varphi φ和 ϕ \phi ϕ表示的是什么?我认为这两个函数表示应该是教师网络和学生网络之间activation损失的计算,以本文为例,这里的 ϕ \phi ϕ可以表示channel-wise normalization, φ \varphi φ表示Kullback-Leibler divergence function
现有spatial distillation方法的简要概述如下:
- Attention Transfer(AT)[42]中通过使用attention mak来squeeze the feature map into a single channel for distillation。
- pixel-wise loss[17]采用point-wise class probabilities
- loss affinity[35]通过计算center pixel和它8邻域之间的距离来进行蒸馏
- pairwise affinity[25,14,24]用来transfer pixel pairs之间的相似性,
- holistic loss[25,24]通过adversarial scheme来align high-order relations between feature maps from two networks。
这些是整理的之前的一些方法,有时间精力的话再去看看估计不太行,时间不充裕
5.2 Channel-wise Distillation
将教师网络和学生网络对应通道经过softly align activations进行蒸馏,可以将通道的activation转换成概率分布,通过概率分布之间的距离度量比如说KL divergence来度量差异,进行回归。对于分割问题来说,一个好的教师网络学习到的activation maps应该具有category=specific masks对于每一个channel而言,如下图所示:
符号表示: S S S表示学生网络, T T T表示教师网络,学生网络和教师网络的activation maps表示为 y S y^S yS以及 y T