增量小样本检测模型Sylph: 从小样本中学习新类别

释放双眼,带上耳机,听听看~!
本文介绍了一种名为Sylph的增量小样本检测模型,该模型能够灵活适应新类别的引入,并且不会忘记以前见过的类别。作者通过对Sylph的设计进行广泛评估,证明了其在小样本学习任务中的有效性。

  携手创作,共同成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第 9 天 arxiv.org/abs/2203.13…

1. 简介

  虽然深度学习的进步促进了计算机视觉的重大发展,但这种成功在很大程度上依赖于大规模的数据收集和标注。这是一个既费力又费时的过程,而且不能很好地适应类别的数量。对于目标检测尤其突出,尤其是对于数据可能更加稀缺的目标类别的长尾。因此,小样本学习目标检测器 (FSD) 成为了最近的研究热点。虽然仅从几个样本中学习新类是一个具有挑战性的问题,但通过利用具有丰富数据的已知类 (通常称为基类) 可以使任务变得更加简单,其结构可以用作知识转移的先验。之前为数不多的 FSD 工作主要通过两种方式来解决这个问题,第一个是微调,模型首先在基类上进行预训练,然后在来自基类和新类的一个小的平衡数据集上进行微调,这是一种 test-time 训练的形式。尽管它比较简单,但由于它的计算和内存需求,将很难扩展到许多现实世界的应用。另一种策略是采用元学习方法,元学习方法将这个问题定义为 “学会学习”,间歇性地训练模型以诱导对新类别的快速适应。

   然而,许多 FSD 方法专注于仅检测新类别的有限设置,这些方法通常无法在基类上保持原始检测器的性能,或者会忘记最初训练的检测器性能。鉴于现实世界不断变化的性质,机器学习系统的一个理想特性是能够逐步学习新概念而无需重新访问以前的概念,并且不会忘记它们。人类可以实现这样的壮举,学习新概念不仅不会忘记,而且还会重复使用这些知识。传统的监督学习与增量数据作斗争,往往会遇到灾难性的遗忘。另一种方法是在每次新概念出现时研究所有可用的数据,通常称为 “联合训练”,但这种范式会导致开发周期缓慢,需要为新概念付出大量数据收集工作,并且需要进行昂贵的大规模训练 (和再训练)。

   取而代之的是,作者寻求一种目标检测模型,该模型能够以快速、可扩展的方式从小样本中学习新类别,又不会忘记以前见过的类别,这种设置通常称为增量小样本检测 (iFSD)。ONCE 是 FSD 的一种元学习方法,由于其基于超网络的类条件设计而特别令人感兴趣。ONCE 能够在不影响其记忆基类的能力的情况下注册新类别。作者使用了与 ONCE 相似的基本检测器和超网络结构,但有几个关键的设计差异:(1) ONCE 和其他几个最近的工作一样,试图直接产生 (通过训练或超网络) 定位回归模型的参数,该模型将查询样本 feature maps 转换为输出 bounding boxes,所有这些都来自少数可用的训练样本。作者发现这是不必要的并且可能是有害的,因为可以通过将定位和分类解耦来显著简化任务。为了实现这一目标,作者利用了一个基础检测器,该检测器具有在丰富的基类数据上预训练的与类别无关的定位能力。(2) 研究了类条件超网络的行为,对类条件超网络的结构进行了一些关键的修改,并对预测参数进行了归一化处理,提高了预测精度。这样形成了一个可以从小样本中快速适应类别长尾问题的架构,作者将这个框架命名为 Sylph,架构如图1。对此,作者进行了广泛的评估,从经验上证明了这样设计的好处,表明了 Sylph 在所有报告的数据集和评估机制中都要比 ONCE (本文的主要基线) 更加有效。特别是在具有挑战性的 LVIS 小样本学习基准上,展示了比基线表现高出 8%。

增量小样本检测模型Sylph: 从小样本中学习新类别

2. 方法

  作者寻求一种可以在增量小样本检测 (iFSD) 设置中运行的模型:一种可以灵活地适应仅从几个示例中按顺序引入新类的检测器,又不会忘记任何以前见过的类别。这里将这种 连续iFSD 与 批量iFSD 区分开来,其中新类是批量添加的。

2.1 Sylph

   为了实现 iFSD 的既定目标,作者引入了 Sylph,这是一个可以快速增加新类检测能力的框架。而不需要对模型参数进行任何额外的优化。Sylph 由两个主要的组件组成 (如图1):(1) 一个基础目标检测器,对具有高召回率的图像中的表面显著目标进行类别不可知的定位;(2) 一个小样本超网络,为每个二值分类器提供类特定参数。

