乐趣区

关于机器学习:GID旷视提出全方位的检测模型知识蒸馏-CVPR-2021

论文提出的 GID 框架可能主动抉择可分别指标用于常识蒸馏,而且综合了 feature-based、relation-based 和 response-based 常识,全方位蒸馏,实用于不同的检测框架中。从试验后果来看,成果非常不错,值得一看

起源:晓飞的算法工程笔记 公众号

论文: General Instance Distillation for Object Detection

  • 论文地址:https://arxiv.org/abs/2103.02340v2

Introduction


 在指标检测利用场景中,模型的轻量化和准确率是同样重要的,往往须要在速度和准确率之间衡量。常识蒸馏 (Knowledge Distillation) 是解决上述问题的一个无效办法,将大模型学习到的特征提取规定 (常识) 转移到小模型中,晋升小模型的准确率,再将小模型用于理论场景中,达到模型压缩的目标。
 目前的常识蒸馏办法大都针对分类工作,指标检测因为正负样本极度不均衡,间接将现有的办法利用到检测中个别都收益甚微。而目前提出的针对指标检测工作的常识蒸馏办法大都对常识进行了特定的束缚,比方管制蒸馏的正负样本比例或只蒸馏 GT 相干的区域。此外,这些办法大都不能同时利用于多种指标检测框架中。为此,论文心愿找到通用的常识蒸馏办法,不仅能利用于各种检测框架,还能转移尽可能多的常识,同时不必关怀正负样本。

 为了达到上述目标,论文联合 response-based 常识、feature-based 常识和 relation-based 常识,提出了基于可分别指标的蒸馏办法 GID(general instances Distillation),次要长处有以下:

  • 能够对单图中的多个实例间的关系进行建模并用于蒸馏中。只管曾经有钻研表明实例间的关系信息在检测中的重要性,但还没有钻研将其利用的常识蒸馏中。
  • 防止手动设置正负样本比例或只抉择 GT 相干区域进行蒸馏。尽管 GT 相干区域蕴含最多信息,但背景也可能蕴含对 student 的泛化能力学习有帮忙的信息。论文通过试验发现主动抉择的可分别实例 (discriminative instance) 对迁徙学习有显著的晋升作用,这些显著实例也称为通用实例(General Instance, GIs),因为不须要关怀其正负。
  • 对不同检测框架通用,GIs 是依据 student 和 teacher 的输入进行抉择的,与网络的内部结构无关。

  总结起来,论文的次要奉献如下:

  • 定义通用实例 (GIs) 作为蒸馏指标,可能高效地晋升检测模型的蒸馏成果。
  • 基于 GI,首次将 relation-based 常识引入到常识蒸馏中,并与 response-based 常识和 feature-based 常识单干,使得 student 能超过 teacher。
  • 在 MSCOCO 和 PASCAL VOC 数据集上验证不同检测框架下的有效性,均达到 SOTA。

General Instance Distillation


 有钻研提出 GT 左近的特色区域蕴含有助于常识蒸馏训练的丰盛信息,而论文发现不仅 GT 左近的区域,即便属于背景的区域,只有是可分别区域 (discriminative patch) 都对常识蒸馏有帮忙。基于下面的发现,论文设计了通用实例抉择模块(general instance selection module, GISM),用于从 teacher 和 student 的输入中抉择要害实例进行蒸馏。其次,为了更好地利用 teacher 的信息,论文综合应用了 feature-based、relation-based 和 response-based 常识用于蒸馏。

General Instance Selection Module

 在检测模型中,预测后果可能指出信息最丰盛的区域,而 teacher 和 student 的丰盛区域的差别恰好就是性能的差别。为了量化每个后果的差别,抉择可分别实例用于蒸馏,论文提出了两个指标:GI score 和 GI box,在每次迭代中动静计算。为了缩小计算耗费,通过计算分类分数的 L1 score 作为 GI score,而 GI box 则间接抉择分类分数更高的 box。

 整个 GI 的抉择过程如图 2 所示,对于实例 $r$,其 score 和 box 的抉择定义为:

 $P_{GI}$ 和 $B_{GI}$ 别离为 GI score 和 GI box。对于 one-stage 检测器,$P_t$ 和 $P_s$ 为 teacher 和 student 的分类分数,而对于 two-stage 检测器则为 RPN 的 objectness 分数,$B_t$ 和 $B_s$ 同理。$R$ 为预测框数目,$C$ 为类别数。因为论文将 teacher 和 student 的 detection head 设置成齐全一样的,所以预测框也是能够依据地位一一对应的。
 须要留神的是,高 GI score 的实例可能重合度比拟高,导致蒸馏损失翻倍。为解决这一问题,应用 NMS 来去重,递归抉择反复实例中 GI score 最高的实例。在理论应用中,NMS 的 IoU 为 0.3,最终每张图片只抉择 top- K 个实例。

