type
status
date
slug
summary
tags
category
icon
password
comment_flag
SLUGS
Preface
Actually,我对Object Detection(下文简称OD)这方面的工作的pipline并不十分清楚,实际上这并不是我目前研究所关心的,但期望后面会补一补。之所以读这篇论文,是希望借鉴此方向的一些思想,也因此读得莫名不知用心。
Motivation
现有的蒸馏都主要聚焦于分类任务,较少考虑如检测这类的复杂任务。如果使用寻常的KD策略用于检测任务,取得的性能提升相当微小。
针对此,作者提出了fine-grafined feature imitation方法来探索模型的cross-location discrepancy of feature response。
通俗解释就是,假设在一个“发论文场景”,老师写完了一篇论文后,洋洋自得,发给了学生看。在意气扬扬之余,老师发现仍有一定瑕疵,于是改好后又发给了学生看。又在自得之余发现了瑕疵,又小改,又发给学生看……。学生通过不断看老师改后的文章,知道了如何改论文。于是学生从明白自己第一遍的论文怎么改最终进步到怎么一步写好论文。
这篇工作和以前工作一样都会提到自己的挑战,于是在introduction部分重新梳理了检测上做vanilla KD的不足:
- 检测任务可能只涉及较少的类别,vanilla KD能蒸馏的知识相对较少。
- 检测任务除了需要分类知识外,还需要定位知识,这是vanilla KD无法做到的。
- foreground和background的不平衡,这也导致了full feature imitation是不可取的。
Related Work
说下作者指出的关键两篇工作:
- NIPS17《Learning efficient object detection models with knowledge distillation》如FitNets那篇工作一样进行full feature imitation,并将RPN和RCN的输出作为targets进行logit mimicking。作者进行实验发现full feature imitation会导致student模型性能退化,原因是background和foreground不平衡。并且teacher和student的proposal set本就可能inconsistency,如何匹配并进行蒸馏,他们似乎并未细述。
- 《Mimicking very efficient network for object detection》提出在proposal areas上进行蒸馏,但mimicking regions取决于模型输出,对于one-stage detector而言并不实用。
Core Idea
作者的直觉是teacher模型对靠近实际目标的anchor locations的feature response差异提供了large detector如何提高泛化能力的线索,student可以学习这种response的演化过程来提高泛化能力。
Method
流程大致是:
- 作者先计算所有anchors和某一个gt box的IOU,得到的feature map,然后找出其中最大IOU值,并乘以一个放缩因子得并以此IOU阈值去过滤掉低IOU的feature,对剩下的feature map进行OR操作。处理完所有的gt boxes后就可以得到fine-grained imitation mask 。
- 然后根据来进行distillation:
其中,是adaption function。采用adaption function的原因是:(a)teacher和student的特征通道对齐;(b)即使teacher和student的特征通道已对齐,强制拉近student的特征与teacher的特征距离,性能提升较小。
- 最后总损失:
Experiments
实验结果及分析较多,贴一部分,详细请见原文。
Personal Reflection
这篇工作的方法虽然简单,但关注角度比较有新意,最后实验效果也不错。让student模型感知teacher“解决问题”的过程,可谓“授之以渔”。