One-shot learning

Zero-shot learning

Multi-shot learning

Sparse

Fine-grained Fine-tune

背景:CVPR 2018收录了4篇关于小样本学习的论文,而到了CVPR 2019,这一数量激增到了近20篇

那么什么是小样本学习呢?

在机器学习里面,训练时你有很多的样本可供训练,而如果测试集和你的训练集不一样,那么这时候称为支持集support data。在测试时,你会面对新的类别(通常为 5 类),其中每个类别仅有极少量的样本(通常每类只有 1 个或 5 个样本,称为「支持集」),以及来自相同类别的查询图像。

接下来,本文将把小样本方法划分为 5 个不同的类别(尽管这些类别并没有明确的界定,许多方法同时属于不止一个类别)。

(1)度量学习。其目标是学习从一个从图像到嵌入空间的映射,在该空间中,同一类图像彼此间的距离较近,而不同类的图像距离则较远。我们希望这种性质适用于那些没有见过的类。(建立新样本和旧样本的关系)

(2)元学习。这类模型建立在当前所面对的任务的基础上,因此使用不同的分类器作为支持集的函数。其思路是寻找模型的

(3)数据增强方法。它的思想是通过数据增强的方式,从而通过少量可用的样本生成更多的样本。

(4)基于语义的方法。这类方法受到了零样本学习(Zero-shot learning)的启发,其中分类任务的完成仅仅基于类别的名称、文本描述或属性。当视觉信息稀缺时,这些额外的语义信息也可能很有用。

Revisiting Local Descriptor based Image-to-Class Measure for Few-shot Learning 基于局部描述子的图像到类度量的少图像学习

Few-Shot Learning with Localization in Realistic Settings 真实场景中的少图像定位学习

Dense Classification and Implanting for Few-Shot Learning 密集分类与植入少镜头学习

Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images 变分原型编码器:基于原型图像的一次学习

Edge-Labeling Graph Neural Network for Few-shot Learning 用于少图像学习的边缘标记图神经网络

Task Agnostic Meta-Learning for Few-Shot Learning 面向少图像学习的任务不可知元学习

Meta-Transfer Learning for Few-Shot Learning 元迁移学习在少图像学习中的应用

Generating Classification Weights with GNN Denoising Autoencoders for Few-Shot Learning 基于GNN去噪自编码器的分类权值生成

Finding Task-Relevant Features for Few-Shot Learning by Category Traversal 基于类别遍历的少图像学习任务相关特征的发现

LaSO: Label-Set Operations networks for multi-label few-shot learning 多标签少镜头学习的标签集操作网络

Few-shot Learning via Saliency-guided Hallucination of Samples 通过显著性引导样本产生幻觉的少量镜头学习

Spot and Learn: A Maximum-Entropy Patch Sampler for Few-Shot Image Classification 点和学习:一种用于最小镜头图像分类的最大熵贴片采样器

Image Deformation Meta-Networks for One-Shot Learning 一次学习的图像变形元网络

Baby steps towards few-shot learning with multiple semantics 婴儿多语义学走向少镜头学习

Generalized Zero- and Few-Shot Learning via Aligned Variational Autoencoders 基于对齐变分自编码器的广义零炮和少图像学习

TAFE-Net: Task-Aware Feature Embeddings for Low Shot Learning TAFE网:用于低镜头学习的任务感知特征嵌入

Large-Scale Few-Shot Learning: Knowledge Transfer With Class Hierarchy 大规模少镜头学习:基于类层次的知识转移

物体识别之外(其它任务中的小样本学习)

RepMet: Representative-based metric learning for classification and few-shot object detection RepMet:基于代表性度量学习的分类与少镜头目标检测

CANet: Class-Agnostic Segmentation Networks with Iterative Refinement and Attentive Few-Shot Learning CANet:具有迭代求精和注意少镜头学习的类不可知分割网络

