Generalizing from a Few Examples: A Survey on Few-Shot Learning

Generalizing from a Few Examples: A Survey on Few-Shot Learning

本文知乎链接(排版可能好看丢丢):https://zhuanlan.zhihu.com/p/340618818
论文地址:paper
这篇概述很简洁:简介的论文解读

一、 摘要

机器学习在有大量数据支撑的时候的效果很好,但是数据量很少的时候效果很差了。Few shot learning 是针对于这个问题场景下提出的解决办法,他可以迅速自适应到一个新的任务中去。FSL的核心问题是unreliable empirical risk minimizer,基于如何利用先验知识来解决问题,我们可以把FSL领域的现有研究划分到三个方向:

  1. 数据,利用先验知识来增加监督学习的经验;
  2. 模型,利用先验知识减小假设空间的大小;
  3. 算法,利用先验知识改变如何在假设空间中搜索最佳假设的算法。

本文对FSL算法进行了归类并讨论了每个类别的优缺点。

二、 Introduction

计算机器和智能的最终目标是实现并超越人类的智能。近年来在大量监督信息和计算能力的帮助下,AI发展迅速。但是目前的AI技术不能从少量样本中快速学习任务。利用FSL来解决这个问题。最典型的例子是手写字符识别。当计算机获得一小部分例子的时候它需要分析并产生新的字符。为了解决这个问题,可以将字符分成易于转移的更小的part,然后利用这些小部分产生新的字符。这和人类的学习思想很相似。
另一种FSL的应用场景是当监督信息因为安全、隐私或者道德的限制不可获得的时候,例如在发现一种新药的时候,并没有很多的生物学记录。FSL可以减轻收集大量监督信息的负担。
FSL算法示例:元学习(meta-learning)、表示学习(embedding learning)、生成模型的学习(generative modeling)
本文贡献:

  1. 给出FSL的正式定义
  2. 列出了与FSL相关的研究问题和方向,并指出不同
  3. 指出了FSL监督学习的核心问题是unreliable empirical risk minimizer
  4. 建立了对FSL学习更好的理解
  5. 提出了未来的研究方向

三、 本文的组织结构

第二节是对FSL的概述,包括正式定义、相关问题、核心问题、对现有工作在data、model、algorithms方向的分类;第三节是以数据扩充的方式来解决FSL的问题;第四节是利用模型减小假设空间;第五节是利用先验知识改变如何在假设空间中搜索最佳假设的算法。第6节中,从问题设置、技术、应用和理论方面为FSL提出了未来的方向。

四、 符号和术语

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第1张图片

五、 OVERVIEW

(一) 问题定义

1. 机器学习任务的定义

针对于一个图像分类任务(T),机器学习模型在大量的数据集上训练获得监督经验E,通过E,可以提高分类的准确率(P)
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第2张图片

2. Few-shot learning的定义

对于任务T, 只有少量的监督信息E,但是期望获得不错的分类准确率P
参考:https://zhuanlan.zhihu.com/p/61215293

问题定义

人类非常擅长通过极少量的样本识别一个新物体,比如小孩子只需要书中的一些图片就可以认识什么是“斑马”,什么是“犀牛”。在人类的快速学习能力的启发下,研究人员希望机器学习模型在学习了一定类别的大量数据后,对于新的类别,只需要少量的样本就能快速学习,这就是 Few-shot Learning 要解决的问题。 Few-shot Learning 是 Meta Learning在监督学习领域的应用。
Meta Learning,又称为 learning to learn,在 meta training 阶段将数据集分解为不同的 meta task,去学习类别变化的情况下模型的泛化能力,在 meta testing 阶段,面对全新的类别,不需要变动已有的模型,就可以完成分类。
形式化来说,few-shot的训练集中包含了很多的类别,每个类别中有多个样本。在训练阶段,会在训练集中随机抽取 C 个类别,每个类别 K 个样本(总共 CK 个数据),构建一个 meta-task,作为模型的支撑集(support set)输入;再从这 C个类中剩余的数据中抽取一批(batch)样本作为模型的预测对象(batch set)。即要求模型从 C*K 个数据中学会如何区分这 C个类别,这样的任务被称为 C-way K-shot 问题。 训练过程中,每次训练(episode)都会采样得到不同meta-task,所以总体来看,训练包含了不同的类别组合,这种机制使得模型学会不同 meta-task 中的共性部分,比如如何提取重要特征及比较样本相似等,忘掉 meta-task 中 task 相关部分。通过这种学习机制学到的模型,在面对新的未见过的 meta-task 时,也能较好地进行分类。

FSL的三个常见的应用场景
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第3张图片

(二) 相关的研究(为了区分他们之间的不同)

相关模型有弱监督学习、不平衡学习、迁移学习和元学习。

1. 弱监督学习

