首页 > 其他分享 >弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘

时间:2022-10-03 12:33:52浏览次数:83  
标签:知识 蒸馏 检测器 object 弹性 响应 增量


  ​​欢迎关注我的公众号 [极智视界],获取我的更多笔记分享​

  大家好,我是极智视界,本文解读一下 用弹性蒸馏克服增量目标检测中的灾难性遗忘

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_目标检测

  传统的目标检测不适用于增量学习。然而,仅用新数据直接对训练好的检测模型进行微调将会导致灾难性的遗忘。知识蒸馏是减轻灾难性遗忘的灵活的方法。在增量目标检测 (IOD) 中,以往的工作主要集中在提取特征和响应的组合上。然而,它们对响应中包含的信息的探索不足。本文提出了一种基于响应的增量蒸馏方法,称为 弹性响应蒸馏 (ERD),它侧重于从分类头和 响应头来弹性学习响应。(1) 首先传递类别知识,同时使学生检测器具有在增量学习过程中保留定位信息的能力。(2) 此外进一步评估了所有位置的质量,并通过弹性响应选择 (ERS) 策略提供有价值的响应。(3) 最后阐明了在增量蒸馏过程中,来自不同响应的知识应该被赋予不同的重要性。在 MSCOCO 上进行了大量的实验表明,本文的方法达到了最先进的效果,大大缩小了与充分训练的性能差距。

  论文地址:​​https://arxiv.org/abs/2204.021367​

  代码地址:​​https://github.com/hi-ft/erd​

文章目录

1. 简介

  在自然界中,生物的视觉系统可以不断获取、整合和优化知识。学习模式对他们来说本质上是增量的。相比之下,目前目标检测模型的经典训练范式没有这种能力。监督目标检测范式依赖于访问预定义的标记数据。这种学习范式隐性地假设数据分布是固定的或平稳的,但是真正真实世界的数据是连续动态的数据流,其分布是非连续的。当模型不断地从非平稳分布中获取知识时,新知识会干扰旧知识,从而引发灾难性遗忘。根据是否提供或必须推理任务 ID,研究人员将增量学习 (IL) 分为三种类型:task / domain / class IL。本文研究了目标检测中最难解决的问题:类别增量目标检测

  解决 IOD 的一种灵活的方法是知识蒸馏。《 SID: incremental learning for anchor-free object detection via selective and inter-related distillation》强调了 Tower 层能够显著减少灾难性遗忘,它们在一个 anchor-free 的检测器上实现了增量学习,并选择性地对非回归输出进行了蒸馏。然而,在未引入增量学习的目标检测知识提取中,以往的工作都是从不同组件的联合提取中获取知识。例如,《Learning efficient object detection models with knowledge distillation》和 《Distilling object detectors with task adaptive regularization》蒸馏了检测器的所有组件。然而,这些方法的本质是使用基于特征的知识蒸馏来设计的,基于响应的方法在 IOD 中还没有出现过。此外,基于响应的方法的优点在于它提供了教师检测器的推理信息。因此,针对不同响应的精心设计是必要的。

  本文研究了 IOD 中的一个实用而又具有挑战性的问题:如何从分类预测和 bounding boxes 中学习响应。目标检测中的响应包含 logits 以及 bounding box 的偏移量。首先,由于每张新图像上的 ground truth 的数量是不确定的,首先要考虑的是验证所有样本的响应,确定哪些响应是正的、哪些响应是负的,以及每个目标要向哪个响应回归。此外,如图1所示,并不是所有的响应对于防止灾难性遗忘都很重要,因此理想的状态是使用适当数量的响应节点。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_目标检测_02

  《Overcoming catastrophic for getting in neural networks》还提出了突出整合通过减少对先前学习任务至关重要的突触可塑性来实现持续学习。总而言之,作者通过约束重要的响应来保持他们在旧值附近,以引导学生检测器跟踪教师检测器对旧目标的行为。

  针对上述问题,对基于响应的知识蒸馏方法进行了反思,发现在适当的位置进行蒸馏是促进 IOD 检测效果的关键。在此启发下,作者提出了弹性响应蒸馏 (ERD),分别从分类头和回归头弹性学习响应。与以往的工作不同,在回归响应中引入了增量局部化蒸馏,使学生检测器在增量学习过程中具有学习位置模糊性的能力。此外,提出了弹性响应选择策略 (ERS),可以根据不同响应的统计特征自动选择蒸馏节点,从而评估所有位置的质量并提供有价值的响应。在本文中,解释了如何实现约束,最后如何确定哪些响应是重要的。这大大缓解了灾难性的遗忘问题,并显著缩小了与充分训练之间的差距。并在 MSCOCO 数据集上进行了大量的实验,支持了作者的分析和结论。

  作者的贡献可以概括如下:

  (1) 首次探讨了 IOD 中基于响应的蒸馏方法,剖析了 IOD 中基于特征和基于响应的蒸馏方法的本质区别。

  (2) 提出了基于统计分析的 ERD 算法,该算法分别提取了选择性分类和回归响应:基于所提出的 ERS 策略。

  (3) 在 MSCOCO 上的大量实验表明,所提出的方法达到了最先进的性能,并且可以方便地应用于不同的检测器。