度量学习方法:《Revisiting Local Descriptor based Image-to-Class Measure for Few-shot Learning 基于局部描述子的图像到类度量的少镜头学习》简介

在本文中,作者稍微走起了点怀旧风,采用了词袋(bag-of-words)模型时代使用的局部描述子,但是特征则是使用一个卷积神经网络(CNN)提取到的,而整个学习框架都是端到端的。它的实验结果略微低于对比基准。

度量学习方法:《Few-Shot Learning with Localization in Realistic Settings 真实场景中的少图像定位学习》简介

本文声称,标准的小样本学习对比基准测试是不符合现实情况的,因为它们使用的不同类别的数据是被人为设定成平衡的,而且测试时使用的是 5 类样本,因此本文作者建议使用一个新的数据集/对比基准。同时,让模型同时学习进行定位和分类;这样做显而易见的缺点是需要用到带有边界框标注的数据集。分类器是建立在原型网络之上的,但使用的特征向量是由聚合的前景和背景表征连接而成的。

度量学习方法:《Dense Classification and Implanting for Few-Shot Learning 密集分类与植入少镜头学习》简介

在本文中,分类任务是密集地执行的,即所有的空间位置都需要被正确地分类,而不是在最后进行全局平均池化处理。此外,在测试期间,本文作者并不是在最后一层才进行调优,而是通过添加神经元扩大每一层并对它们进行调优(只有额外添加的权重会被训练,旧的权重会被冻结)。

度量学习方法:《Variational Prototyping-Encoder: One-Shot Learning with Prototypical Images 变分原型编码器:基于原型图像的一次学习》简介

这是一个单样本分类技术的更具体的应用,针对的是标志或路标分类问题。在本例中,作者将标准图形化的图像(与现实中的真实标志/路标相对应)作为原型。他们通过学习一个将真实标志/路标图像映射到原型图像上的元任务学习来学习一种良好的表征。

元学习方法:《Edge-Labeling Graph Neural Network for Few-shot Learning 用于少图像学习的边缘标记图神经网络》简介

图神经网络已经被用于小样本学习领域。其基本思想是,每个图像都可以作为图中的一个节点来表示,而且信息(节点表征)可以根据它们之间的相似度在它们之间传播。通常而言,分类任务是根据节点表征之间的距离隐式地完成的。在这里,作者建议在每条边上加上显式的特征来描述节点之间的相似度。

元学习方法:《Task Agnostic Meta-Learning for Few-Shot Learning 面向少图像学习的任务不可知元学习》简介

在这项工作中,为了避免元学习模型对训练任务过拟合,作者在输出预测时加入了一个正则化项。正则化要么会使预测具有更高的熵(即预测的概率不会看起来像一个独热矢量),要么使模型在不同任务之间的差异更小(即在不同任务上表现相同)。显然,对于小样本学习来说,有一个强大的正则化机制是十分重要的,但我并不能直观地理解为什么我们需要的是文中体到的特定的正则项。本文作者在 MAML 的基础上测试了该方法,得到了更优的性能。不妨看看将其应用于其它方法上是否也会对性能提升有所帮助!

元学习方法:《Meta-Transfer Learning for Few-Shot Learning 元迁移学习在少图像学习中的应用》简介

该方法有两个主要的组成部分:(1)对一个预训练的模型调优,其中权值是冻结的,在每一层中只学习放缩和偏置(Scaling and Shifting);(2)困难任务挖掘。如果我没弄错的话,MAML 对批量归一化层进行了调优,这难道不是具有和「学习放缩和偏置」相同的效果吗?似乎将困难批量挖掘(根据之前的任务中具有较低的准确率的类组成的任务)应用到 MAML 上也是有所帮助的。

元学习方法:《Generating Classification Weights with GNN Denoising Autoencoders for Few-Shot Learning 基于GNN去噪自编码器的分类权值生成》简介