就是从不完整或者不准确的监督信息中学习任务,和少样本学习一样都含有少量的样本具有监督信息。可以分为半监督学习和主动学习。
1) 半监督学习:从少量的标记样本和大量的未标记样本里面进行学习,其中 positive-unlabelled learning 是半监督学习的特例,数据样本中只有正的样本和无标记的样本。
2) 主动学习Active learning:(https://zhuanlan.zhihu.com/p/79764678)
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第4张图片
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第5张图片
3) 两者的区别:根据定义,弱监督学习只包括分类和回归问题,而FSL还包括强化学习问题。此外,弱监督学习主要使用未标记数据作为附加信息,而FSL利用各种先验知识,如预训练模型、来自其他领域或模态的监督数据,并且不限于使用未标记数据。因此,只有当先验知识是未标记数据并且任务是分类或回归时,FSL问题才成为弱监督学习问题。

2. 不平衡学习

指的是正负样本分布不平衡的数据。

3. 迁移学习

先在有大量数据的领域训练,然后迁移到数据比较少的领域。(fine-tune)

4. 元学习

元学习是处理FSL 的一种方式

(三) 核心问题

1. Empirical Risk Minimization(经验风险最小化)

在遇到一个机器学习的问题的时候,我们通常是通过最小化损失函数来找到从x 到 y 的最有假设h(x)。但实际上我们期望的是我们获得的假设函数h(x)能够预测所有的样本的损失函数最小,这个针对于所有样本的风险称expected risk, 期望风险如下式:
在这里插入图片描述

理论上说,让期望风险最小化才能逼近真实分布,但因为你并不知道真实分布(就是不管怎么样,你都拿不到这个问题的所有预测样本呀),所有最小化期望风险是无法实现的,而在机器学习中通常用经验风险来替换期望风险,经验风险就是在训练集上预测的结果和真实结果的差异(就是说我拿到所有的样本分布确实不可能了,所以我退而求其次,我就只拿训练集的数据来模拟数据的真实分布好了),也是我们常说的损失函数,表达式如下:
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第6张图片
在这里插入图片描述
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第7张图片
简单来说下的话,h^ 是真实分布的假设,h∗是假设空间H中最接近h^的假设(通过最小化期望风险得到的假设),而hI是你通过最小化经验损失得到的假设
在这里插入图片描述

等式右边第一项表示的是假设空间H中最优的假设和真实假设的误差,这一项其实由你所选择的模型和参数的初始化分布决定的,这也就是为什么有的时候,模型选择的简单了,你给再多的数据也训练不好,欠拟合。第二项就是我们训练得到的假设和H中最优假设的误差,我们训练得到的假设也是从假设空间H中选择的,但有时候会陷入局部最优,或者提供的训练数据分布有偏差,导致无法到全局最优。
因此我们可以看到最后的误差是受假设空间H和在训练集中样本的数量影响的,因此可以通过data(提供训练集)、模型(决定假设空间)和算法(如何在假设空间里面找到适合训练集的最优假设)
**

2. Unreliable Empirical Risk Minimizer

**
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第8张图片
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第9张图片
当含有足量的训练集和少量训练集时的对比,可以看一下经验误差和期望误差之间的差距。

(四) 分类

为了解决这个问题,可以通过DATA、model、algorithms 三种方式。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第10张图片

1. DATA角度

利用先验知识来做数据增强, 数据变多之后hi 和 h* 之间的差距减小。

2. Model 角度

通过先验知识来约束假设空间,使得假设空间变小。如(b)图所示,通过先验知识排除了那些假设空间里面不可靠的部分,然后搜索范围就变小了。

3. Algorithms角度

通过先验知识来确定一个良好的起点(初始化)或者好的搜索策略,从而简化估计的过程。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第11张图片

六、 数据角度

期望通过先验知识扩充训练集,从而使得E中的监督信息足够用来获得一个可以信赖的hi。
可以通过hand-crafted 的方式进行数据的预处理,例如图片,可以通过旋转、翻折、平移、缩放、映射、裁剪等方式来变换。但是这些方法的知识成本和人工成本比较高,而且扩展性也很差。因此手动扩充数据不能完全解决FSL的问题。
除此之外也有一些其他的方式来数据扩充,可以根据是从哪里转换到训练集中的来进行分类。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第12张图片

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第13张图片

(一) 从D-train中转化数据

总而言之也是扩充训练集,不过方式比第一种hand-crafted的要优雅很多,包括提取了数据分布之类的,具体方式可以看列出来的论文。
将训练集中的(x, y)转换成几个有变化的样本。这个转换的过程作为先验知识添加到E中。(1) 早期的FSL 论文通过迭代地将每个样本与其他样本对齐,从相似的类中学习一组几何变换。从而使得数据量足够大支撑起机器学习的训练。 (2) 类似的,有作者提出建立一组自编码器然后从相似的类中提取类间的变化性,然后把学习到的variation 叠加到 x中去来增加样本数量。(3) 另外有作者假设,所有类别的样本之间共享一些可转化的可变性,因此作者提出算法学习单个转换函数,将从其他类中学习到的样本对之间的差异转移到当前类中。(4) 另外,也有作者不会枚举成对的变量,而是用从大量的数据集中学习到的独立属性强度回归器将现在数据集中的一个样本转换成几个样本,然后把原始标签的样本也分配给这几个样本。(5) 在此基础之上,有论文使用连续的属性子空间来给x增加属性变量。

