作者 | 张曼黎

编辑 | 陈大鑫

深度神经网络往往要求为每个新任务收集大量标记训练数据,实用性也因此受到限制。给定来自一组源任务的数据,有两种迁移学习方法可以克服这种限制:小样本学习 (FSL) 和自监督学习 (SSL)。前者通过在源任务中设计元集(episode),模拟使用少量标记样本解决新任务的挑战,从而学习“如何学习”。相比之下,后者在所有源任务中利用无标注的代理任务来学习可泛化的特征表示。

AI科技评论今天为大家介绍一篇来自人民大学高瓴人工智能学院卢志武老师实验室团队提出的模型,论文已于被ICLR 2021接收。

本文提出了一种新的实例级和元集级代理任务 (IEPT) 框架,将 SSL 紧密集成到 FSL 中。大量实验表明,本文提出的模型(即带有 IEPT 框架的 FSL)进一步实现了先进的小样本分类性能。

论文地址:
https://openreview.net/pdf/a68102247933495b5b77811b3b5299cf97a108f4.pdf

开源代码:
https://github.com/rucmlcv/IEPT_FSL

1 背景介绍

深度卷积神经网络 (CNN)在广泛的应用领域取得了巨大成功,尤其是在视觉识别方面。然而,CNNs强大的学习能力依赖于大量人工标注的训练数据。在实践中,对于许多视觉识别任务,足够的手动注释要么收集成本太高,要么不可行(例如,对于稀有对象类),这严重限制了 CNN 在实际应用场景中的实用性。最近一系列工作尝试从两个不同的角度减轻这种限制,产生了两个流行的研究方向:小样本学习(FSL)和自监督学习(SSL),这两个方向都旨在将从一组源任务的数据中学到的知识转移到新的目标任务上。

FSL通常采用元学习范式,它旨在学习一种从少数标记样本中学习的算法,该算法在新的任务中能很好地泛化。为此,它采用了一种元集训练策略——源任务被安排成学习元集,每个元集包含 n 个类和每个类的 k 个标记样本,以模拟目标任务的设置。然后对 CNN 模型的一部分(例如,特征提取子网、分类层或参数初始化)进行元学习,以快速适应新任务。

SSL则不需要对源数据进行标注,而是利用源任务数据上的无标注代理任务,希望可以从源任务中学习任务可泛化的特征表示,以便在目标任务中快速适应。这样的代理任务在实例级别获得自我监督的信号,例如旋转和上下文预测、拼图求解和着色。

由于 FSL 和 SSL 都旨在通过从一组源任务转移知识,从而减弱为目标任务收集大量标记训练数据的需要,因此本文考虑将它们组合在一个框架中。实际上,最近的两项工作[1, 2]提议通过在 FSL 模型中添加辅助 SSL 代理任务来将 SSL 集成到 FSL 中。它表明 SSL 学习目标与 FSL 的学习目标是互补的,将它们结合起来可以提高 FSL 的性能。然而,在[1, 2]中,SSL 与 FSL 以一种表面的方式结合:它仅作为每个单独训练实例的单独辅助任务,没有影响FSL 模型“元集式”的训练过程。重要的是,忽略了样本的类标签,实例级 SSL 学习目标本身就很弱。

由于跨元集元学习是大多数当代 FSL 模型的本质,本文认为单独添加实例级 SSL 代理任务无法充分利用上述 FSL 和 SSL 的互补性,为此需要更紧密和更深入的集成。

2 本文方法

  • 问题设置

FSL分类任务以元集形式进行训练与测试,每个n-way k-shot训练元集从训练集 中随机采样而来,其中训练集的类标签空间与测试集的类标签空间没有重叠。每个元集包含一个支持集和一个查询集:从训练集中随机抽取一组n个类别,然后分别从中的每个类别抽取k个支持样本和q个查询样本生成和。

  • 基本模型

本文采用 ProtoNet [3]作为基本的 FSL 模型,该模型具有特征提取 CNN 和简单的非参数分类器。

具体地,在一个元集中,ProtoNet 固定特征提取器并计算每个类的平均特征表示:

通过计算每个查询样本的特征表示与对应类的原型特征表示之间的距离,可以优化用于元学习的损失函数:

  • IEPT框架

