Learning Efficient Object Detection Models with Knowledge Distillation论文精读

论文: http://papers.nips.cc/paper/6676-learning-efficient-object-detection-models-with-knowledge-distillation.pdf

github: 

本周阅读了Learning Efficient Object Detection Models with Knowledge Distillation论文,方便日后查阅。

目录

主要工作

3方法

3.1 总体结构

3.2 带有不平衡类别的分类的知识蒸馏

3.3 带有教师边界的回归知识蒸馏

3.4 具有适应性的提示学习

4、实验

4.1整体表现

4.2 压缩模型中的速度-精度权衡

4.3Ablation Study

4.4 讨论

5总结


主要工作

1、提出了一个端到端的可训练框架,通过知识蒸馏来学习紧凑的多类目标检测模型,这是针对多分类目标检测问题的知识蒸馏的首次成功演示。

2、提出了可以有效解决上述挑战的新损失:

a.提出了一种用于分类的加权交叉熵损失,以解决背景分类与对象分类的分类影响的不平衡;

b.知识蒸馏的教师边界回归损失

c.使学生可以更好地学习教师中间层中神经元的分布的适应层

3、使用多个大型公共benchmarks进行全面的经验评估。

研究表明上述每种新颖设计选择的积极影响,在所有基准测试中一致地使用压缩快速网络显着提高了对象检测精度。

 

 

在这篇文章中,作者引用了FasterRCNN作为目标检测框架,FasterRCNN主要由三部分组成

1、共享的特征提取的卷积层

2、用于提取可能有目标的区域的RPN网络

3、用于分类和回归的RCN

 

RCN和RPN都用的是模块1 提取的特征,RCN还将RPN的输出作为输入

为了达到较高的目标检测的准确度,对于三部分学习到能力较强的模型很重要。

3方法

在这项工作中,作者采用faster- rcnn[32]作为目标检测框架。Faster-RCNN由三个模块组成:1)卷积层共享特征提取,2)生成目标建议的区域建议网络(region proposal network, RPN), 3)分类回归网络(classification and regression network, RCN),返回每个目标建议的检测分数和空间调整向量。RCN和RPN都以1)的输出作为特征,RCN也以RPN的结果作为输入。为了获得高精度的目标检测结果,学习所有三个组件的强模型是至关重要的。

3.1 总体结构

通过使用针对所有三个组件的大容量教师检测网络的知识,学习强大而有效的学生对象检测器,整体框架如图一所示。

首先,论文采用基于提示的学习方法来鼓励学生网络的特征表示类似于教师网络的特征表示

然后,再RPN和RCN中用知识蒸馏框架学习强分类模型,为了解决严重的类型不平衡问题,论文对蒸馏框架使用了权重交叉熵损失函数;

最后,论文将教师回归输出作为上界,也就是说,如果学生模型的回归输出比老师的好,那么久没有附加的损失会被使用。

总体学习目标如下

 

其中,N和M分别是RCN和RPN的batch-size,Lcls表示分类损失函数,结合了硬softmax损失(使用的真实标签),和软知识蒸馏损失。Lreg是边界框损失,结合了平滑的L1损失和论文新提出的教师边界L2回归损失。最后,Lhint代表提示基础损失函数,它激励了学生去模仿老师的特征反应,表达。

总结,λ和γ是超参数,用来控制不同损失的平衡.本研究中设为1和0.5,是根据经验设定的.

 

3.2 带有不平衡类别的分类的知识蒸馏

带有知识蒸馏的卷积网络已经被提出用于训练分类网络,其中教师网络的推理被用来训练学生模型.假如我们有数据集{xi,yi},i1,2,…n,xi是输入图像,yi是分类标签。

让t作为教师模型,Pt=softmax(zt/T),是他的预测,Zt是他的最终得分输出。T是一个温度参数,通常设为1。类似的,可以定义Ps=softmax(Zs/T)作为学生网络s,学生s可以用以下损失函数来训练优化

 

 

 