(1) E. G. Miller, N. E. Matsakis, and P. A. Viola. 2000. Learning from one example through shared densities on transforms. In Conference on Computer Vision and Pattern Recognition, Vol. 1. 464–471.
(2) E. Schwartz, L. Karlinsky, J. Shtok, S. Harary, M. Marder, A. Kumar, R. Feris, R. Giryes, and A. Bronstein. 2018. Delta-encoder: An effective sample synthesis method for few-shot object recognition. In Advances in Neural Information Processing Systems. 2850–2860.
(3) B. Hariharan and R. Girshick. 2017. Low-shot visual recognition by shrinking and hallucinating features. In International Conference on Computer Vision.
(4) R. Kwitt, S. Hegenbart, and M. Niethammer. 2016. One-shot learning of scene locations via feature trajectory transfer. In Conference on Computer Vision and Pattern Recognition. 78–86.
(5) B. Liu, X. Wang, M. Dixit, R. Kwitt, and N. Vasconcelos. 2018. Feature space transfer for data augmentation. In Conference on Computer Vision and Pattern Recognition. 9090–9098.

(二) 从弱标记或者没有标记的数据集中转换样本

通过训练单独的分类器或者为无标签数据标注伪标签等方式,把没有标注的图片加入到训练样本中。
例如,在监控摄像头拍摄的照片里面,有人、车和路,但是没有标记的样本或者在演讲的长视频中,包含了演讲者一系列的手势图片,但是都没有明确标注出来。因为这些数据中包含大量不同的样本,加到数据集中有利于组成更加清晰的数据分布。收集这样的数据不需要用人工来标注。虽然数据收集不麻烦,但是怎么选择出来带有目标标签的样本是一个重要问题。(1)训练SVM分类器,挑选出带有目标标签的样本。(2)学习label propagation 直接为新来的数据打标签。(3)还有一种被称为渐进策略,选出其中信息丰富的未标记样本,然后给选出的样本分配伪标签,然后用他们来更新CNN。

(1)T. Pfister, J. Charles, and A. Zisserman. 2014. Domain-adaptive discriminative one-shot learning of gestures. In European Conference on Computer Vision. 814–829.
(2)M. Douze, A. Szlam, B. Hariharan, and H. Jégou. 2018. Low-shot learning with large-scale diffusion. In Conference on Computer Vision and Pattern Recognition. 3349–3358.
(3)Y. Wu, Y. Lin, X. Dong, Y. Yan, W. Ouyang, and Y. Yang. 2018. Exploit the unknown gradually: One-shot video-based person re-identification by stepwise learning. In Conference on Computer Vision and Pattern Recognition. 5177–5186.

(三) 从相似数据集转换样本

从相似但是更大的数据集中转化数据(input-output pair)。聚合权重是由样本之间的相似度量来决定的。
(1)从辅助的文本语料库中提取聚合权重。(2)由于这些样本可能不是来自目标FSL类,直接将汇总样本添加到数据中可能会产生误导,因此,GAN用来从多个样本的数据集中合成不可区分的合成样本。包含两个生成器,一个从few-shot class 向大规模数据集映射样本;另一个将大规模的类样本向few-shot转换。

(1)Y. H. Tsai and R. Salakhutdinov. 2017. Improving one-shot learning through fusing side information. arXiv preprint arXiv:1710.08347 (2017).
(2)H. Gao, Z. Shou, A. Zareian, H. Zhang, and S. Chang. 2018. Low-shot learning via covariance-preserving adversarial augmentation networks. In Advances in Neural Information Processing Systems. 983–993.

(四) 总结

根据具体情况来选择用哪种方式来解决FSL的数据扩充问题。但是这种方法的扩展性不好,也有人提出一种自动增强数据的方式。并且数据增强大多数是针对于图像数据的,因为图像可以很容易被人类视觉评估,相比之下,文本和音频数据更难生成。

七、 模型角度

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第14张图片
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第15张图片

因此需要一个足够大的假设空间来找到最好的假设h*,但是可以用来训练的样本又很少所以传统的机器学习方法不好使了。本小节的FSL方法通过先验知识将H约束的更小,经验风险越可靠,模型过拟合的可能性越低。
根据利用的先验知识的类别,可以把这一类方法进一步分成以下四类。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第16张图片

(一) 多任务学习