在本文中,作者再次建立模型预测分类器对于未见过的类的权重。此外,所有分类器的权重都会被传递给一个通过一个图神经网络实现的去噪自编码器(基类和任务中的新类别),从而做到:(1)让分类器能够适应当前任务的类别(2)将基类分类器的知识传播给新类分类器。使用去躁自编码器有助于修正预测得到的分类器,因为这些分类器仅仅只基于少量的示例预测得到,有明显的噪声。

元学习方法:《Finding Task-Relevant Features for Few-Shot Learning by Category Traversal 基于类别遍历的少图像学习任务相关特征的发现》简介

给定一个特征提取器,该模型大体上可以预测一个特征向量上的注意力映射。「Concentrator」会分别查看每个类(或图像),而「Projector」则会融合来自任务中所有类的信息来生成注意力映射。「Concentrator」和「Projector」都是通过一个小型的卷积神经网络(CNN)来实现的。我非常喜欢这种简单的模块,当在几个一致的基于度量的方法上使用该模块时,它们总是可以提升性能。

数据增强方法:《LaSO: Label-Set Operations networks for multi-label few-shot learning 多标签少镜头学习的标签集操作网络》简介

本文的研究课题是多标签小样本分类问题。在本文中,作者训练模型在嵌入空间中对多标签样本的标签集执行集合运算(求并集、差集、交集)。例如,通过对狗和猫的图像求并集,可以得到同时包含狗和猫的图像的表征。之后,作者使用这些操作来增强数据并提高分类性能。

数据增强方法:《Few-shot Learning via Saliency-guided Hallucination of Samples 通过显著性引导样本产生幻觉的少量镜头学习》简介

本文的研究课题是多标签小样本分类问题。在本文中,作者训练模型在嵌入空间中对多标签样本的标签集执行集合运算(求并集、差集、交集)。例如,通过对狗和猫的图像求并集,可以得到同时包含狗和猫的图像的表征。之后,作者使用这些操作来增强数据并提高分类性能。

数据增强方法:《Spot and Learn: A Maximum-Entropy Patch Sampler for Few-Shot Image Classification 点和学习:一种用于最小镜头图像分类的最大熵贴片采样器》简介

在本文中,作者计算了每一个图块(patch)的表征(而不是仅仅学习整幅图像的表征),然后通过使用了最优图块轨迹的 RNN(即决定下一步应该使用哪一个图块)来聚合这种表征,该轨迹是通过一个强化学习模型预测得到的。与简单的注意力模型相比,我认为该模型由于其具有数据增强方法(对于同一张图像使用不同的轨迹),要更好一些。然而,基准对比测试的结果只能说马马虎虎。我想知道仅仅使用一个随机的轨迹进行增强是否也会起到相同的作用。

数据增强方法:《Image Deformation Meta-Networks for One-Shot Learning 一次学习的图像变形元网络》简介