Lhard是硬损失,使用的是真实标签,Lsoft是使用教师网络预测值的软损失,μ是平衡软硬损失的参数,我们知道更深的老师模型可以更好的拟合训练数据,并且在测试集中表现更好,软标签包含了由老师模型发现到的不同类别的关联信息。通过从软标签中学习,学生网络可以继承这些隐含的信息。

软硬损失都是使用的交叉熵损失,但是与简单分类问题不同的是,检测问题需要处理不同类别之间更加严重的不均衡问题,也就是,背景占了主要位置。在图像分类中,唯一的错误可能就是与前景的错误区分。但是,在目标检测中,无法区分背景和前景可以控制误差,而在前景类别之间进行错误分类的频率相对很少。为了解决这一问题,论文引入了类别权重交叉熵作为蒸馏损失。

 

 

其中对背景使用了大的权重,给其他类别一个相对较小的权重;

例如,用背景使用了w0=1.5,wi=1用于其他类型在pascal数据集的实验中。

 

当Pt与硬标签非常相似的时候,对于一类与1非常接近,另一类与0非常接近,温度参数T被引入用来软化输出。使用更高的温度会让教师模型t产生更软的目标,所以,有接近与0的概率的类别不会被损失函数忽略。这特别适合于简单任务,例如小数据集的分类问题。但是对于预测误差已经非常高的更难的问,一个大的温度T会引入更多的噪声,这将有害于学习。因此,低的问题被用在了大数据集的分类问题中。对于甚至更难的问题,如目标检测,我们发现在所有的蒸馏损失中使用无温度参数(也就是T=1)表现最好。

 

3.3 带有教师边界的回归知识蒸馏

除了分类层,大部分基于目标检测器的现代神经网络也使用了边界框回归去调整输入的候选框的位置和大小。通常,学习一个好的回归模型对于保证目标检测精度至关重要。同离散类别知识蒸馏不同,由于实际回归值的输出是无边界的,老师的回归输出可以给学生模型带来非常大的误导。此外,老师模型也可能提供与真实方向完全相反的回归方向。因此,与直接使用教师回归作为目标输出不同的是,论文利用其作为学生实现的一个上界。通常情况,学生模型的回归值矩阵需要尽可能的与真实标签接近,但是一旦学生模型的质量在一定程度上超过了老师,我们就不再为学生提供额外的损失。我们称这个教师边界回归损失Lb,用来计算回归损失Lreg,如下所示:

 

 

 

其中m是余量,yreg表示真实回归值,Rs学生网络的回归输出,Rt是老生模型的预测值,v是一个权重系数(文中的实验中设为0.5),这里,LSL1是平滑L1损失,教师边界损失Lb只在学生的误差大于老师的时候才惩罚网络。注意尽管我们在Lb中使用L2损失,一些其他损失如L1,smmothL1也可以与Lb结合。我们的组合损失激励了学生去更接近或者更好于老师在回归项中,但一旦达到老师的表现,就不会对学生产生太大的推动作用。

3.4 具有适应性的提示学习

蒸馏迁移知识仅仅使用了最后输出。在[34],Romero等 证明使用教师的中间表示作为提示可以帮助训练过程并提高学生的最终表现。他们使用V和Z 的L2距离

 

其中,Z表示我们在教师网络中选择的作为提示信息的中间层,V表示学生网络中的指导输出,我们也用L1损失评估

 

当运用提示学习,学生网络和教师网络的神经元树木需要对应相同。为了使得提示层和指导层的通道数相同,我们在指导层后添加了适应器,他的输出尺寸同提示层的输出相同。

 

4、实验

在这一节,首先介绍了实验中使用的教师和学生CNN模型,和数据集。不同数据集的整体结果在4.1展示。我们将我们的方法运用到更小的网络和更低质量的输入在4.2节,第4.3节描述了三种不同成分的消融研究,即分类/回归、蒸馏和提示学习。蒸馏和提示学习的见解在4.4节讨论,我们请读者参阅补充材料以了解更多细节。