参考:https://www.cnblogs.com/lau1997/p/12361380.html
当存在多个相关任务时,多任务同步学习task-generic 和 task-specific 信息,因此他们可以被自然的应用到FSL中来(因为学习的内容是相同的)。简单概括多任务学习,就是通过共享相关任务之间的特征表示或者分布,可以使我们的模型更好地概括原始任务。在迁移学习中,学习步骤是串行的,你从任务A里学习只是然后迁移到任务B。但是在多任务学习中,你是同时开始学习的,试图让单个神经网络同时做几件事情,然后希望这里每个任务都能帮到其他所有任务。
多任务学习的话主要可以分为两种,第一种是参数共享,第二种是参数绑定,拿第一种来举一个例子,假设我们在研发无人驾驶,我们需要检测不同的物体,包括行人、车辆、停车标志以及交通灯等等。
当存在多个相关任务时,多任务同步学习task-generic 和 task-specific 信息,因此他们可以被自然的应用到FSL中来(因为学习的内容是相同的)。简单概括多任务学习,就是通过共享相关任务之间的特征表示或者分布,可以使我们的模型更好地概括原始任务。在迁移学习中,学习步骤是串行的,你从任务A里学习只是然后迁移到任务B。但是在多任务学习中,你是同时开始学习的,试图让单个神经网络同时做几件事情,然后希望这里每个任务都能帮到其他所有任务。
多任务学习的话主要可以分为两种,第一种是参数共享,第二种是参数绑定,拿第一种来举一个例子,假设我们在研发无人驾驶,我们需要检测不同的物体,包括行人、车辆、停车标志以及交通灯等等。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第17张图片

我们得到一个多任务的标签分布Y,Y的每一个分量都是四个维度的。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第18张图片

然后再设计一个网络,第一行是预测有没有行人, 第二个预测有没有车,第三个有没有停车标记,第四个是有没有交通灯
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第19张图片

然后最后的损失函数的时候是四个任务的平均损失
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第20张图片

上面讲的这种方式是共享参数的多任务训练方式,还有一种是互相影响的参数。因此下面这两组方法分别是借鉴了这两种思想。

1. 参数共享

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第21张图片

第一种会共享不同任务之间的参数。
(1)中两个网络共享前几层来学习通用的信息(generic information),并且在不同的任务上来学习不同的最后一层。(2)一起解决了两个关于法律文本的自然语言处理任务:费用预测和法律属性预测。首先用一个embedding function来对法律文本描述进行编码,然后把她送到特定任务的embedding function 和分类器中。(3)中首先根据源任务对可变自编码器进行预训练,然后把他合并到目标任务中。两个自编码器(源任务和目标任务)的一些层是可以共享的,从而获取generic information,但与此同时两个任务都有一些特定于任务的层。目标任务只能更新其特定于任务的层,而源任务可以更新共享层和特定于任务的层。(4)中原始样本和生成样本首先都会通过学习源任务和目标任务的独立嵌入函数被映射到一个指定任务的空间中,然后由共享的可变自动编码器embeded.

(1) Fine-grained visual categorization using meta-learning optimization with sample selection of auxiliary data.
(2) Few-shot charge prediction with discriminative legal attributes.
(3) Few-shot adversarial domain adaptation
(4) One-shot unsupervised cross domain translation

2. 参数绑定

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第22张图片
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第23张图片

(1) Multi-task transfer methods to improve one-shot learning for multimedia event detection
(2) Label efficient learning of transferable representations acrosss domains and tasks

(二) Embedding learning

Embedding的算法会把样本embed到一个低纬度的空间中,这样可以使得相似的样本靠在一起,不同的样本之间更容易区分。在这个低纬度的空间Z中,可以构建一个更小的假设空间,这样需要的训练样本就少了。这个embedding function 主要是从先验知识中学习,然后可以利用D train 中针对于特定任务的信息。
Embedding learning 有以下几个重要组件:
① 一个把test 样本映射到低维样本空间的映射函数f
② 一个把训练样本映射到低纬空间的映射函数g
③ 一个计算相似度的函数s, 来度量f(test) 和g(xi)之间的距离,测试样本会被分类到和他距离最相近的g(xi)所属的类中
f 和 g 可以是同一个映射函数,但是有些算法用了不同的映射函数取得了更高的acc。常见的embedding算法汇总在这个表格里了。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第24张图片

1. 针对于特定任务的embedding model

针对于特定任务的embedding method会针对于每一个任务学习的特定信息一个embedding function。
例如,用任务Tc的few-shot 训练集,然后计算所有样本对的相似度排序。(1)中将batch内的每个样本都看作一个查询样本,并且从其他所有样本中检索出与当前查询样本同一类别的样本。网络输出的是其他样本与当前查询样本相似度的排序结果。(就是本来few-shot learning的方式是通过support set 和query set的方式,然后对于query set里面的样本去寻找support set里面和他最相近的样本。但是这个算法是没有support set和query 的定义的,对于batch里的样本,寻找剩余其他样本和他最相近的那些(相当于扩大了support。))

(1)Few-shot learning through an information retrieval lens

2. Task-Invariant Embedding Model

这类embedding的方式通常会从具有足够样本的大规模数据集中学习一般嵌入函数,然后在新的few-shot 的任务上直接用这个embedding function,不再进行训练。(是用先验知识训练的embedding function)
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第25张图片

尽管task-invariant embedding 不用会新的few-shot train的数据来更新embedding function 的参数,但是很多这个方向的算法都是用few-shot的方式来训练embedding模型的。近来一些方法通过meta-learning的方式学习了更加复杂的task-invariant embedding models

1) Matching net 以及他的变体

(1)中提出的matching net算法利用meta-learns的方式为训练集的样本和测试集的样本训练embedding function。(2)中The residual LSTM (resLSTM)算法提出了对f和g更好的设计。(3)中一个matching net 主动学习的变体 在 后面加了一个sample selection 步骤,他会标记最有利的未标记数据并且用它来扩充训练集。(4)中把matching net扩充到set-to-set 的匹配,这对于标记样品的多个部分是有用的。