这是一种非常酷的数据增强方法。该方法类似于「mixup」(https://arxiv.org/pdf/1710.09412v1.pdf),但是这里的图像被根据一个网格进行了划分,并且为每个单元使用了不同的预测出的「mixup」系数。模型训练是端到端的,同时进行分类器的学习和对「mixup」的优化(指更好的分类效果)。本文作者将提出的模型与「mixup」进行了对比,但是我们想知道:如果系数是预测得出的而非随机的,「mixup」对整幅图像的效果如何,即不同的「混合」方式对于每个单元的影响如何。

基于语义的方法:《Baby steps towards few-shot learning with multiple semantics 婴儿多语义学走向少镜头学习》简介

本文作者在 CVPR 的「语言与视觉 Workshop」 上展示了自己的工作。作者基于 AM3 模型[Xing et. al, 2019]构建了自己的模型,并将其泛化,从而利用多种语义。同时,作者还使用了关于类别的短文本描述(这些描述是 ImageNet 的一部分,但是至今仍未被用于小样本学习)来提升性能。从可视化原型开始,他们便采用一系列语义嵌入迭代地更新这些可视化原型。通过这样做,该论文提出的方法实现了目前在 miniImageNet 上最佳的性能。

基于语义的方法:《Generalized Zero- and Few-Shot Learning via Aligned Variational Autoencoders 基于对齐变分自编码器的广义零炮和少图像学习》简介

本文作者训练了两个变分自编码器(VAE),一个用于视觉特征,另一个则用于语义特征。其目的是能够根据潜在的视觉特征重建语义特征,反之亦然。作者表明,使得两个潜在空间具有相同的分布也很有帮助。

基于语义的方法:《TAFE-Net: Task-Aware Feature Embeddings for Low Shot Learning TAFE网:用于低镜头学习的任务感知特征嵌入》简介

在这项工作中,标签嵌入(GloVe)被用来预测数据特征提取模型的权重。他们提出了一种很好的方法来分解权重,从而只需要预测一个较低维的权重向量。此外,通过「嵌入损失」迫使语义嵌入和视觉嵌入对齐。这篇论文的有趣之处在于,它结合了两种方法:元学习(基于任务来预测模型),以及利用语义信息(标签)。然而,对于小样本学习任务而言,似乎本文提出的模型稍微弱于现有的最佳方法。

基于语义的方法:《Large-Scale Few-Shot Learning: Knowledge Transfer With Class Hierarchy 大规模少镜头学习:基于类层次的知识转移》简介

作者声称现有的方法在大规模小样本学习任务往往会失败,例如在 ImageNet 而不是在像 miniImageNet 种的 64 个基类这样的小型数据集上进行预训练,并且其结果也并没有优于简单的对比基线。在本文中,作者也使用了语义标签。他们使用标签嵌入来无监督地构建了一个类别的层次结构,这是一种非常有趣的方法,学习以这种层次化的方式进行分类可能有助于模型捕获那些在未见过的类上表现更好的特征。然而需要警醒的是,将未见过的类标签用于构建类别的层次结构是不是有作弊之虞?

物体识别之外(其它任务中的小样本学习):《RepMet: Representative-based metric learning for classification and few-shot object detection RepMet:基于代表性度量学习的分类与少镜头目标检测》简介

该博文的作者也参与了这篇论文的工作。在本文中,作者率先研究了小样本目标检测。他们的解决方案是将一种基于度量的方法(如原型网络)扩展到目标检测任务上。他们使用了一种现成的检测器架构(FPN-DCN),并使用一种基于度量的分类器替换了线性分类器头,在该方法中,对检测出的每个区域的分类是基于特征向量到学到的类别的表征的距离而得出的。论文作者建议为小样本检测问题使用一种新的对比基准,并且展示了该论文提出的方法相对于对比方法的提升。

物体识别之外(其它任务中的小样本学习):《CANet: Class-Agnostic Segmentation Networks with Iterative Refinement and Attentive Few-Shot Learning CANet:具有迭代求精和注意少镜头学习的类不可知分割网络》简介

本文将度量学习扩展到了稠密场景下的小样本分割任务中。将查询图像中的所有局部特征与支持集中物体的所有局部特征进行对比的计算开销是非常大的。因此,本文作者选择将查询图像中的局部特征与支持集图像的全局表征进行对比。

参考:色列特拉维夫大学的在读博士研究生 Eli Schwarts 《从 CVPR 2019 一览小样本学习研究进展》

小样本学习Few-shot learning的更多相关文章

  1. 小样本学习(few-shot learning)在文本分类中的应用

    1,概述 目前有效的文本分类方法都是建立在具有大量的标签数据下的有监督学习,例如常见的textcnn,textrnn等,但是在很多场景下的文本分类是无法提供这么多训练数据的,比如对话场景下的意图识别, ...

  2. 最新小样本学习综述 A Survey on Few-Shot Learning | 四大模型Multitask Learning、Embedding Learning、External Memory…

    目录 原文链接: 小样本学习与智能前沿 01 Multitask Learning 01.1 Parameter Sharing 01.2 Parameter Tying. 02 Embedding ...

  3. Generalizing from a Few Examples: A Survey on Few-Shot Learning 小样本学习最新综述 | 三大数据增强方法

    目录 原文链接:小样本学习与智能前沿 01 Transforming Samples from Dtrain 02 Transforming Samples from a Weakly Labeled ...

  4. 小样本学习最新综述 A Survey on Few-shot Learning | Introduction and Overview

    目录 01 Introduction Bridging this gap between AI and humans is an important direction. FSL can also h ...

  5. Multi-attention Network for One Shot Learning

    Multi-attention Network for One Shot Learning 2018-05-15 22:35:50  本文的贡献点在于: 1. 表明类别标签信息对 one shot l ...

  6. 【元学习】Meta Learning 介绍

    目录 元学习(Meta-learning) 元学习被用在了哪些地方? Few-Shot Learning(小样本学习) 最近的元学习方法如何工作 Model-Agnostic Meta-Learnin ...

  7. 多视图学习(multiview learning)

    多视图学习(multi-view learning) 前期吹牛:今天这一章我们就是来吹牛的,刚开始老板在和我说什么叫多视图学习的时候,我的脑海中是这么理解的:我们在欣赏妹子福利照片的时候,不能只看45 ...

  8. 迁移学习( Transfer Learning )

    在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型:然后利用这个学习到的模型来对测试文档进行分类与预测.然而,我们看到机器学习算法在当前的Web挖掘研究中存在着一个关 ...

  9. 迁移学习(Transfer Learning)(转载)

    原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...

随机推荐

  1. AttributeError: 'dict' object has no attribute 'status_code'

    前端AJAX请求数据,提示错误:“AttributeError: 'dict' object has no attribute 'status_code'”. 原因:是提示返回对象dict没有“sta ...

  2. vs 小贴士

    1. ubuntu上vs code root执行 sudo code --user-data-dir="~/.vscode-root" 2. 设置vs code 打开在新的标签页打 ...

  3. OLT设置vlan透传及ONU端口划vlan

    CZ-PX-ShangShi-FTTH-OLT-A#show runn System current configuration:!Software Version ISCOM5800E-SMCB_1 ...

  4. dhcp协议简介

    协议分析 - DHCP协议解码详解 DHCP协议简介 DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 BOOTP,它工作 ...

  5. linux:RAID(磁盘阵列)笔记

    RAID磁盘阵列简述:     RAID0(条带): 把多个同样大小的磁盘串联起来当做一个磁盘来用.         优点:读写速度快.         缺点:数据容易丢失(没有容错能力).     ...

  6. php转码 iconv和mb_convert_encoding

    最近在给公司做一个小工具,将excel表格按照一定的格式转为txt文本格式,要求转后的txt文本是GBK编码,但是总会有几个excel表格无法正常转码,最后查阅相关资料,得到解决方案 先说明下,在ph ...

  7. vue学习【二】vue结合axios动态引用echarts

    大家好,我是一叶,本篇是vue学习的第二篇,本篇将要讲述vue结合axios动态引用echarts. 在vue中,异步刷新使用的是axios,类似于大家常用的ajax,其实axios已经是vue的第二 ...

  8. 五、vue中export和export default的使用

    一.export的使用 比喻index.js要使用test.js中的数据,首先在test.js文件中进行导出操作 代码如下: export function list() { alert(" ...

  9. SQL的基本操作(三)

    Hive基本SQL操作 Hive DDL(数据库定义语言) 1.数据库的基本操作 --展示所有数据库 show databases; --切换数据库 use database_name; /*创建数据 ...

  10. CSS3参数matrix(n,n,n,n,n,n)定义 2D 转换,使用六个值的矩阵。那这六个值分别代表了什么参数?

    matrix( a, b, c, d, e, f );a 水平缩放b 水平倾斜c 垂直倾斜d 垂直缩放e 水平移动f 垂直移动