数据集:KITTI,PACAL VOC20007,MSCOCO,ImageNet DET benchmark (ILSVRC 2014)。在他们中,kitti和pascal是相对较小的数据集,包含了更少的目标种类和标注图像,而COCO和ILSVRC是较大尺寸的数据集。尽管kitti和ILSVRC2014 不提供测试数据集的真实标签,我们使用了【39】【24】中的训练和分割用来分析。对于所有数据集,我们遵照了pascal voc的惯例,使用Iou=0.5的mAP来评价不同的模型。对于MSCOCO数据集,除了pascal voc度量尺度外,我们还报告了他的自身评价尺度,验证了IOU从0.5:0.05:0.95的mAP。

 

在本实验中教师和学生模型用标准CNN结构定义的,包含了普通的卷积层,全连接层,以及ReLU损失函数,dropout层,和softmax层。我们选择了一些流行的CNN架构作为我们的学生/老师模型,名称为ALexNet,AlexNet with Tucker Decomposition [26], VGG16 [37] and VGGM ,我们对教师-学生模型队使用了两种不同的设置。第一种设置实验中,我们使用了一个小的网络(包含了更少的参数)作为学生,使用了一个大模型作为老师,例如AlexNet作为学生,VGG16作为老师。第二种设置的实验中,我们给学生网络使用了小的输入图像尺寸,对教师网络使用了较大的输入图像尺寸,并且保持了网络结构的相同。

 

 

4.1整体表现

表4.1显示了使用不同教师指导架构,在4个不同数据集上不同学生模型的mAP。对于没有教师监督的学生模型,我们训练他们得到了我们可以达到的最好数字。不出所料,带有更多参数的更大更深的模型比更小更浅的模型要表现的更好,尽管小模型比大模型跑的更快。

 

 

 

带有知识蒸馏和提示学习的学生模型表现显著提高,在所有不同组合和数据集中,尽管教师和学生网络结构不同。对于具有一定尺寸(参数数量)的学生模型,从0开始训练或者自身微调都不是最佳选择。从更好的老师中获取帮助,能产生更大的提高使其接近老师的表现。更深的网络作为老师导致更好的学生表现,表明了从更好的老师中的迁移的知识更有用。注意到在怕撒出来数据集下,Tucker模型在VGG16下训练比Alexnet下达到了显著更高的准确度,

 

此外,同[38]相似,我们研究了另一种学生-老师模式,学生和老师模型共享同一种网络架构,而对学生的输入缩小,对教师的输入保持高分辨率。近期的研究【1】报告了图像的分辨路严重的影响目标检测的表现。另一方面,对输入大小进行二次向下采样可以减少卷积资源,提高计算速度。在表2中,在pascal voc数据集中,对学生模型缩小输入尺寸到一半,对教师模型使用原始分辨率,我们得到了几乎和高分辨率的教师模型相同的准确度,而速度却快了约2倍。

 

 

4.2 压缩模型中的速度-精度权衡

从众多候选模型中选择CNN模型是可行的,以达到速度和准确性的平衡,尽管如此,现成的CNN模型仍然不能满足人们的计算需求。设计新的模型是一种选择。但是它通常需要大量的设计和训练。更重要的是,训练好的模型通常为特定任务设计的,遇到新的问题但是速度和精度权衡可能会发生改变,这种就要为新的任务训练新的模型。再所有这种情况下,蒸馏成为了一种有吸引力的选择。

 

为了用知识精馏的方法理解目标检测中速度-精度的权衡,作者用Tucker分解改变Alexnet的压缩比(权重矩阵的秩)。作者使用CNN的FLOPS来衡量压缩比。表3中的实验显示了,当网络被压缩太多,精度急剧下降,例如,当压缩比例未20%,精度从57.2%下降到30.3%。尽管如此,对于压缩网络,本文的蒸馏框架可以修复大量的精度损失。例如,对于37.5的压缩,原始压缩网络近达到54.7。相反的是,本文提出的用更深的老师(VGG16)方法提高到了59.4%,这比没有压缩的AlexNet模型的57.2还要更好。

 

4.3Ablation Study