2. 相关工作

Incremental Learning 灾难性遗忘是增量学习的核心挑战。基于参数约束的增量学习是解决这类问题的一种候选方法,它通过引入一个额外的参数相关的正则化项来修改梯度从而保护旧知识。 EMC 和 MAS 是这种方法的两个典型代表。另一种解决方法是基于蒸馏的增量学习。这种方法主要是通过知识蒸馏,将旧任务中的知识迁移到新任务中,实现旧知识的映射。LwF 是第一个将知识蒸馏的概念引入增量学习的方法,目的是使新模型对类似旧模型的新任务进行预测,从而以知识迁移的形式保护旧知识。但是,当新旧任务相关性较低时,会造成知识的混乱。iCaRL 算法使用知识蒸馏来避免网络中的知识的过度恶化,而 BiC 算法在 FC 层之后增加了偏差校正层,以抵消新数据在使用蒸馏损失时的类别偏差。

Incremental Object Detection 与类别增量相比,IOD 的研究较少。同时,检测任务的高度复杂也增加了增量目标检测的难度。《 Incremental learning of object detectors without catas trophic forgetting》提出了将 LwF 应用于 Faster RCNN 检测器,这是第一个在目标检测方面的工作。此后,一些研究人员将这一领域向前推进。《 SID: incremental learning for anchor-free object detection via selective and inter-related distillation》在 anchor-free 检测器上提出了用于 IOD 的 SID 方法,并在 FCOS 和 CenterNet 上进行了实验。《Class incremental few-shot object detection》在 Faster RCNN 检测器上研究了基于类别增量学习的目标检测,重点研究了 few-shot 场景,这也是 ONCE 算法的重点。《RILOD: near real-time incremental learning for object detection at the edge》设计了一种在边缘设备上使用 RetinaNet 检测器的增量目标检测系统。最新的工作《Towards open world object detection》在定义开放世界目标检测 (OWOD) 问题时引入了增量学习的概念。然而,现有的 IOD 蒸馏框架对 head 的重要作用没有给予足够的重视,而作者发现 head 在 IOD 领域具有重要意义。

Knowledge Distillation for Object Detection 知识蒸馏是模型间传递已知知识的有效方法。在以往的研究中,知识蒸馏被广泛应用于图像分类任务中,而现在,知识蒸馏被频繁地应用于目标检测任务。《Learning efficient object detection models with knowledge distillation》对 Faster RCNN 的所有组成部分 (包括 backbone、RPN 中的 proposals 和 head) 进行蒸馏。为了用学生模型模仿教师模型的高级特征响应,《Distilling object detectors with fine-grained feature imitation》提出了一种基于细粒度特征模仿的蒸馏方法。《Data-free knowledge distillation for object detection》提出了一种适用于目标检测的 data-free 蒸馏技术,但该方法会触发 dream-image。《 Distilling object detectors via decoupled features》 鉴于前景和背景在目标检测中都具有独特的作用,提出了一种前景和背景解耦的目标检测算法。《 Localization distillation for object detection》提出了一种定位蒸馏方法,将知识蒸馏引入到检测器的回归分支中,使学生网络能够像教师网络一样解决定位模糊问题。



3. 方法

3.1 动机

  IOD 的目的是将已有的知识转移到检测器中,这些知识可以是 backbone 或 neck 的中间层特征,也可以是 head 的软目标。与基于特征的方法不同,基于响应的方法可以提供教师检测器的推理信息。因此,作者通过从不同的 heads 的响应中提取知识,可以逐步学习出一个强大而有效的学生目标检测器。

3.2 总体架构

  总体架构如图2所示。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_目标检测_03

  首先,使用 ERD 从教师检测器的分类头和回归头中学习弹性响应。其次,采用增量定位损失来提高学生检测器的定位信息提取能力。值得注意的是,为了从教师检测器中获得更有意义的响应,即从教师检测器提供的响应中计算蒸馏损失,提出了 ERS 策略。学生检测器的整理学习目标定义为 公式(1)。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_04

  接下来将介绍 ERD 和 GFLV1 中的 ERS,作者将他们的方法推广到了表7中的 FCOS,这说明了方法的有效性。