(1)O. Vinyals, C. Blundell, T. Lillicrap, D. Wierstra, et al. 2016. Matching networks for one shot learning. In Advances in Neural Information Processing Systems. 3630–3638.
(2)H. Altae-Tran, B. Ramsundar, A. S. Pappu, and V. Pande. 2017. Low data drug discovery with one-shot learning. ACS Central Science 3, 4 (2017), 283–293.
(3)P. Bachman, A. Sordoni, and A. Trischler. 2017. Learning algorithms for active learning. In International Conference on Machine Learning. 301–310.
(4)J. Choi, J. Krishnamurthy, A. Kembhavi, and A. Farhadi. 2018. Structured set matching networks for one-shot part labeling. In Conference on Computer Vision and Pattern Recognition. 3627–3636.

2) Prototypical network和他的变体

(1)中提出的Prototypical 模型不是把test 的embedding和所有的train比较,protonet只和训练集里面的类别模型进行比较。对于class n, 他的prototype模型是该类中样本的embedding的均值,这种算法是的结果更加稳定而且也减小了计算压力。这种思想在(2)里面被应用到了matching net上。(3)中一个半监督变量利用软分配的方式将没有标记的数据加入到训练集中从而做到数据扩充。

(1)J. Snell, K. Swersky, and R. S. Zemel. 2017. Prototypical networks for few-shot learning. In Advances in Neural Information Processing Systems. 4077–4087.
(2)Y.-X. Wang, R. Girshick, M. Hebert, and B. Hariharan. 2018. Low-shot learning from imaginary data. In Conference on Computer Vision and Pattern Recognition. 7278–7286.
(3)M. Ren, S. Ravi, E. Triantafillou, J. Snell, K. Swersky, J. B. Tenenbaum, H. Larochelle, and R. S. Zemel. 2018. Meta-learning for semi-supervised few-shot classification. In International Conference on Learning Representations.

3) 其他方法

(1)中提出了基于注意力机制的循环比较器,利用一个基于注意力机制的LSTM网络来比较x-test的不同区域和原型,然后将比较的结果做成中间embedding。除此之外,这个算法还利用双向的LSTM网络把所有的比较结果制作成final embedding。(2)中提出的relation net利用一个CNN 来把测试和训练数据embed 到一个低维空间,然后把他们拼接起来作为embedding,之后在送入到另一个CNN网络中来输出相似度。(3-4)中用到了图卷积神经网络来获取临近的信息。在few-shot reinforcement 学习应用中(例如连续控制和视觉导航),时间信息很重要。(5)中提出了SNIL网络(一个embedding网络)具有交错的时间卷积层和attention layer。时序卷积会注意到时序信息并且attention 层会关注与当前输入相关的step。

(1)P. Shyam, S. Gupta, and A. Dukkipati. 2017. Attentive recurrent comparators. In International Conference on Machine Learning. 3173–3181
(2)F. Sung, Y. Yang, L. Zhang, T. Xiang, P. H. Torr, and T. M. Hospedales. 2018. Learning to compare: Relation networkfor few-shot learning. In Conference on Computer Vision and Pattern Recognition. 1199–1208.
(3)Y. Liu, J. Lee, M. Park, S. Kim, E. Yang, S. Hwang, and Y Yang. 2019. Learning to propopagate labels: Transductive propagation network for few-shot learning. In International Conference on Learning Representations.
(4)V. G. Satorras and J. B. Estrach. 2018. Few-shot learning with graph neural networks. In International Conference on Learning Representations.
(5)N. Mishra, M. Rohaninejad, X. Chen, and P. Abbeel. 2018. A simple neural attentive meta-learner. In International Conference on Learning Representations.

3. Hybrid Embedding Model

尽管task-invariant embedding methods可以在很小的计算成本就应用到新的task上去,但是他们并不会利用当前任务的特定知识,当任务很特殊只有极少的例子的时候,只是简单的把模型拿过来可能是不行的,为了解决这个问题,混合embedding模型在适应了generic task-invariant embedding model并且把学习到的embedding g 作为 embedding f 的参数。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第26张图片

Learnet(1)通过合并Dtrain的特定信息改进了task-invariant convolutional siamese net,保证f(.)的参数会随着给定的xi变化,从而构造了混合embedding网络。(2)中基于上个算法的基础之上把分类层改成了ridge regression。(3-4)把Dtrain看成是一个整体来输出对于指定任务的f参数。(3)中提出的TADAM算法把类别平均的原型自适应到任务的embedding中,然后用一个meta-learning的函数把他映射到protonet 参数中去。(4)DCCN网络使用一组固定的滤波器,用Dtrain学习组合系数