如表4所示,本文比较了不同的蒸馏和提示学习策略,以突出本文提出的新损失的有效性。在本节的所有实验中,本文选择了VGG16作为老师模型,Tucker作为本文的学生模型。其他选择也反映了类似的趋势。回想一下,提案分类和边界框回归是Faster-RCNN框架中的两项主要任务。传统的,分类问题和交叉熵损失被联系在一起,在表4中用CLS表示,边界框回归通常用的L2损失,用L2表示。

为了防止具有小概率的类别被目标函数忽略,带有更高温度的软标签,也被称为权值交叉熵损失,在3.3中被提出用于候选框分类任务,本文比较在(3)中被定义的权值交叉熵算好,在表4中用CLS-W表示与标准交叉熵损失(CLS),以获得稍微更好的表现在PASCAL和KITTI数据集上。

对于边界框回归,直接模仿教师的输出会收到标签值的噪点影响。一个提高方法在3.3中通过(4)被提出,其中教师预测被用来作为边界来引导学生。该策略,在表4中用L2-B表示,该策略在L2上提高了1.3%。注意,1%的目标检测任务改进被认为是非常重要的,特别是在具有大量图像的大规模数据集上。

 

 

此外,作者发现3.4节提出的适应层对于隐层学习非常重要。即使来自教师和学生模型的层有相同数量的神经元,他们几乎从来没有在相同的特征空间。否则,将学生的后续结构设置为与教师的相同,学生将获得与教师相同的结果。因此,直接匹配学生层和教师层[2,3]的效果不太好。我们提出增加一个适应层,将学生层特征空间转移到对应的教师层特征空间。因此,从teacher特征中惩罚student特征的定义更好,因为它们位于同一空间,表4的结果支持这一点。带有适应层,适应学习(hint-A)与传统方法相比展现了1.1%的优越性。我们提出的整体方法(L2-B+CLS-W+Hint-A)超过没有自适应隐层学习1.0%。再一次显示了带有适应期的隐层学习的显著优点。

 

4.4 讨论

这一节,本文对蒸馏和暗示学习提供了进一步的见解。表5比较了在PASCAL和COCO数据集下,Tucker模型在VGG16下的学习的的训练验证和测试集精度。总的来说,蒸馏主要提高了学生的泛化能力,而提示学习有助于提高训练和测试的准确性。

 

 

 

蒸馏提高泛化能力:

与[20]中讨论的图像分类情况相似,在目标检测任务中,标签之间也存在结构关系。例如,Car(汽车)和Truck(卡车)比Person(人)有更多相似的视觉特征。这些结构信息在真实标准中无法获取。因此,将通过高能力教师模型学习到的关系信息注入到学生身上,将有助于提高检测模型的泛化能力。

隐层对学习和泛化都有帮助:

作者注意到欠拟合在目标检测中是一个非常普遍的问题,甚至在CNN基础的模型,与简单的分类案例可以很容易获得完美的训练精度不同的是,检测器的训练误差与完美还有很大距离。学习算法似乎受到鞍点问题[8]的影响。相反,通过在中间层直接提供指导,提示可以提供有效的指导来避免问题。通过提示学习得到的模型在训练和测试精度上都有了显著的提高。

最后,通过结合蒸馏和提示学习,训练准确率和测试准确率都比基线显著提高。表5经验地验证了用于目标检测的PASCAL和MS COCO数据集的一致趋势。作者相信本文的方法也可以推广到其他同样面临概化或拟合不足问题的任务。

 

5总结

本文提出了一种新的基于CNN的紧凑、快速的目标检测器学习框架。采用高度复杂的检测模型作为教师指导高效学生模型的学习过程。

结合知识蒸馏和提示框架与本文新提出的损失函数一起,本文演示了在各种实验设置上的一致改进。

值得注意的是,使用本文的学习框架训练的紧凑模型的执行速度明显快于在PASCAL dataset中几乎没有精度妥协的教师。我们的实证分析揭示了对象检测器学习中存在的拟合不足问题,这可以为该领域的进一步发展提供很好的见解。

这些工作是陈国斌在美国加州库比蒂诺苹果总部NEC实验室实习的一部分。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值