3.3 分类头中的 ERD

  来自分类头的软预测依赖于教师检测器发现的各种类别的知识。 通过软预测的学习,学生模型可以继承隐藏的知识,这对于分类任务很直观。设 T 为教师模型,使用 SoftMax 将 logits CT 转换为分布,则输出概率分布 PT 定义为 公式(2)。类似地,将学生模型 S 的 PS 定义为 PS = SoftMax(CS/t),其中 t 是软化 PT 和 PS 概率分布的温度因子。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_目标检测_05

  以往的工作通常是直接利用分类头中的所有预测响应,对每个位置进行处理。如果有任何不平衡,背景类别产生的响应可能会盖过前景类别产生的响应,从而干扰旧知识的保留。这里,我们有选择地从响应中计算蒸馏损失,因此分类头的增量蒸馏损失如公式(3)。通过提取选择的响应,学生检测器逐渐继承了教师检测器的旧知识。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_06

3.4 回归头中的 ERD

  回归分支的 bounding box 响应对 IOD 也很重要。与离散类别信息相反,回归分支的输出可能提供一个与真实方向相矛盾的回归方向。即使图像不包含任何旧类别的目标,回归分支仍然可以预测 bounding box,尽管置信度很低。这对教师检测器向学生检测器传递回归知识提出了挑战。此外,在以前的工作中,只有具有高分类置信度的目标的 bounding boxes 被用作教师检测器的回归知识,而忽略了回归分支的定位信息。

  利用 GFLV1 检测器给出的 bounding boxes 分布的通用表示,通过 SoftMax 函数将 bounding box 的每条边表示为概率分布。因此,每个 bounding box 的概率矩阵可以定义为 公式(4)。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_07

  因此,咱们可以从教师检测器 T 中提取 bounding box B 的增量定位知识,并使用 KL散度损失将其传递给学生检测器 S,如公式(5)。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_增量学习_08

  最后,回归头的增量定位蒸馏损失定义为 公式(6)。值得注意的是,增量定位蒸馏提供了额外的定位信息。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_09

3.5 弹性响应选择

  如图1所示,选择所有响应会导致糟糕的性能,因此选择响应对于防止灾难性遗忘非常重要。那么一个自然的问题就出现了:如何选择响应作为蒸馏的节点。常见的选择策略依赖于敏感的超参数,如设置置信度阈值或选择 Top-K 得分。这些经验做法可能会导致小阈值忽略一些旧目标,而大阈值带来负面响应。

  为了解决上述问题,作者提出了ERS 算法,分别选择分类头和回归头响应作为蒸馏节点。

Classification head 利用统计特性来选择分类头的响应,具体来说,首先计算每个节点的置信度得分。

Regression head 统计分布信息用于选择回归头的响应。对于 FGLV1,一个明确的 bounding box 通常具有更加尖锐的分布。因此,如果分布尖锐,则 Top-1 的值相对较大。基于上述统计性质,采用 Top-1 值来度量每个 bounding box 的置信度。



4. 实验

  在表1中展示了前 40 个类和 后 40 个类场景下的增量结果。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_增量学习_10

  图3展示了不同学习方案中每个类别的 AP。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_11

  图4展示了前 40 个类和后 40 个类所有类的 AP。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_增量学习_12

  表2 (四步) 和表3 (两步) 中,两个 multi-step 设置上的每个增量 step 都大大优于微调。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_增量学习_13


弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_14

  在 MSCOCO 上验证了所提出方法在每个组件的有效性,表4中,“KD” 表示仅使用蒸馏损失而不进行选择,而 “ERD” 表示引入了选择策略。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_增量学习_15

  表5中展示了从集合 ([1,1], [1,2], [2,1], [2,2]) 中选择 α1 和 α2 的不同组合来执行训练过程所能达到的 AP。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_16

  前 40 个类的目标包含更多的信息,这意味着可以获得更加多的响应,如表 6 所示。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_17

  不同的组件的 L2 特征距离分析如图5。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_目标检测_18

  表7结果表明,无论检测器架构如何,本文的方法仍能带来稳定的增益。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_基于特征_19

  表8展示了基于特征和基于响应的解决方案之间的定量差异。

弹性响应蒸馏 | 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘_目标检测_20