(1) L. Bertinetto, J. F. Henriques, J. Valmadre, P. Torr, and A. Vedaldi. 2016. Learning feed-forward one-shot learners. In Advances in Neural Information Processing Systems. 523–531.
(2) L. Bertinetto, J. F. Henriques, P. Torr, and A. Vedaldi. 2019. Meta-learning with differentiable closed-form solvers. In International Conference on Learning Representations.
(3) B. Oreshkin, P. R. López, and A. Lacoste. 2018. TADAM: Task dependent adaptive metric for improved few-shot learning. In Advances in Neural Information Processing Systems. 719–729.
(4) F. Zhao, J. Zhao, S. Yan, and J. Feng. 2018. Dynamic conditional networks for few-shot learning. In European Conference on Computer Vision.

(三) 用外部记忆学习

【没看过这类的文章,理解可能不准确】
从训练集中提出额外的信息并且存储在external memory中,然后每一个test中新的样本都用这些memory的加权平均表示,这样就把test用memory中的信息限制住了,从而缩小了假设空间的大小。
[具有外部存储机制的网络都可以用来处理这一类问题,其实本质上和迁移学习一样,只不过这里不更新模型的参数,只更新外部记忆库,外部记忆库一般都是一个矩阵,如神经图灵机,其外部记忆库具有读些操作,在这里就是在一个用大量类似的数据训练的具有外部存储机制的网络上,用具体task的样本来更新外部记忆库。]
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第27张图片
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第28张图片
由于每个X-test都表示为从内存中提取的值的加权平均值,因此内存中键值对的质量很重要。根据memory的功能,FSL方法在这一类别中可以细分为两种类型。

1. Refining Representations

以下方法将数据小心地放入memory中,这样存储的键值对可以更准确地表示X-test. (1)中提出的Memory-Augmented Neural Networks(MANN)利用meta-learns的方式学习embedding函数f, 然后把同一类的sample映射到相同的数值中。这样同一个类的样本可以在内存中一起优化他们的类表示。(2)中的类表示和Proto-Net 相似;(3)中提出的方法只在xi不能很好的表示新图片的时候才会更新M,因为更新M是一个耗费计算资源的事情。
跳过了,以后补充(也可能没有补充了,笑哭)

2. Refining Parameters

跳过

(四) 生成模型

感觉这部分在few-shot 分类问题中的应用不多的
生成模型在先验知识的帮助下从观测到的xi估计p(x)的概率分布。根据条件概率公式,p(x)的估计通常涉及p(x | y)和p(y)的估计。这个类中的方法可以处理很多任务,比如生成,识别,重建,图像翻转。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第29张图片

在生成模型中,观测到的x被假设是从p(x;θ)中提取的
在这里插入图片描述

其中p(z; y)被我们称为是先验分布,从其他数据集中训练得到,是对FSL很重要的先验知识。通过把提供的D-train 和p(z; y)相结合,得到的后验概率分布受到约束,换句话说,H会被限制到更小的H中。
根据隐向量Z代表的内容,我们可以把FSL建模方法分成三类。
1. Decomposable Components(可分解组件)
尽管在FSL问题中具有监督信息的样本很少,但是它们可能与来自其他任务的样本共享一些较小的可分解成分。例如,若仅使用提供的几张面部照片来识别一个人。虽然相似的脸可能很难找到,但人们可以很容易地找到眼睛、鼻子或嘴巴相似的照片。有了大量的样本,针对于这些可分解成分的模型就很容易学习。然后只需要找到这些可分解组件的正确组合,并决定这个组合属于哪个目标类。由于可分解的组件是由人选择的,所以这种策略更容易判断。贝叶斯one-shot(1)使用生成模型来捕捉可分解组件(例如对象的形状和外观)和目标类别(即要识别的对象)之间的交互;贝叶斯 program learning(BPL)(2)通过将字符分为类型、标记和进一步的模板、部分和原语来建模。要生成一个新的字符,需要搜索包含这些组件的大组合空间。通过仅考虑top possible的组合来降低这种推理成本。在自然语言处理中,(3) 对spans而不是完整的解析树进行建模,and adapts parsers between syntactically distant domains by training individual classifiers for spans[没看懂]。

(1)L. Fei-Fei, R. Fergus, and P. Perona. 2006. One-shot learning of object categories. IEEE Transactions on Pattern Analysis and Machine Intelligence 28, 4 (2006), 594–611.
(2)B. M. Lake, R. Salakhutdinov, and J. B. Tenenbaum. 2015. Human-level concept learning through probabilistic program induction. Science 350, 6266 (2015), 1332–1338.
(3)V. Joshi, M. Peters, and M. Hopkins. 2018. Extending a parser to distant domains using a few dozen partially annotated examples. In Annual Meeting of the Association for Computational Linguistics. 1190–1199.

2. Groupwise Shared Prior(分组共享prior)

通常,相似的任务有相似的先验概率,这可以在FSL使用。比如考虑“橘猫”、“豹子”、“孟加拉虎”三类分类。这三个物种相似,但孟加拉虎濒临灭绝,而橘猫和豹子数量丰富。因此,人们可以从“橘猫”和“豹子”中学习一个先验概率,并以此作为“孟加拉虎”这一few shot 类的先验概率。
在(1)中,首先通过无监督学习将一组数据集{Dc}分组为一个hierarchy。每组中的数据集一起学习类先验概率。对于一个新的few-shot类,首先找到这个新类所属的组,然后根据从组共享先验概率中提取的类先验对其建模。在(2)中,(1)算法中的特征学习步骤通过使用深度玻尔兹曼机器而进一步改进。

