1. Introduction
成功从很少的样本中学习和概括的能力是区分人工智能和人类智能的一个明显的边界。人类智能的一个特点是能够从一个或几个例子中快速建立对概念的认知。相关研究表明:人类的显著学学习能力得益于人脑中前额叶皮层(PFC)和工作记忆,特别是PFC特有的神经生物学机制与大脑中存储的以往经验的相互作用。
深度学习算法成功主要归结于三个关键因素:强大的计算资源、复杂的神经网络结构;大规模的数据集。在真实的应用场景中,如医学、军事和金融领域,无法获取到充足的标注样本。因此从很少的样本中学习和概括的能力至关重要。
研究小样本学习(Few Shot Learning, FSL)的意义如下:FSL不依赖于大规模的训练样本、缩小AI与人类智慧的差距、可以实现低成本、快速的模型部署。受限于机器学习的优化理论,如果一个学习算法仅通过普通的学习技术处理一个FSL任务,而没有任何复杂的学习策略或特定的网络设计,该学习算法将面临严重的过拟合。
论文贡献如下:
- 2000-2019年的FSL论文概述,从凝固学习到元学习
- 将现有FSL方法分为基于生成模型的方法和基于区分模型的方法
- 当前的主流方法是基于元学习的方法
- 总结了几个扩展性的研究主题,包括半监督FSL、无监督FSL、跨域FSL、广义FSL和多模态FSL
- 总结了FSL在各个领域的应用,包括计算机视觉、NLP、强化学习和机器人等。
2. Overview
机器学习的一般机制是使用先前准备的训练样本上学习的统计模型对未来数据进行预测,多数情况下,模型的泛化能力是由足够数量的训练样本保证的。实际应用中,我们可能只被允许访问少量的数据。
EG Miller等人在2000年提出数字变换的共享密度,并提出了凝结算法,使测试数字图像与特定类别的凝结数字图像相一致,此后越来越多的人致力于FSL的研究。FSL的研究分为两个阶段,2000-2015年为非深度阶段,2015年至今为深度学习阶段,前一阶段的代表作包括:
- Congealing algorithm 最早研究如何从很少的样本中学习
- Variational Bayesian framework (VBF)最早阐述one shot learning的工作
- Bayesian Program Learning (BPL)利用人类在新概念认知中的合成能力、因果关系和想象力,达到了人类水平的一次性字符分类性能
后一阶段的代表作可以分为基于生成模型的方法和基于判别模型的方法,基于生成模型的方法是直接对后验概率进行建模,以作为模型输入,输出属于任务类的概率分布;基于判别的方法直接使用贝叶斯决策解决
- 基于生成模型的方法包括NeuralStatistician、Sequential GenerativeModel
- 基于判别模型的方法包括MatchingNets、MAML、Meta-LearnerLSTM、MANN、MetaNet、PrototyoicalNets、RelationNet和LGM-Nets
一些定义
3. 基于生成模型的方法
基于生成模型的FSL方法寻求建模后验概率,通常情况下,寻找数据x和标签y的概率关系并不简单,可行策略是引入中间潜变量z:
- 凝聚算法:假设每个数字类别存在一个潜影(latent image),属于该类别的所有观察图像都是通过一些底层变换从潜影生成。
- VBF算法:使用概率模型测量目标存在于一幅RGB图像中的概率,概率模型涉及许多需要学习的参数,VBF使用constellation模型(x星座模型)定义,并使用变分方法估计辅助集上的z
- HB(Hierarchical Bayesian,分层贝叶斯)模型:同一超类(superclass)下的类集成相同的相似性度量
- BPL:使用贝叶斯过程将字符对象的生成过程建模为概率程序,该程序将经历对原语、子部分、部分、类型、标记和图像的自底向上解析分析。此外,生成程序中的中间类型和代币被视为潜在变量z。通过每个角色概念的显式概率程序,BPL能够访问角色对象的组成性和因果关系,并且可以执行one-shot分类,在给定一个示例的情况下生成新的示例,并生成新的角色类
- Chopping model引入了辅助集的随机数据分割作为潜变量z,用于连接原始图像x与标签y之间的数学依赖关系
- CPM模型:假设同类字符图像共享相同的基于补丁的结构,将训练集每个类的单个样本分割为一组组件,然后使用AND-OR图在测试集中重建测试样本
- Neural Statistician model 部署了一个深度网络来生成统计数据,该统计数据封装了每个训练集的生成模型
4. 基于判别模型的方法
基于判别模型的FSL方法尝试使用稀缺训练集直接为任务T建模,其计算模型通常包含一个特征抽取器和一个预测器,其类别可以分为基于增广的、基于度量学习的和基于元学习的。
4.1基于增广的方法
视觉领域,常见的增广是通过旋转、翻转、裁剪和添加噪声等方法,这些低级的增广手段不足以提高FSL模型的繁华能力,再次背景下,提出了更为复杂的增广模型。基于增广的方法框架如下:
现有的基于增广的FSL方法可以分为有监督和无监督两类:
1. 基于监督增广的FSL方法包括特征轨迹转移(FFT)、AGA、Dual TriNet、Author-Topic(AT)和ABSNet。
- FFT侧重于one-shot场景的图像分类,它利用场景图像中的连续属性(如雨、暗、晴)定向合成一个样本任务场景类的特征,在辅助类上学习线性映射轨迹;
- AGA方法开发了一个编码器-解码器网络,从而将样本的特征映射到另一个合成特征,该合成特征具有与输入特征不同的属性强度;
- Dual TriNet同样利用编码器-解码器来实现特征级的增强,该方法使用的CNN,而AGA方法使用的MLP
- AT使用主题模型对图像和属性之间的关系进行建模,每个图像被视为包含主题(即属性)混合的文档,并且每个主题由特征表示,在辅助数据集上估计该概率分布的参数,从而生成特定类的大量特性;
- ABS-Net首先在辅助数据集上执行属性学习过程,这将允许建立属性特征库,给定一个类的属性描述,在存储库上执行概率抽样操作,将属性映射到该类的伪特征
2. 基于无监督的增广方法包括GentleBoostKO、Shrinking and Hallucainating(SH)、Hallucinator、CP-ANN、DAGAN、IDeMe-Net等,寻求在没有任何外部信息的情况下增加数据或特征。
- GentleBoostKO通过剔除程序合成特征,通过讲一个特征的一个元素替换为同一坐标中另一个特征的元素来实现剔除;
- SH基于这样一种动机,即类内的差异可以在类之间推广(如姿势变换)
- Hallucinator使用基于MLP的生成器来增强训练样本的特征,其框架如下图:
- CP-ANN使用生成对抗网络实现对少数支持样本的特征增强
- ADGAN在训练集中采集样本作为输入并直接生成类内数据
- IDeMe-Net作者认为两幅相似图像之间的视觉融合可以维持关键语义信息,并有助于形成最终分类器的决策边界,因此设计了IDeMe-Net来生成少量支持样本的变形图像
4.2 度量学习
度量学习的一般目标是学习一个成对的相似度量S,在该度量下相似样本对可以获得较高的相似性分数,而不同样本对可以获得较低的相似性分数。基于度量学习的框架如下所示:
度量学习使用辅助数据集创建相似性度量,并将其推广到新的任务T类,相似性度量可以是一个简单的距离度量、一个经过验证的网络或其他可行的模块或算法。几种具有代表性的基于度量的FSL方法包括CRM、KernelBoost、Siamese Nets、Triplet Ranking Nets、SRPN、MM和AdaptHistLoss。
- CRM方法是基于度量学习的FSL方法的基础性工作,使用马氏距离来衡量相似性,其学习目标是使正样本对的距离比负样本对的距离至少小于阈值y:
- KernelBoost使用boosting算法以核函数的形式学习成对距离,核函数被定义为一些弱核函数的组合
- SiameseNets是第一个深度神经网络引入FSL任务的工作,由共享相同权重的两个CNN组成,这两个CNN接受一对样本作为输入,在顶层的输出被合并,以输出单个成对的相似性,其损失函数选用BCEloss
- Triplet Ranking Nets将Siamese Nets从成对的样本扩展为三元组,使用三元组的排序损失优化度量空间,然后捕获样本的相似性。
- SRPN为Siamese Nets的变种,设计两方面的修改:一是将SiameseNets顶层的简单成对组合替换为更为复杂的Skip residual networks;二是使用额外的GAN通过将Skip Siamese Nets作为鉴别器网络并引入另一个基于自动编码的生成器来正则化Skip residual networks。
- MM开发了一个long-term 内存模块来学习相似度量
- AdaptHistLoss使用直方图损失来学习一个特征空间,其中简单的余弦距离可以有效地度量两个特征之间的相似性
4.3 元学习
元学习提倡跨任务学习,然后适应新的任务。它旨在学习任务水平而不是样本,并学习任务无关的学习系统而不是特定于任务的模型。
元学习分为两个阶段处理FSL问题:元训练和元测试。元训练中,模型暴露于许多独立的监督任务,这些任务在辅助数据集上构建,以了解如何适应未来的相关任务,所有的任务都来自于同一个任务分布并遵循相同的任务范式;元测试阶段,模型在一个新任务上进行测试,该任务的标签控件与元训练中看的标签不相交。基于元学习的FSL方法分为5个子类,L2M,L2F,L2P,L2A和L2R。
4.3.1 L2M
L2M Learn-to-Measure,L2M方法本质上继承了度量学习的主要思想,使用元学习策略来学习预期可在不同任务键转移的相似性度量。
- Prototypical Nets和其变种是L2M的先驱,该方法使用辅助数据人工构造了一些microsets测试场景,每个microset包含几个非任务类的support和query样本,相似性度量使用欧氏距离,NCA用于测量最终概率。该类方法的演化如下:
- Matching Nets 和其变种,MatchingNets是第一个基于深度学习的L2M方法,它用过测量查询样本与每个支持样本的余弦相似性来预测的概率。
- Relation Net和其变种使用了可学习的CNN来测量成对相似度
4.3.2 L2F
L2F Learn-to-Finetune,每种L2F方法都包含一个基础学习者和一个学习者。基础学习者针对特定的任务,以样本为输入,输出预测概率;更高层次的元学习者通过在一系列元训练任务重学习基础学习者,以最大化基础学习者在所有任务中的综合概括能力。令和分别为基础学习者和元学习者的参数
- MAML方法和新思想是通过交叉任务训练策略为基础学习者参数寻找一个良好的参数初始化,使基础学习者能够使用少量样本快速概括新任务。具体来说,当基础学习者处理任务T时,基础学习者的更新方程为:
其中,为学习率,L为损失函数。元学习阶段,MAML通过平衡损失和更新的 来优化元学习者:
- Meta-SGD提出元学习不仅是基础学习者的初始化,还包括基础学习者的更新方向和学习率,该方法将学习率修改为可学习的,并将其添加到元学习者的参数中:
- DEML对Meta-SGD进行了增量修改,为元学习者配备了概念生成器,使得学习能够在高级概念空间中学习
- MT-net提出将元学习者的参数空间缩减为各层激活空间构成的子空间,并在该空间上进行快速学习
- Reptile直接将元学习者参数修改为在许多任务重更新的基础学习者参数
- LLAMA 通过分层贝叶斯重新构造了MAML
- PLATIPUS使用概率图模型扩展了MAML
- BMAML将MAML与非参数变分推理相结合
- TAML对初始模型增加了无偏任务的不可知先验
- LEO设计了一个设计了一个latent embedding,通过编码器生成基本的学习者参数
- CAML利用标签结构根据当前任务调整基础学习者的表征。
- 另外一个代表性的方法是基于LSTM的元学习者根据少数支持样本对基础学习者进行微调。
4.3.3 L2P
L2P,Learn-to-Parameterize的思想是为新任务参数和基础学习者或者基础学习者的某些子部件,使其更为具体的处理某些任务。大多数的L2P方法也包括基本学习者和元学习者,与L2F的区别在于,L2P方法的两个学习者在每个任务中同步训练,元学习者本质上是任务特定的参数生成器。对于某个任务T,元学习者需要根据任务T的少数支持样本和处理这些样本的当前基础学习者的状态,为基础学习者或其子部分生成一些特定于T的参数。
4.3.4 L2A
L2A,Learn-to-Adjust的核心思想是为特定样本自适应的调整基础学习者中的计算流程或计算节点,使样本与基础学习者兼容。L2A与L2P同样使用元学习者来改变基础学习者,二者的区别在于:一是L2A仅对基础学习者进行一些增量调整,而不是对基础学习者和其子部分进行完全参数化,改变程度较轻;二是L2A方法对基础学习的更改更加细粒度,L2A的调整特定于样本,L2P的参数化是特定于任务的。
4.3.5 L2R
L2R,Learn-to-Remember的主要思想是将FSL任务的支持集建模为序列,并将FSL任务表述为序列学习任务。
4.3.6 总结:
L2M方法只利用样本的相似性进行推理,无需考虑类的数量和每个类的支持样本,因此不会收到测试场景的特定设置的限制;L2F方法需要使用少数支持样本对每项新任务进行微调,可能产生一个相对较长的适应期来准备每项任务;L2A和L2A必须部署用于基础学习者完全不同的另一个元学习者来生成一系列的模型参数,因此其勉励你的挑战是大量的模型参数,增加了模型训练的难度。
4.4 其他方法
- 多任务学习提倡同步学习多个任务,方法是使上游的嵌入模块在任务之间隐式或显式共享,并使下游任务模块特定,以期内部表示更加通用。
- 自监督学习目标是只使用数据本身包含的固有信息而不是昂贵的外部标签来学习语义上的有意义表示,研究人员利用数据的结构信息作为自我监督训练网络。
5. Extensional Topics
介绍了几个新的扩展主题,包括半监督FSL、无监督FSL、跨域FSL、广义FSL和多模态FSL。
- 半监督FSL,S-FSL假设N-way K-shot任务的训练集不仅包含标记的支持样本,还包含一些不属于任务类的未标记样本,研究人员被允许使用半监督训练集构建他们的FSL系统
- 无监督FSL,U-FSL中的辅助数据集完全无监督,其目标是追求一个相对mild的条件类执行FSL,并削弱构建FSL学习者的先决条件。
- 跨域FSL(C-FSL),普通FSL任务中,假设辅助数据集和特定于任务T的数据集均来自相同的数据域,当处理的FSL任务来自于一个没有相关辅助样本可用的新域时,需要利用一些跨域样本作为辅助数据。C-FSL与域适应高度相关,其标签控件在辅助数据集和任务特定的数据集之间不想交,
- 广义FSL,G-FSL的重点是使FSL模型联合处理辅助数据集和特定于任务T的数据集中的所有类。
- 多模态FSL,M-FSL设计来自附加模态的信息和数据,根据附加模态的作用,分为多模态匹配和多模态融合。M-FSL的多模态匹配旨在学习从一个模态到另一个模态的映射;多模态融合允许FSL的学习者使用来自其他模态的额外信息来帮助任务模态中的学习
6. 应用
- 计算机视觉
- 自然语言处理
- 语音
- 强化学习和机器人
- 数据分析
- 跨领域应用
- 其他应用
7. 未来方向
参考:
[1] https://blog.csdn.net/Goodlick/article/details/108637014