5. 总结

  在论文中,作者精心设计了目标检测领域中一种基于响应的增量范式,有效地缓解了灾难性遗忘问题。首先,从分类头和回归头中学习响应,并特别在回归响应中引入增量定位蒸馏。其次,设计了弹性选择策略,以在不同的头上提供合适的响应,大量的实验验证了该方法的有效性。最后,详细分析讨论了作者提出方法的通用性 以及 增量检测任务中基于响应和基于特征的蒸馏之间的本质区别,这为该领域的进一步探索提供了见解。

  对 IOD 的研究使咱们从系统层面更加好地理解神经网络的形成机制,为终身学习机制的发展提供技术基础,最终目标是检测器可以像生物一样进行持续学习。然而,增量学习后的模型可能会导致一些隐私问题,而咱们可以通过限制训练模型的可访问性来缓解它。



6. 参考

  [1] Overcoming Catastrophic Forgetting in Incremental Object Detection via Elastic Response Distillation.

  [2] Learning efficient object detection models with knowledge distillation.

  [3] Distilling object detectors with task adaptive regularization.

  [4] Overcoming catastrophic for getting in neural networks.

  [5] Incremental learning of object detectors without catas trophic forgetting.

  [6] SID: incremental learning for anchor-free object detection via selective and inter-related distillation.

  [7] Class incremental few-shot object detection.

  [8] RILOD: near real-time incremental learning for object detection at the edge.

  [9] Towards open world object detection.

  [10] Learning efficient object detection models with knowledge distillation.

  [11] Distilling object detectors with fine-grained feature imitation.

  [12] Data-free knowledge distillation for object detection.

  [13] Distilling object detectors via decoupled features.

  [14] Localization distillation for object detection.

  [15] SID: incremental learning for anchor-free object detection via selective and inter-related distillation.



  好了,以上解读了 用弹性响应蒸馏克服增量目标检测中的灾难性遗忘。希望我的分享能对你的学习有一点帮助。


搜索关注我的微信公众号【极智视界】,获取我的更多经验分享,让我们用极致+极客的心态来迎接AI !


标签:知识,蒸馏,检测器,object,弹性,响应,增量
From: https://blog.51cto.com/u_15531854/5730095

相关文章

  • 能否手写vue3响应式原理-面试进阶
    (二)响应式原理利用ES6中Proxy作为拦截器,在get时收集依赖,在set时触发依赖,来实现响应式。(三)手写实现1、实现Reactive基于原理,我们可以先写一下测试用例//reactive.spec.t......
  • HTTP——响应数据格式
    HTTP响应数据格式   状态码分类:  常见的状态响应码:    ......
  • 弹性布局(display:flex;)属性详解
    https://www.cnblogs.com/hellocd/p/10443237.html Flexbox 是flexiblebox的简称(注:意思是“灵活的盒子容器”),是 CSS3 引入的新的布局模式。它决定了元素如何在......
  • QML 信号与响应方法的总结
    以下内容为本人的著作,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16748191.html如果面试过程中,面试官想了解你对Qt的理解有多少......
  • 学习笔记——Django项目中的请求与响应
    2022-10-01ALLOWED_HOSTS"ALLOWED_HOSTS"的含义:它是指允许放在“ALLOWED_HOSTS”的主机进行访问后端“ALLOWED_HOSTS”的说明:它一般默认是“127.0.0.1”,如果......
  • 24.弹性盒子简介
    弹性盒简介1、基本概念弹性盒flex(弹性盒、伸缩盒)是css中的又一种布局手段,它主要用来代替浮动来完成页面的布局flex可以使元素具有弹性,让元素可以跟随页面的大小的改......
  • 能不能手写Vue响应式?前端面试进阶
    Vue视图更新原理Vue的视图更新原理主要涉及的是响应式相关APIObject.defineProperty的使用,它的作用是为对象的某个属性对外提供get、set方法,从而实现外部对该属性的......
  • 能不能手写Vue响应式?前端面试进阶
    Vue视图更新原理Vue的视图更新原理主要涉及的是响应式相关APIObject.defineProperty的使用,它的作用是为对象的某个属性对外提供get、set方法,从而实现外部对该属性的......
  • 记一次服务器响应慢导致的网站卡顿问题
    最近服务器调整,也不知道运维侧操作了什么导致某个网站访问巨慢,甚至502情况记录排查过程,web服务是nginx+php-fpm 1)查看系统日志,看看是否有什么异常tail-n10......
  • 响应国家双碳战略,深度赋能数字化转型,艾特网能亮相第十三届优秀数据中心峰会
    9月28日,第十三届中国优秀数据中心峰会暨中国计算机用户协会数据中心分会第28届年会在北京召开,会议围绕“踔厉奋发笃行不怠”主题展开,设置峰会暨年会主论坛及四大分论坛,......