(1)R. Salakhutdinov, J. Tenenbaum, and A. Torralba. 2012. One-shot learning with a hierarchical nonparametric Bayesian model. In ICML Workshop on Unsupervised and Transfer Learning. 195–206.
(2)A. Torralba, J. B. Tenenbaum, and R. R. Salakhutdinov. 2011. Learning to learn with compound HD models. In Advances in Neural Information Processing Systems. 2061–2069.

3. Parameters of Inference Networks(推理net的参数)

在这里插入图片描述

为了找到最好的参数θ,我们需要最大化posterior;由于分母中有积分,所以很难求解上式的值。一个variational distribution q(z;δ),从数据中学习而来,常用于逼近(z | x;θ, γ)。最近这个q(z;δ)通过用amortized variational inference with the inference network来近似。虽然z不再具有语义意义,但是这些深度模型所学习到的强大表示可以带来更好的性能。一旦学习到q,推理网络就可以直接应用于新的任务,效率更高,对人类知识的要求更低。由于推理网络具有大量的参数,通常使用一些辅助的大规模数据集进行训练。许多经典的推理网络都适用于FSL问题。
例如:VAE, autoregressive model,generative adversarial networks (GAN),combination of V AE and GAN【参考文献看原文 第20页】

(五) 总结

当存在相似任务或辅助任务时,多任务学习可以用来约束few-shot的H。但是,请注意,需要对所有任务进行联合训练。因此,当一个新的few-shot learning任务到来时,整个多任务模型必须再次训练,这可能是costly和slow的。而且D和Dct的大小不应该是comparable的,否则few-shot learning任务可能会被样本多的任务淹没。
当存在包含各种类的足够样本的大规模数据集时,可以使用嵌入学习方法。这些方法将样本映射到一个良好的嵌入空间,在这个空间中,不同类别的样本可以很好地分离,因此需要一个较小的H。然而,当few-shot任务与其他任务关联不密切时,它们可能不会很好地工作。此外,更多关于如何混合任务的不变信息和任务特定信息的探索是有帮助的。
当内存网络可用时,通过在内存上训练一个简单的模型(如分类器),它可以很容易地用于FSL。通过使用精心设计的更新规则,可以有选择地保护内存插槽。这种策略的缺点是它会带来额外的空间和计算成本,而这些成本会随着内存大小的增加而增加。因此,当前的外部存储器具有有限的大小。
最后,当除了执行FSL之外还想执行诸如生成和重建之类的任务时,可以使用生成模型。他们学习先验概率p(z;γ),这将H减少到更小的H。所学习的生成模型也可以用于生成用于数据扩充的样本。然而,生成建模方法具有较高的推理成本,并且比确定性模型更难推导。

八、 算法角度

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第30张图片

本节中的方法使用先验知识来影响θ的获取方式,要么通过(I)提供良好的初始化参数θ0,要么(ii)直接学习优化器来输出搜索步骤。根据搜索策略如何受到先验知识的影响,我们将本节中的方法分为三组:

  1. 完善现有的参数,一个从其他任务学习得到的初始化参数,放到训练集里进行优化。
  2. 细化meta-learned参数:初始化的θ0是通过一系列和少样本类似的任务学学习得到的,然后利用D-train进一步训练一下。
  3. 学习优化方式:这种策略学习一个元学习者作为优化器,直接为每个学习者输出搜索步骤,例如改变搜索方向或步长。
    Generalizing from a Few Examples: A Survey on Few-Shot Learning_第31张图片

(一) Refining Existing Parameters

该策略将从相关任务中学习的预训练模型的θ0作为良好的初始化,并通过D-train使其适应θ。但是前提假设是θ0捕捉到了大规模数据的一些一般结构。因此,它可以通过几次迭代来适应D。
就是直接用别的数据集进行预训练,从而初始化

1. Fine-Tuning Existing Parameter by Regularization

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第32张图片

用正则化的方式微调pre-trained的参数θ0到FSL任务中。(1)中用在image net 上预训练,然后用一个含有大量用于前景分割的数据集tune,之后再用one-shot 目标分割的分割数据进行进一步微调。给定一个few-shot D-train,直接用来fine-tune 可能会导致过拟合,下列有几个方法:
(1)Early-stopping
(2)Selectively updating θ0
(3)Updating related parts of θ0 together.
(4)Using a model regression network

2. Aggregating a Set of Parameters

有时候,我们没有合适的θ0来开始。相反,我们有许多从相关任务中学到的模型。例如,在人脸识别中,我们可能已经有了眼睛、鼻子和耳朵的识别模型。因此,可以将这些模型参数聚合到一个合适的模型中,然后由D-train直接使用或优化(图12)。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第33张图片

如前面说的,来自未标记数据集或者是相似标记数据集的数据可以被用来扩充少样本D-train,本节的方法不是直接使用这些样本,而是使用从这些数据集预先训练的模型(参数为θ0)。接下来的问题是如何使用Dtrain使它们有效地适应新的任务。

