科研动态

Dynamics

首页 >  科研动态 > 新闻  >  详情

OpenMMLab推出MMFewshot少样本算法库

随着深度学习的兴起,机器学习算法通过大量的训练数据,在各个领域取得了非常好的性能,但在数据十分稀缺或难以收集时,模型往往无法达到令人满意的性能。为了解决这一问题,少样本学习(Few Shot Learning)通过利用先验知识,使得机器学习算法能够在少量的样本上进行学习。

近年来,少样本学习逐渐成为学术界和产业界的研究热点,同时它已经从最基础的图像分类任务开始向不同任务扩展。但遗憾的是,一直没有通用的算法库来服务各类少样本任务算法的研究。

现在,为了填补这一空白,OpenMMLab 隆重推出了 MMFewShot !

MMFewShot 对当下流行的基于深度学习的少样本分类与检测算法,提供了统一的训练、推理、评估的算法框架。其具有简洁的用户接口与高效、强大的基准模型,部分实现精度超出官方版本。此外,MMFewShot 延续了 OpenMMLab 系列的模块化风格,继承了高度灵活的 config 功能少样本算法库。

MMFewShot代码库已经全面开源。GitHub链接:https://github.com/open-mmlab/mmfewshot

【首个支持分类与检测的开源少样本算法库】

少样本学习由于问题设定的需要,往往会通过随机采样少量数据,来对模型的泛化性进行评估。并且许多算法需要通过多个阶段,或繁琐的操作来对数据进行交互。这两点为代码复现、借鉴、公平对比都带来了很大的困难。

MMFewShot 则包含了如下特点:

  • 8 种少样本分类算法,包括了 Baseline++、MatchingNet、ProtoNet、RelationNet 等;

  • 6种少样本检测算法,包括了 TFA、FSCE、MetaRCNN、AttentionRPN 等;

  • 支持多种数据采样逻辑;

  • 对于少样本分类任务,支持 DistributedDataParallel 进行多卡训练以及 Meta Test;

  • 对于少样本检测任务,给出了不同算法在同一设定下统一的评价指标。

【强大的基准模型】

在 MMFewShot 中,我们复现的部分少样本分类和检测算法,超过官方公布精度。同时我们还对早期的一些少样本检测算法配置进行调整,使得模型远超当时的实现结果。例如,TFA 模型在 VOC Split1 数据集上的 1 shot 到 10 shot 的评价结果,均高于论文公布结果(*)。

图1.png

再如,我们复现并调整了 Meta RCNN 的训练策略,从而使得在统一评价的设定下远超当时论文公布的结果(*)。

图2.png

【模块化设计和丰富灵活的配置文件】

同 OpenMMLab 其他算法库一样,我们使用统一框架和模块化设计实现了各个算法。一方面可以尽量实现代码复用,另一方面,方便开发者基于此框架实现新的算法。

以下是 MMFewShot 的大致框架:

图3.png

MMFewShot 由 4 个部分组成:Datasets、Models、Core 和 APIs。

Datasets 用于数据集加载和预处理,其中包含训练所需的数据集,数据增广的 pipelines 以及负责数据采样的 dataset wrapper 和 dataloader wrapper;

Models 是最重要的部分,算法模型在这里实现;

在 APIs 中,我们为模型训练、测试和推理提供一键启动的接口;

Core 中实现了用于模型的评估工具和定制的 hooks。

在配置文件方面,得益于 OpenMMLab 强大且高度灵活的 cfg 模式和注册器机制, MMFewShot 在不改动代码只编辑配置文件的情况下,便可实施消融实验。

计算机视觉领域中常规的分类、检测等任务的算法和框架已日臻成熟,在这些任务上进行少样本学习,目前还有许多亟待解决的问题,希望 MMFewShot 能够成为该研究领域的基础设施,降低该领域的研究门槛。




comm@pjlab.org.cn

上海市徐汇区云锦路701号西岸国际人工智能中心37-38层

沪ICP备2021009351号-1