具体来说,给定一个 FSL 元集,我们首先对每个实例图片应用几何变换以生成扩展元集。在实例级别,转换识别任务按照标准 SSL 实现,即通过一个辅助识别分类损失。而在元集级别,本文设计了两个 SSL-FSL 混合学习目标:(1)最大化FSL 分类器对来自不同扩展元集的预测的一致性,以此作为元集级别的代理任务。(2) 聚合从不同元集的每个实例中提取的特征,以构建用于元学习的单个 FSL 分类器。

实例级SSL目标是使FSL模型学习到有效的特征表示,从而能识别不同的旋转变换,具体实现即通过交叉熵分类损失来实现。

任务级SSL目标是使FSL 分类器为不同扩展元集中的每个实例生成一致的分类概率分布,具体用KL-散度来衡量损失:

为了捕捉具有不同转换的实例之间的相关性,并了解如何最好地将它们组合起来进行元学习,本文部署了基于transformer [4]的一个实例注意模块,聚合不同转换的实例特征以形成聚合特征。

然后将聚合特征输入到 FSL 分类器以定义聚合FSL 任务的分类损失:

最后的训练损失由四部分组成,其中两者为有监督的分类损失,另两者为自监督的损失:

3 实验

本文选择了两个广泛使用的 FSL 数据集:miniImageNet [5] 和 tieredImageNet [6],均为从 ImageNet 采样的子集。

miniImageNet由总共 100 个类(每类 600 张图像)组成,训练/验证/测试拆分设置为 64/16/20 个类。tieredImageNet是一个更大的数据集,总共包括 608 个类(每个类近 1,200 张图像),分为 351/97/160 个类用于训练/验证/测试。

实验结果:我们分别采用conv4-64,conv4-512和resnet-12作为CNN骨干网络,分别在两个数据集上进行FSL分类,结果见表1。

本文将IEPT 与两组基线进行比较:(1)最近的基于 SSL 的 FSL 方法 (2) 代表性的/最新的 FSL 方法(无 SSL)。5-way 1/5-shot 两种设置的FSL的对比结果如表 1 所示。

我们观察到:

1、 与代表性/最新的 FSL 方法(无 SSL)相比,IEPT 在所有数据集和所有设置下都实现了最佳性能,验证了带有IEPT的FSL方法有效性。

2、IEPT 也明显优于仅使用实例级别代理任务的两种基于 SSL 的 FSL 方法,证明了元集级别的SSL 到 FSL 的集成的重要性。

3、IEPT 比 ProtoNet 实现了 2% 到 5%的效果提升。由于IEPT 以 ProtoNet 作为基线方法,因此获得的提升证明了 SSL 为 FSL 带来了显著收益。如表3所示,本文也证明了IEPT在细粒度 FSL 和跨域 FSL 设置上的有效性。

4 结语

本文提出了一种新的实例级和元集级代理任务 (IEPT) 框架,用于将 SSL 集成到 FSL 中。除了传统的实例级代理任务之外,我们还首次为 FSL 引入了具有自监督的元集级别代理任务。

此外,我们还通过引入集成transformer模块开发了一个扩展-集成框架,以充分利用 FSL 的扩展集。在两个基准上的大量实验表明,本文提出的模型(即带有 IEPT 的 FSL)有效性得到了验证。

[1]. Gidaris, et al. Boosting few-shot visual learning with self-supervision. ICCV 2019.

[2]. Su, et al. When does self-supervision improve few-shot learning? ECCV 2020.

[3]. Snell, Prototypical networks for few-shot learning. NIPS 2017.

[4]. Vaswani, et al. Attention is all you need. NIPS 2017.

[5]. Vinyals,et al. Matching networks for one shot learning. NIPS 2016.

[6]. Ren, et al. Meta-learning for semi-supervised few-shot classification. ICLR 2018.