2.1.1 目标检测器

   现代目标检测器通常由一个卷积backbone 和 一个检测头组成。给定一个图像,前者产生高级 feature maps,然后检测头可以使用它来预测类别和位置,由 bounding box 来指定。许多检测模型并行执行这两个任务,根据相同的特征预测类别和 bounding box 坐标。最终的回归和分类层是基于区域的检测中的全连接层或密集预测中的卷积层。对于 N 路分类问题,分类器的参数通常为 softmax 生成 N+1 个 logits,对应于 N 个类别和背景。同时,bounding box 回归器的参数包含 N 个堆叠权重,每个类别一个;具有最高预测分数的决定了选择哪个回归器的预测。 为了使目标检测器支持具有挑战性的 iFSD 设置,做出了几个关键的设计选择,这些选择影响到了检测器的两个主要输出:分类和定位。

   Incremental Classification Without Forgetting 造成灾难性遗忘的一个主要的因素是高度非独立同分布。具有共享分类头的顺序训练,优化 softmax 会导致破坏性梯度,从而覆盖先验知识。因此,作者用许多基于二元 sigmoid 的分类器替换了单个基于 softmax 的分类器,每个类都由其自己的参数集单独处理。当使用 focal loss,sigmoid 分类器已被证明与单个 softmax 分类器一样有效。因此,当添加新的类别时,可以训练或生成一组新的分类器参数。结合之前的参数预测所有可用的类时,每个类的预测分数之间的干扰为零。

   Class-agnostic Bounding Box Regressor 以前的小样本目标检测方法倾向于学习每个类别的框回归器和分类器。但是,当只有几个示例可用于学习时,该模型几乎没有机会为每个新类学习自定义位置回归器。取而代之的是,使用单个类别不可知的框回归器对所有类别的基础目标检测器进行预训练。如果在大规模数据集上进行预训练,这种方法已经被证明可以很好的应用于 zero-shot 目标检测,并且还可以利用开放世界检测文献中的技术。通过减少以少量或连续方式学习定位的需要,咱们可以将问题视为小样本分类任务,并只专注于生成额外的分类器参数。咱们可以使用 FCOS 来满足上述两个目标,这是一种简单的单级 anchor-free 目标检测器。通过这些设计选择,咱们将小样本新类检测问题解耦为定位和小样本分类的连续任务,大大简化了它。

2.1.2 小样本超网络

  通过与类别无关的目标检测器来处理定位问题,将问题简化为小样本分类问题。超网络被模块化为三个组件:支持集合特征提取、代码预测 以及 代码聚合和归一化。

   Support Set Feature Extraction 第一阶段支持从 episode 支持集中提取特征。基础检测器共享相同的卷积主干,以获得每个支持集图像的特征,因为它可以在正常批量训练中使用基础检测器进行预训练。然后使用 ROIAlignV2 提取与每个类的每个实例的位置相对应的特征。选择在特征级别而不是图像级别进行裁剪,因为特征具有更大的感受野,从而允许增加全局上下文。ROIAlignV2 为每个目标实例生成一个固定大小的特征。

   Code Predictor Head (CPH) 代码预测器头 (图2) 有一个共享的子网络组成,该网络由 3×3 卷积层组成,这些卷积层和组归一化和 ReLU激活函数交错,后面再接一个用于预测权重和偏差的层。权重和偏差预测层之后的全局平均池化用于将预测权重降低到最终维度。虽然超网络能够预测任意大小的权重,但咱们选择 k=1 的 kernel size,以便于生成的权重可以用作 卷积层或线性层权重,从而与基于区域的检测和密集检测相兼容。

增量小样本检测模型Sylph: 从小样本中学习新类别

   Code Process Module (CPM) 在 CPM 中,将来自 CPH 的一个类的所有样本的预测参数聚合到一组权重和偏差中,作者发现权重和样本偏差的简单平均值是有效的。但是,直接采用这种形式的类代码会导致梯度爆炸,尤其是在输入特征和最终预测器头之间堆叠多个卷积层时。如图4所示,梯度裁剪可以提供帮助,但有时模型仍然不能够很好的收敛,导致模型精度的高方差。

