举一隅而以三隅反,MMFewshot 带你走近少样本分类

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

随着深度学习的兴起,机器学习算法通过大量的训练数据,在各个领域取得了非常好的性能,但是在数据十分稀缺,或者难以收集时,模型往往无法达到令人满意的性能。


为了解决这一问题,少样本学习(Few Shot Learning)通过利用先验知识,使得机器学习算法能够在少量的样本上进行学习。


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


今天,OpenMMLab 为填补这一空白隆重推出 MMFewShot !

640.png

(才不是!——)


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


目前,MMFewShot 代码库已经全面开源


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



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


MMFewShot 则包含了如下特点

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


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


支持多种数据采样逻辑;


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


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


强大的基准模型


在 MMFewShot 中,我们复现的部分少样本分类和检测算法,超过官方公布精度。同时我们还对早期的一些少样本检测算法配置进行调整,使得模型远超当时的实现结果


例如,TFA 模型在 VOC Split1 数据集上的 1shot 到 10 shot 的评价结果,均高论文公布结果(*)

640.png

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

640.png


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



同 OpenMMLab 其他算法库一样,我们使用统一框架和模块化设计实现了各个算法。


一方面可以尽量实现代码复用,另一方面,方便大家基于此框架实现新的算法。


以下是 MMFewShot 的大致框架

640.png

MMFewShot 由 4 个部分组成,datasets、models、core 和 apis:


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


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


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


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


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

640.png

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


文章来源:公众号【OpenMMLab】

2021-11-24 11:58


目录
相关文章
|
Ubuntu Linux
【Ubuntu系统内核更新与卸载】
【Ubuntu系统内核更新与卸载】
1114 0
|
8月前
|
人工智能 运维 自然语言处理
大模型+运维:让AI帮你干脏活、累活、重复活!
大模型+运维:让AI帮你干脏活、累活、重复活!
873 19
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
DeepMesh:3D建模革命!清华团队让AI自动优化拓扑,1秒生成工业级网格
DeepMesh 是由清华大学和南洋理工大学联合开发的 3D 网格生成框架,基于强化学习和自回归变换器,能够生成高质量的 3D 网格,适用于虚拟环境构建、动态内容生成、角色动画等多种场景。
659 4
DeepMesh:3D建模革命!清华团队让AI自动优化拓扑,1秒生成工业级网格
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
3354 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
机器学习/深度学习 人工智能 文字识别
MMMU华人团队更新Pro版!多模态基准升至史诗级难度:过滤纯文本问题、引入纯视觉问答
【10月更文挑战第12天】多模态理解是人工智能的重要研究方向,华人团队改进了现有的MMMU基准,推出MMMU-Pro,以更严格地评估模型的多模态理解和推理能力。MMMU-Pro通过过滤纯文本问题、增加候选选项和引入纯视觉问答设置,提高了评估难度。实验结果显示,模型在MMMU-Pro上的性能明显下降,但CoT推理有助于提升表现。MMMU-Pro为多模态理解提供了更严格的评估工具,但也面临一些挑战。
403 1
|
并行计算 数据挖掘 PyTorch
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
【YOLOv8改进 - 特征融合】DySample :超轻量级且高效的动态上采样器
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
871 1
|
缓存 监控 NoSQL
深入解析数据库性能优化:策略与实践
【7月更文挑战第23天】数据库性能优化是一个复杂而持续的过程,涉及硬件、软件、架构、管理等多个方面。通过本文的介绍,希望能够为读者提供一个全面的性能优化框架,帮助大家在实际工作中更有效地提升数据库性能。记住,优化不是一蹴而就的,需要持续的观察、分析和调整。
|
机器学习/深度学习 自然语言处理 并行计算
【YOLOv8改进 -注意力机制】Mamba之MLLAttention :基于Mamba和线性注意力Transformer的模型
YOLOv8专栏探讨了该目标检测模型的创新改进,包括使用Mamba模型的线性注意力Transformer变体,称为MLLA。Mamba的成功关键在于遗忘门和块设计,MLLA结合了这些优点,提升了视觉任务的性能。文章提供全面分析,并提出MLLA模型,其在效率和准确性上超过多种视觉模型。论文和代码可在提供的链接中找到。MLLA Block的代码示例展示了如何整合关键组件以实现高效运算。更多配置详情见相关链接。
|
XML 数据可视化 算法
目标检测YOLO数据集的三种格式及转换
目标检测YOLO数据集的三种格式及转换