ICLR 2021 | 基于自监督学习的小样本分类,代码已开源相关推荐

  1. 基于深度学习的小样本分类识别方案总结

    文章目录 1. 方案一 1.1 算法方案解析 1.1.1 赛题理解 1.1.2 模型选择:尽量使用与数据匹配的SOTA模型 1.1.3 TIM模型介绍 1.1.4 TIM模型-训练 1.1.5 TIM ...

  2. 树状图栏目切换_AAAI 2020 | 中山大学HCP实验室:基于树状结构策略的渐进强化学习,代码已开源...

    作者 | 吴捷 编辑 | Camel 本文对中山大学.北京航空航天大学.DMAI合作完成,被AAAI2020录用的一篇关于多模态视频理解的论文<Tree-Structured Policy ba ...

  3. VLM:Meta AI CMU提出任务无关视频语言模型视频理解预训练VLM,代码已开源!(ACL 2021)...

    关注公众号,发现CV技术之美 本文分享 ACL 2021 论文『VLM: Task-agnostic Video-Language Model Pre-training for Video Under ...

  4. CVPR21小样本检测:蒸馏上下文助力小样本检测(代码已开源)

    计算机视觉研究院专栏 作者:Edison_G 目标检测现在的框架越来越多,我们"计算机视觉研究院"最近也分享了众多的目标检测框架!今天我们继续分享一个最新的检测框架--YOLOR. ...

  5. ICLR 6-6-6!自注意力可以替代CNN,能表达任何卷积滤波层丨代码已开源

    鱼羊 十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 像素层面上,CNN能做的,自注意力(self-attention)也都能做. 统御NLP界的注意力机制,不仅被迁移到了计算机视觉中,最 ...

  6. 2021电赛F题视觉教程+代码免费开源

    2021电赛F题视觉教程+代码免费开源 最近好多要电赛题的源码,其他csdn营销号下载都需要会员或钱,正好最近课设又要做一遍电赛小车题,哥们先把代码开源了,饿死营销号 电赛宝藏链接: 四天三夜,那布满 ...

  7. 基于java的语义分割,NeruIPS2019 | 深圳大学提出点云语义分割框架ELGS,效果拔群(代码已开源)...

    标题:Exploiting Local and Global Structure for Point Cloud Semantic Segmentation with Contextual Point ...

  8. ECCV2022 | 人大提出轻量级基于注意力的特征融合机制,在多个公开数据集上有效!代码已开源!

    ECCV2022 | 人大提出轻量级基于注意力的特征融合机制,在多个公开数据集上有效!代码已开源! [写在前面] 本文在文本到视频检索的新背景下,作者重新探讨了特征融合这一古老的课题.与以往的研究只考 ...

  9. 清华大学提出点云Transformer!在3D点云分类、分割上表现优秀,核心代码已开源!...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 转载自:量子位 当Transformer遇上3D点云,效果会怎么样? 一个是当下最热门的模型(N ...

最新文章

  1. spring @component的作用
  2. 模糊选择器 js_5个很棒的 React.js 库,值得你亲手试试!
  3. leetcode算法题--1比特与2比特字符
  4. 结对编程之四则运算(马仪生、李瑞恒)
  5. css实现文字在横线上居中
  6. 构造函数和析构函数深拷贝和浅拷贝
  7. 前端学习资料及路线名称网站
  8. 18函数对象19command模式20函数对象在STL中的应用
  9. servlet3.0新特性_查看Servlet 3.0的新增功能
  10. TV3是马来西亚第一家商营电视台
  11. 配置 IIS 7 显示详细错误信息
  12. 【项目实施随笔】改造一下Dialog
  13. 转正答辩ppt_如何顺利完成转正答辩?
  14. grafana默认用户名密码_提升运维格调?Grafana整合Zabbix
  15. 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现系统参数配置保存,附源码...
  16. 微信H5分享、复制链接遇到的坑
  17. android动画素材下载,Android Lottie动画使用
  18. 手撸一个外卖点餐系统后台,可以写上简历的实战项目!
  19. 我是如何学习游戏引擎的?
  20. mysql数据库自动停止_解决mysql数据库自动停止方法

热门文章

  1. Window.Show()和Window.ShowDialog()区别
  2. too many levels of symbolic links的错误
  3. Windows Server 2008 R2 之部署DHCP群集 序
  4. cisco路由器基本实验之三 动态路由之RIP协议的配置(Boson NetSim)
  5. 给热爱学习的同学们推荐一些顶级的c# Blogs链接
  6. lisp提取长方形坐标_求修改lisp程序,如何提取CAD中多个点的坐标,(本人想提取UCS坐标系)另外只需要提取X,Y值,不要Z...
  7. linux虚拟机镜像_无树莓派硬件体验:虚拟机安装 Raspberry Pi Desktop 操作系统
  8. Linux学习(八)---crond 任务调度
  9. 神经网络通用近似定理
  10. 字节流与字符流的区别(good!)