3. Fine-Tuning Existing Parameter with New Parameters

预先训练的θ0可能不足以胜任完全编码新的FSL任务。因此,使用了一个附加参数δ来考虑Dtrain的特殊性。具体来说,该策略将模型参数扩展为θ = {θ0,δ},并在学习δ的同时微调θ0。在(1)中,它使用预处理的CNN的下层进行特征嵌入,并使用D-train对embedding的特征学习线性分类器。在字体风格转换(2)中,首先对网络进行预训练,以获取灰色图像中的字体。为了生成时尚的彩色字体,与额外的网络训练一起微调的。

(1)J. Hoffman, E. Tzeng, J. Donahue, Y. Jia, K. Saenko, and T. Darrell. 2013. One-shot adaptation of supervised deep convolutional models. In International Conference on Learning Representations.
(2)S. Azadi, M. Fisher, V. G. Kim, Z. Wang, E. Shechtman, and T. Darrell. 2018. Multi-content GAN for few-shot font style transfer. In Conference on Computer Vision and Pattern Recognition. 7564–7573.

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第34张图片

(二) Refining Meta-Learned Parameter(看经典论文MAML帮助理解)

本节中的方法使用元学习来细化元学习参数θ0(图14)。θ0由元学习者根据学习者的表现不断优化。
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第35张图片

元学习 θ0通常用梯度学习来细化,一个经典算法是MAML。他通过 元学习的方法优化θ0, 之后 θ0经过几次的有效的梯度迭代之后就可以更新到新的任务上的参数ϕs,

在这里插入图片描述

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第36张图片

C. Finn, P. Abbeel, and S. Levine. 2017. Model-agnostic meta-learning for fast adaptation of deep networks. In International Conference on Machine Learning. 1126–1135.

可以看一下MAML的讲解
https://zhuanlan.zhihu.com/p/66926599
最近有许多基于MAML的改进,主要针对于以下几个方面:

1. 包含特定任务的信息

MAML对所有的任务用同样的初始化方式,然而,这忽略了特定于任务的信息,只有当任务集非常相似时才是合适的。为了解决这个问题,(1)中提出了学习从新任务的良好初始化参数子集中选取合适的初始化参数。

(1)Y. Lee and S. Choi. 2018. Gradient-based meta-learning with learned layerwise metric and subspace. In International Conference on Machine Learning. 2933–2942.

【参考:https://blog.csdn.net/qq_36104364/article/details/107839417】

2. Modeling the uncertainty of using a meta-learned θ0

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第37张图片

(1)C. Finn, K. Xu, and S. Levine. 2018. Probabilistic model-agnostic meta-learning. In Advances in Neural Information Processing Systems. 9537–9548.
(2)J. Yoon, T. Kim, O. Dia, S. Kim, Y. Bengio, and S. Ahn. 2018. Bayesian model-agnostic meta-learning. In Advances in Neural Information Processing Systems. 7343–7353.
(3)E. Grant, C. Finn, S. Levine, T. Darrell, and T. Griffiths. 2018. Recasting gradient-based meta-learning as hierarchical Bayes. In International Conference on Learning Representations.
(4)S. Ravi and A. Beatson. 2019. Amortized Bayesian meta-learning. In International Conference on Learning Representations.
(5)A. A. Rusu, D. Rao, J. Sygnowski, O. Vinyals, R. Pascanu, S. Osindero, and R. Hadsell. 2019. Meta-learning with latent embedding optimization. In International Conference on Learning Representations.

3. Improving the refining procedure

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第38张图片

(三) Learning to optimizer

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第39张图片

Generalizing from a Few Examples: A Survey on Few-Shot Learning_第40张图片

如上图所示,在经过t轮的迭代之后,提出的是一个基于 LSTM 的meta-learner,它被训练来用于优化task-learner,其中task-learner是一个分类器神经网络。LSTM meta-learner 的想学习目标是meta-testing task 中的短期任务和 meta-training tasks中的长期任务。
如下图所示
Generalizing from a Few Examples: A Survey on Few-Shot Learning_第41张图片

学习率对应 LSTM 中的输入门,初始化参数对应于记忆单元的初始化值,还有一个额外的遗忘门来补充梯度下降中上一次参数的系数,这个更新规则可以看成一种新的类似于但不同于梯度下降的优化算法这样可以自动的学习学习率,还可以对上一次的参数之前加一个参数(类似于正则化的效果,权重衰减)
【参考:https://blog.csdn.net/weixin_37589575/article/details/96995985】

(四) Discuss and summary

第一种方式是利用现有的θ0初始化任务,这样的方式的计算成本更低,但是θ0是从不同于当前的任务中获取的,可能会降低精度(不太明确作者这段的意图,本身就是为了提高精度才迁移的呀)
另外两种全都是依赖于元学习的方法,目前如何避免负迁移是一个重要的研究方向。

Future network

接下来作者从问题设定,技术,应用以及原理等方向讲了下接下来的发展并总结。

你可能感兴趣的:(算法)