增量小样本检测模型Sylph: 从小样本中学习新类别

   咱们的权重在这个阶段从输入的支持集特征生成,这比分类器权重更接近于特征图。为此,咱们要避免将权重直接传递给条件分类器。受 L2 归一化特征嵌入在 zero-shot 目标检测参数化分类器中的成功启发,作者探索了将权重进行 L2归一化,沿通道轴进行归一化 (与批归一化相反),以确保不同类别的权重不会相互作用。通过标准化,将支持集特征映射到单位球面上,简化了学习并且稳定了训练。

2.2 训练和评估细节

  为了训练基础检测器和超网络,Sylph 框架需要两个训练阶段:预训练基础检测器 和 学习超网络。

Base Object Detector Pretraining 首先在基类上使用批量随机梯度下降预训练基础检测器,优化分类和 bounding box 回归损失,并选择 FCOS 作为基础检测器。在预训练过程中产生训练参数 θ 和 φ,以及类别无关的 box 回归参数 β,和基类的类代码。因此,在这个阶段结束时,会有一个检测器能够在图像中为基类和潜在的新类生成 bounding boxes。

   Meta-training 在元训练期间,通过采样一组 Nx(K+1)图像 和 bounding box元祖(I,b) 来创建 N 个类别的小样本集、一个NxK个样本的支持集 和 一个包含 Nx1个样本的查询集。查询集用作基础检测器的输入,在这个阶段只计算来自分类分支的 focal loss。这个阶段主要是训练小样本超网络,使其能够映射到一组新的合成类代码以进行分类。冻结了 FCOS 分类子网络中除了四个卷积层之外的整个基础目标检测器,并将其初始分类器替换为咱们的条件分类器,该分类器能够采用合成的类代码对查询图像特征进行预测。发现在基础检测器中微调这些额外的卷积层比不微调它们会产生更加好的整体性能。在初步实验中发现,在预训练中初始化的组件/层越多,最终的基类 AP 越好。

Meta-testing 为了评估模型在所有类中的性能,从整个集合中对每个类选取 K 个样本,并通过超网络一次一个类进行前向传递以合成类代码。使用生成的代码,基础检测器能够以与普通检测器相同的推理速度和行为进行推理。这种模型设置称之为 Sylph。

3. 实验

  在 LVIS-v1 eval split 上进行了基准测试,结果如表1。

增量小样本检测模型Sylph: 从小样本中学习新类别

   在 COCO 数据集上进行了基准测试,在 minival 数据集上进行了评估,结果如表2。

增量小样本检测模型Sylph: 从小样本中学习新类别

   进行了 Sylph 在 LVIS 数据集上建模选择的消融实验,结果如表3。

增量小样本检测模型Sylph: 从小样本中学习新类别

   图3展示了 Sylph 元训练中基类数量的影响。

增量小样本检测模型Sylph: 从小样本中学习新类别

   表4展示了训练配置对 Sylph 框架的影响。

增量小样本检测模型Sylph: 从小样本中学习新类别

   表5展示了通过不同微调方法在新集合上精度的比较。

增量小样本检测模型Sylph: 从小样本中学习新类别

4. 总结

   作者介绍了 Sylph,这是一个目标检测框架,能够以持续的方式从几个实例扩展到新的类,而无需任何训练。作者凭经验验证了设计选择 可以带来有效的训练和更加高的准确性,首次表明没有 test-time 训练的 iFSD 可以在 LVIS 等大规模数据集上实现接近基于微调方法的性能。虽然将 Sylph 视为对现有方法的改进,但也存在局限性。尽管已经证明,预训练与类别无关的检测器可以以高召回率识别新目标,但它并非绝对可靠,并且仍然依赖于大规模数据集。若是由于标注错误 或 不在标签集中的类产生未标记的目标 可能会导致数据集中出现假阴性,这可能导致模型无法正确识别此类目标。此外,融合支持集特征的更加复杂的聚合方法也可能需要进一步的改进。 

5. 参考

  [1] Sylph: A Hypernetwork Framework for Incremental Few-shot Object Detection.

  好了,以上解读了 一种用于增量小样本目标检测的超网络框架 Sylph。希望我的分享能对你的学习有一点帮助。

 【公众号传送】

《Sylph | 一种用于增量小样本目标检测的超网络框架》

增量小样本检测模型Sylph: 从小样本中学习新类别

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

PyTorch : Distributed Data Parallel 详解

2023-12-15 7:34:14

AI教程

解读《Representation Degeneration Problem in Training Natural Language Generation Models》

2023-12-15 9:15:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索