Feature-based Distillation

 FPN 联合了骨干网络的不同层特色,可能显著晋升检测模型对多尺度指标的鲁棒性。于是,论文打算将 FPN 退出到蒸馏中,依据 GI box 的尺寸抉择对应的 FPN 层特色。
 因为每个 FPN 层的指标特色大小不同,间接进行 pixel-wise 蒸馏会导致模型更偏向于大指标。于是论文转而采纳 ROIAlign 将不同大小的特色输入为雷同大小再进行蒸馏,如图 a 所示。feature-based 蒸馏损失计算如下:

 $K$ 为 GISM 抉择的 GI 数目,$t_i$ 和 $s_i$ 为 ROIAlign 解决后的 FPN 特色,$f_{adapt}$ 用于将 $s_i$ 缩放到 $t_i$ 的雷同大小。

Relation-based Distillation

 物体间的关系信息是分类工作进行蒸馏的要害,但还没在检测工作蒸馏中进行尝试。同一场景中的物体,不论是前景还是背景,都是高度相干的,这对 student 网络的收敛有很大帮忙。
 为了开掘 GIs 中的关系常识,应用欧式间隔来度量实例间的间隔,而后用 L1 间隔来传递常识。如图 a 所示。relation 蒸馏损失计算如下:

 $\mathbb{K}^2=\{(i,j)|i\ne j, 1\le i,j\le K\}$,$\phi$ 为归一化因子,$l$ 为 smooth L1 损失。

Response-based Distillation

 常识蒸馏的要害次要是来自 teacher 的 response-based 常识的束缚,这里的 response-based 常识指的是模型的最终输入。但因为检测输入往往存在正负样本不均衡或过多负样本的状况,如果间接将 detection head 的所有输入进行蒸馏,这种状况带来的噪声反而会侵害 student 的性能。
 有钻研提出只蒸馏 detection head 的正样本,但这种办法疏忽了可辨别的负样本的作用。为此,论文设计了 distillation mask,将分类分支和回归分支的输入与 GIs 挂钩,比只抉择正样本要高效。

 不同检测模型的输入是不同的,论文定义了一个通用的办法来进行 detection head 的蒸馏,如图 b 所示。首先,基于 GIs 的 distillation mask 计算为:

 函数 $F$ 是标签指定算法,输出为 GI box,当匹配时,输入 1,否则输入 0。函数 $F$ 对不同的模型的定义是不同的,对于 RetinaNet,应用 anchor 和 GIs 间的 IoU 决定是否匹配,而对于 FCOS 则所有中心点在 GIs 外的输入都是 0。
 而后,response-based 损失计算如下:

 $R$ 为所有与抉择的 GIs 匹配的输入,teacher 和 student 对应的输入其中一个匹配即可。$y_t$ 和 $y_s$ 为分类分支输入,$r_t$ 和 $r_s$ 为回归分支输入,$L_{cls}$ 和 $L_{reg}$ 为分类损失函数和回归损失函数。须要留神的是,为了简便,对于 two-stage 检测器只蒸馏 RPN 输入。

Overall loss function

 模型的训练是端到端的,student 的整体损失函数为:

 $L_{GT}$ 为模型本来的损失函数,$\lambda$ 为调节超参数。

Experiment


 在 VOC 上比照蒸馏成果。

 在 COCO 上比照蒸馏成果。

 抉择的 GI box 可视化,后面为 5000 迭的抉择,前面为 90000 迭的抉择。绿色代表 GT,红色为正样本,黄色为两头 (非正非负) 样本,青色为负样本。

Conclusion


 论文提出的 GID 框架可能主动抉择可分别指标用于常识蒸馏,而且综合了 feature-based、relation-based 和 response-based 常识,全方位蒸馏,实用于不同的检测框架中。从试验后果来看,成果非常不错,值得一看。



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

退出移动版