注明:本文是对一篇整理166篇文献的综述翻译,其中对应文献地址都已附上为方便点击查看学习。查看有的文献可能需要科学上网。原文文末附有。由于篇幅太长分为上下俩部分。
4 模型
为了近似地面真假说,模型必须确定包含一系列假设的假想空间,以使最优和之间的距离很小。
给定样本数量很少的,可以选择一个简单模型(例如线性分类器)[Machine Learning,Foundations ofmachine learning]的小。 然而,现实世界中的问题通常很复杂,并且不能由小的假设很好地表示(这可能导致(1)中的大)[Deep Learning]。 因此,在FSL中优选使用足够大的,这使得标准的机器学习模型不可行。 本节中的FSL方法通过将E中的先验知识(图2(b))将约束到较小的假设空间来设法学习。这样, 经验风险最小化器就更加可靠,并且降低了过拟合的风险。
根据所使用的先验知识,可以进一步属于此类别的方法分为四种类型(表4)。
4.1 多任务学习
在存在多个相关任务的情况下,多任务学习[Multitask Learning,A survey on multi-task learning]通过利用任务通用信息和特定于任务的信息同时学习这些任务。因此,它们自然可以用于FSL。在这里,我们介绍了在FSL中使用多任务学习的一些实例。
我们获得了与有关的任务,其中一些样本数量很少,而另一些样本数量较多。每个任务都有一个数据集,其中是训练集,是测试集。在这些任务中,我们认为训练较少的任务作为目标任务,其余作为源任务。从去获取的多任务学习为了每一个。当这些任务被共同学习时,为任务学习的的参数受到其他任务的约束。根据任务参数的约束方式,我们将该策略划分为(i)参数共享; (ii)参数绑定[Deep Learning]。
4.1.1 参数共享。
该策略直接在任务之间共享一些参数(图5)。在[Fine-grained visual categorization using meta-learning optimization with sample selection of auxiliary data]中,两个任务网络共享通用信息的前几层,并学习不同的最终层以处理不同的输出。在[Few-shot charge prediction with discriminative legal attributes]中,法律文本上的两个自然语言处理任务被一起解决:收费预测和法律属性预测。使用单个嵌入功能对犯罪案件描述进行编码,然后将其馈送到特定于任务的嵌入功能和分类器。在[Few-shot adversarial domain adaptation]中,变体自动编码器首先从源任务中经过预训练,然后克隆到目标任务中。为了捕获通用信息,两个变体自动编码器中的某些层是共享的,同时允许两个任务都具有一些特定于任务的层。目标任务只能更新其特定于任务的层,而源任务可以同时更新共享和特定于任务的层。在[One-shot unsupervised cross domain translation]中,原始样本和生成样本都首先通过学习源任务和目标任务的单独嵌入函数映射到特定于任务的空间,然后由共享的变分自动编码器嵌入。
4.1.2 参数绑定。
这种策略鼓励不同任务的参数相似(图6)[Deep Learning]。 一种流行的方法是对进行正则化。 在[Multi-task transfer methods to improve one-shot learning for multimedia event detection]中,的所有成对差异都受到了惩罚。 在[Label efficient learning oftransferable representations acrosss domains and tasks]中,有一个CNN用于源任务,另一个用于目标任务。 这两个CNN的层使用一些特殊设计的正则化术语对齐。
4.2 嵌入学习
嵌入学习[Caffe: Convolutional architecture for fast feature embedding,A Comprehensive Introduction to Differential Geometry]将每个样本嵌入到低维,这样相似的样本彼此靠近,而不同的样本则更容易区分。在这个较低维度的中,可以构造一个较小的假设空间,随后需要较少的训练样本。嵌入功能主要是从先验知识中学到的,并且可以额外使用的任务特定信息。
嵌入学习具有以下关键组成部分:(i)嵌入测试的函数样本到,(ii)一个将训练样本嵌入到的函数,和(iii)一个相似函数,它在中测量和之间的相似性,将测试样本分配给类,根据,其嵌入与中的最相似。尽管可以为和使用通用的嵌入函数,但使用两个单独的嵌入函数可以获得更好的准确性[Learning feed-forward one-shot learners,Matching networks for one shot learning]。表5总结了现有的嵌入学习方法。
根据嵌入函数和的参数是否随任务而变化,我们将这些FSL方法分类为使用(i)特定于任务的嵌入模型; (ii)不变任务(即一般)嵌入模型; (iii)混合嵌入模型,可同时编码特定于任务的信息和不变于任务的信息。
4.2.1 特定于任务的嵌入模型。
特定于任务的嵌入方法通过仅使用来自该任务的信息来学习针对每个任务量身定制的嵌入功能。 例如,使用任务中少量的数据,中样本之间的所有成对排名被枚举为
[Few-shot learning through an information retrieval lens]中的样本对。 训练样本的数量因此增加,并且即使仅使用特定于任务的信息也可以学习嵌入功能。
4.2.2 任务不变式嵌入模型。
任务不变的嵌入方法从包含足够样本且具有各种输出的大规模数据集中学习通用嵌入函数,然后将其直接用于新的少量,而无需重新训练(图7)。 第一个FSL嵌入模型[Object Classification from a Single Example Utilizing Class Relevance Metrics]使用内核嵌入样本。 最近,卷积孪生网络(convolutional siamese net)[Signature Verification using a "Siamese" Time Delay Neural Network ]学会了更复杂的嵌入[Siamese neural networks for one-shot image recognition,Few-shot learning for short text classification]。
尽管任务不变嵌入不会使用来更新使用少量的嵌入模型参数,此类别中的许多方法[Prototypical Networks for Few-shot Learning,Learning to Compare: Relation Network for Few-Shot Learning,Matching networks for one shot learning]在训练嵌入模型时模拟了少量的方案。假设我们有训练集,每个训练集都有个课程。在每个中,仅从个类别中的个样本进行训练。通过最大化其余类的性能来优化嵌入模型。因此,学习的模型将对少量任务具有良好的概括性。早期尝试[Optimizing one-shot recognition with micro-set learning]从学习线性嵌入。最近,通过meta-learning方法学习了更复杂的任务不变嵌入模型:
(1)匹配网络(Matching Nets) [Matching networks for one shot learning]及其变体[Low data drug discovery with one-shot learning、Learning algorithms for active learning、Structured set matching networks for one-shot part labeling]:Matching Nets [Matching networks for one shot learning] meta-learning不同的嵌入函数(和)用于训练样本和测试样本。残余LSTM(resLSTM)[Low data drug discovery with one-shot learning]为和提出了更好的设计。 Matching Nets的一种主动学习变体[Learning algorithms for active learning]添加了一个样本选择步骤,该步骤标记了最有益的未标记样本,并使用它来增强。 Matching Nets还扩展到了Set-to-Set匹配[Structured set matching networks for one-shot part labeling],这在标记样品的多个部分时很有用。
(2)原型网络(ProtoNet)[Prototypical networks for few-shot learning]及其变体[TADAM: Task dependent adaptive metric for improved few-shot learning、Metalearning for semi-supervised few-shot classification、Low-shot learning from imaginary data]:ProtoNet [Prototypical networks for few-shot learning]仅比较中的类原型的,而不是将与每个的比较。 对于类,其原型只是,其中是来自类。根据经验,这将导致更稳定的结果并降低计算成本。使用原型的想法在[Low-shot learning from imaginary data]中引入了Matching Nets。 ProtoNet的半监督变体在学习过程中通过软分配来分配未标记的样本以增强[Metalearning for semi-supervised few-shot classification]。
(3)其他方法。例子包括Attentive Recurrent Comparators(ARC)[Attentive recurrent comparators],它使用LSTM引起关注[Neural machine translation by jointly learning to align and translate)],将的不同区域与原型进行比较,然后将比较结果作为中间嵌入进行嵌入。此外,它使用bidirectional LSTM(biLSTM)嵌入所有比较作为最终嵌入。Relation Net [Learning to compare: Relation network for few-shot learning]使用CNN将和嵌入,然后将它们串联在一起作为嵌入,然后将其馈送到另一个CNN以输出相似度得分。 [Learning to propagate labels: Transductive propagation network for few-shot learning,Few-shot learning with graph neural networks]中使用图神经网络(graph neural network-GNN)来利用来自本地社区的信息。在少量的强化学习应用程序中(如在连续控制和视觉导航中),时间信息很重要。Simple Neural AttentIve Learner(SNAIL)[A simple neural attentive meta-learner]是一个具有交错的时间卷积层和注意力层的嵌入网络。时间卷积层聚合来自过去时间步长的信息,而注意层有选择地关注与当前输入有关的特定时间步长。
4.2.3 混合嵌入模型。
尽管可以将任务不变的嵌入方法以较低的计算成本应用于新任务,但是它们没有利用当前任务的特定知识。 当任务特制是仅提供一些样本的原因(例如,学习稀有情况)时,仅应用任务不变的嵌入功能可能不适合。 为了缓解此问题,混合嵌入模型通过中的特定于任务的信息来适应从先验知识中学到的通用任务不变式嵌入模型。这是通过学习将提取的信息作为输入并返回一个嵌入函数的函数来完成的 的参数(图8)。
Learnet [Learning feed-forward one-shot learners]通过合并的具体信息改进了任务不变卷积孪生网络[Siamese neural networks for one-shot image recognition]。 它从多个元训练集中学习一个元学习器,并将每个训练示例映射到学习者(卷积孪生网络)的参数。 这样,的参数随给定的改变,从而导致混合嵌入。 对Learnet进行了改进,在[Meta-learning with differentiable closed-form solvers]中,将学习者的分类层替换为岭回归,从而可以有效地以封闭形式获取参数。 以下两项工作[Tadam:Task dependent adaptive metric for improved few-shot learning,Dynamic conditional networks for few-shot learning]将作为一个整体来输出的任务特定参数。 任务相关的自适应量度(Task dependent adaptive metric-TADAM)[TADAM: Task dependent adaptive metric for improved few-shot learning]将类原型平均化到任务嵌入中,并使用元学习函数将其映射到ProtoNet参数。 动态条件卷积网络-Dynamic Conditional Convolutional Network (DCCN) [Dynamic conditional networks for few-shot learning]使用一组固定的滤波器,并使用学习组合系数。
4.3 基于外部记忆学习
使用外部存储器学习[Neural Turing machines、Key-value memory networks for directly reading documents、End-to-end memory networks、Memory networks)]从中提取知识,并将其存储在外部存储器中(图9)。 然后,每个新样本由从内存中提取的内容的加权平均值表示。 这限制了由内存中的内容表示,因此实质上减小了的大小。
FSL中通常使用键值存储器[Key-value memory networks for directly reading documents]。 设记忆为,每个
它的个存储槽由键值对组成。 首先通过嵌入函数嵌入测试样本。 但是,与嵌入方法不同,不能直接用作的表示。 取而代之的是,它仅用于从最相似的内存插槽中查询,基于与每个密钥之间的相似度。 提取最相似的内存插槽()的值并将其合并以形成的表示形式。 然后将其用作简单分类器(例如softmax函数)的输入以进行预测。 由于操纵的成本很高,因此通常尺寸较小。 当未满时,可以将新样本写入空闲的存储插槽。 当已满时,必须决定要更换的内存插槽。 表6介绍了带有外部存储器的方法的特性。
由于每个表示为从内存中提取的值的加权平均值,因此内存中的键值对的质量很重要。 根据存储器的功能,该类别中的FSL方法可分为两种类型。
4.3.1 完善表示形式
下列方法将小心地放入内存中,以便存储的键值对可以更准确地表示。记忆增强神经网络(Memory-Augmented Neural Networks (MANN) [Meta-learning with memory-augmented neural networks]元学习嵌入,并将相同类别的样本映射到相同值。然后,同一类的样本一起在内存中优化它们的类表示。该类表示可以看作是ProtoNet [Prototypical networks for few-shot learning]中的一个改进的类原型。基于urprise-based memory模块[Adaptive posterior learning: Few-shot learning with a surprise-based memory module]仅在不能很好地表示时,更新。因此,使用该更新使得更具表达性,并且还降低了计算成本。abstract memory[Few-shot object recognition from machine-labeled web images]使用两个存储器。一种从包含大型机器注释数据集的固定存储器中提取相关的键值对,另一种则对提取的值进行精炼并提取出最有用的信息,以进行少量样本(图像)分类。这个想法在[Compound memory networks for few-shot video classification]中扩展到了少量样本视频分类。
因此,某些方法在存储器中特别注意保护少量分类。请注意,少量样本分类很小,因此保留在中的机会较小。中的每个少量样本也可以很容易地用更丰富类中的样本替换。为了减轻这个问题,提出了终身存储器lifelong memory[Learning to remember rare events]。与以前的存储器[Adaptive posterior learning: Few-shot learning with a surprise-based memory module、Meta-learning with memory-augmented neural networks、Few-shot object recognition from machine-labeled web images、Compound memory networks for few-shot video classification]会擦除任务中的存储器内容不同,终身存储器会在存储器已满时擦除“最旧”的存储器值,然后将所有存储器插槽的使用期限重置为零。对于新样本,当返回的值与其实际输出匹配时,它将与当前合并,而不是写入新的内存插槽,因此,所有类都更有可能被占用相同数量的内存插槽,稀有类受到保护,近来,这种终身内存适用于学习[Memory, show the way: Memory based few shot word representation learning]中的单词表示。
然而,即使使用了终身内存,仍会忘记稀有样本。更新后,终生内存会将所选的使用期限重置为零,并将其他非空内存插槽的使用期限增加一。当内存已满且返回值错误时,将替换最早的内存插槽。由于稀有类别的样本很少更新其,因此它们被擦除的可能性更高。
4.3.2 优化参数。
回想一下,Learnet [Learning feed-forward one-shot learners]及其变体(第4.2.3节)从映射信息,以参数化新的嵌入函数。可以使用存储器来完善此参数。 Meta Networks(MetaNet)[Meta networks]使用从多个数据集元学习的“slow”权重和作为特定任务的嵌入的fast权重,对分类模型进行参数化。如[Rapid adaptation with conditionally shifted neurons]所示,通过学习修改每个神经元而不是完整的参数,可以减少MetaNet的计算成本。 MN-Net [Memory matching networks for one-shot image recognition]使用内存来完善在Matching Nets中学习的嵌入,如Learnet一样,其输出用于对CNN进行参数化。
4.4 生成建模
生成建模方法借助先验知识(图10)从观测到的估计概率分布。的估计通常涉及和的估计。 此类中的方法可以处理许多任务,例如生成[Towards a neural statistician、Human-level concept learning through probabilistic program induction、Few-shot autoregressive density estimation: Towards learning to learn distributions、One-shot generalization in deep generative models],识别[Towards a neural statistician、One-shot learning of object categories、Meta-learning probabilistic inference for prediction、Human-level concept learning through probabilistic program induction、One-shot learning with a hierarchical nonparametric Bayesian model、Learning to learn with compound HD models、MetaGAN: An adversarial approach to few-shot learning],重构[Meta-learning probabilistic inference for prediction]和图像翻转[Few-shot autoregressive density estimation: Towards learning to learn distributions]。
在生成建模中,假定观测到的是从由参数化的某个分布得出的。通常,存在一个潜在变量,因此。从其他数据集获悉的先验分布带来了对FSL至关重要的先验知识。通过将提供的训练集与此组合,可以约束所得的后验概率分布。换句话说,被限制为更小的。
根据潜在变量的表示,我们将这些FSL生成建模方法分为三种类型。
4.4.1 可分解成分。
尽管在FSL问题中缺少具有监督信息的样本,但它们可能与其他任务的样本共享一些较小的可分解组件。例如,考虑仅使用提供的几张面部照片识别一个人。尽管可能很难找到相似的面孔,但可以轻松找到眼睛,鼻子或嘴巴相似的照片。使用大量样本,可以轻松了解这些可分解组件的模型。然后,仅需要找到这些可分解组件的正确组合,并确定该组合属于哪个目标类。由于可分解成分是由人类选择的,因此这种策略更具可解释性。 Bayesian One-Shot [One-shot learning of object categories]使用生成模型来捕获可分解组件(即对象的形状和外观)与目标类别(即要识别的对象)之间的交互。贝叶斯程序学习(Bayesian Program Learning-BPL)[Human-level concept learning through probabilistic program induction]通过将字符分为类型,标记以及其他模板,部分和原语来对字符进行建模。为了产生一个新的角色,需要搜索一个包含这些成分的大组合空间。在[Human-level concept learning through probabilistic program induction]中,仅通过考虑可能的最高组合就可以降低这种推理成本。在自然语言处理中,最近的工作[Extending a parser to distant domains using a few dozen partially annotated examples]建立了跨度而不是完整的解析树的模型,并通过训练跨度的单个分类器来使语法分离的域之间的解析器适应。
4.4.2 按组共享优先级
通常,相似的任务具有相似的先验概率,并且可以在FSL中使用。例如,考虑“橙色猫”,“豹”和“孟加拉虎”的三级分类,这三个物种相似,但孟加拉虎濒临灭绝,而橙色猫和豹则丰富,因此,人们可以学习一种先验概率来自“橙色猫”和“豹”,并以此作为先发几率的“孟加拉虎”类。
在[One-shot learning with a hierarchical nonparametric Bayesian model]中,一组数据集通过无监督学习被分组为一个层次结构。数据每个小组中的集合一起学习分类先验概率。对于一个新的少量样本,首先要找到该新类所属的组,然后根据从按组共享的先验概率中提取的先验类对它进行建模。在[Learning to learn with compound HD models]中,[One-shot learning with a hierarchical nonparametric Bayesian model]中的特征学习步骤通过使用深度玻尔兹曼机[Deep boltzmann machines]得到进一步改进。
4.4.3 推理网络的参数
为了找到最佳θ,必须最大化后验
由于分母中的积分,所以难于求解(2)。 从数据中学习到的变化分布,通常用于近似。 最近,这个是通过使用推理网络进行分期的变分推理来估计的[158]。 尽管不再具有语义含义,但是这些深度模型学习到的强大表示形式可以带来更好的性能。 一旦学习,推理网络就可以直接应用于新任务,这将更加高效并且需要更少的人类知识。 由于推理网络具有大量参数,因此通常使用一些辅助大规模数据集对其进行训练。 许多经典的推理网络都适用于FSL问题。 例如,在[Towards a neural statistician,The variational homoencoder: Learning to learn high capacity generative models from few examples,One-shot generalization in deep generative models]中使用变分自编码器(ariational auto-encoder-VAE)[Auto-encoding variational Bayes],在[Few-shot autoregressive density estimation: Towards learning to learn distributions]中使用自回归模型[Conditional image generation with PixelCNN decoder],在[MetaGAN: An adversarial approach to few-shot learning]中使用生成对抗网络(generative adversarial networks -GAN)[Generative adversarial nets],并在[Meta-learning probabilistic inference for prediction]中提出了VAE和GAN的组合。
4.5 讨论和总结
当存在类似的任务或辅助任务时,可以使用多任务学习来约束少量样本任务的。但是,请注意,需要共同培训所有任务。因此,当一个新的少量样本任务出现时,整个多任务模型必须再次训练,这可能既昂贵又缓慢。此外,和的大小不应具有可比性,否则,少量样本的任务可能会被具有许多样本的任务淹没。
如果存在一个包含足够数量的各种类别样本的大规模数据集,则可以使用嵌入学习方法。这些方法将样本映射到良好的嵌入空间,在其中可以很好地分离来自不同类别的样本,因此需要较小的。但是,他们当少量样本任务与其他任务没有密切关系时,可能无法正常工作。此外,更多有关如何混合任务的不变和特定于任务的信息的探索是有帮助的。
当有可用的内存网络时,可以通过培训简单的方法将其轻松用于FSL。内存顶部的模型(例如分类器)。通过使用精心设计的更新规则,可以有选择地保护内存插槽。该策略的弱点在于,它会导致额外的空间和计算成本,随着内存大小的增加而增加。因此,当前的外部存储器具有有限的大小。
最后,当除了FSL之外还想要执行诸如生成和重构之类的任务时,可以使用生成模型。他们从其他数据集中学习了先验概率,这将减小到了更小的 。学习的生成模型也可以用于生成样本数据扩充。但是,生成建模方法具有较高的推理成本,比确定性模型更难得到。
5 算法
该算法是在假设空间中搜索最佳假设 [The tradeoffs of large scale learning,Optimization methods for large-scale machine learning]的参数的策略。 在第次迭代中,,其中是更新。 例如,对于流行的随机梯度下降(stochastic gradient descent -SGD)及其变体[The tradeoffs of large scale learning,Optimization methods for large-scale machine learning],更新为
其中
当监督信息丰富时,有足够的训练样本来更新
本节中的方法使用先验知识来影响
(i)提供良好的初始化参数
(1)细化现有参数。 初始是从其他任务中学到的,然后使用进行优化。
(2)完善元学习参数。 初始是从一组任务中元学习的,这些任务是从与少量样本任务相同的任务分布中得出的,然后由学习者使用进一步完善。
(3)学习优化器。 此策略将学习元学习器作为优化器,以直接为每个学习者输出搜索步骤,例如更改搜索方向或步骤大小。
5.1 细化现有参数
该策略将从相关任务中学习到的预训练模型的当作一个良好的初始化,并通过将其调整为。 假设捕获了大规模数据的一些一般结构。 因此,可以通过几次迭代将其适应于。
5.1.1 通过正则化微调现有参数
该策略通过正则化来微调少量样本任务的预训练(图11),并在实践中广泛使用。 在[One-shot video object segmentation]中,使用大型数据集对在ImageNet上预先训练的用于图像分类的CNN进行前景分割,然后使用单个分割对象的镜头对目标图像进行进一步调整。 给定少量样本的,仅通过梯度下降微调可能会导致过度拟合。 因此,如何在不过度拟合的情况下适应是一个关键的设计问题。
在本节中,方法通过正则化微调以防止过度拟合。他们可以分以下几种类型:
(1)尽早停止。它需要将验证集与分开以监视训练程序。当验证集的性能没有提高时,学习就会停止[6]。
(2)有选择地更新。为了避免过拟合,仅更新的一部分。例如,在[Learning structure and strength ofCNN filters for small sample size training]中,给定一组预训练的过滤器,它仅学习与过滤器相乘的强度参数。
(3)一起更新的相关部分。可以将的元素(例如深层神经网络中的神经元)分组,并使用相同的更新信息共同更新每个组。在[Efficient k-shot learning with regularized deep networks]中,预训练的CNN的过滤器根据一些辅助信息聚类在一起,然后使用通过逐组反向传播进行微调。
(4)使用模型回归网络。模型回归网络[Learning to Learn: Model Regression Networks for Easy Small Sample Learning]捕获与任务无关的转换,该转换将通过对少量样本进行训练而获得的参数值映射到将对大量样本进行训练而获得的参数值。类似地,在[CLEAR: Cumulative learning for one-shot one-class image recognition]中,学习了将的嵌入映射到分类决策边界的变换函数。
5.1.2 汇总参数
有时,我们没有合适的开始。 相反,我们有许多模型是从相关任务中学到的。 例如,在面部识别中,我们可能已经具有针对眼睛,鼻子和耳朵的识别模型。 因此,可以将这些模型参数汇总为合适的模型,然后直接使用它或由对其进行完善(图12)。
如第3节所述,来自未标记数据集(第3.2节)和类似标记数据的样本集(第3.3节)可用于增强少量样本。代替直接使用样本,以下方法使用从这些数据集中预先训练的模型(参数为)。然后的问题是如何使用使它们有效地适应新任务。
(1)未标记的数据集。尽管没有监督信息,但是可以将相似的样本分组在一起。因此,可以从未标记的数据中预训练功能,以很好地聚类和分离样本。然后,使用神经网络通过少量的使它们适应新任务[Learning from small sample sets by combining unsupervised meta-training with CNNs,Learning to Learn: Model Regression Networks for Easy Small Sample Learning]。
(2)相似的数据集。在[Cross-generalization: Learning novel classes from a single example by feature replacement]中,通过利用来自相似类的样本和分类器来执行少量对象分类。首先,它用新类的特征替换了这些相似类的样本特征。然后将学习的分类器重新使用,并且仅针对新类调整分类阈值。在[Dynamic few-shot visual learning without forgetting,Diverse few-shot text classification with multiple metrics]中,他们学习使用结合从相似数据集中学习的现有参数。
5.1.3 使用新参数微调现有参数
预训练的可能不足以完全编码新的FSL任务。因此,使用一个附加参数来考虑的特殊性(图13)。具体而言,该策略将模型参数扩展为,并在学习的同时微调。在[One-shot adaptation of supervised deep convolutional models]中,它使用预训练的CNN的较低层进行特征嵌入,并使用学习嵌入特征上的线性分类器。在字体样式转移[Multi-content GAN for few-shot font style transfer]中,首先对网络进行预训练以捕获灰色图像中的字体。为了生成时尚的彩色字体,需要对它进行微调,并与其他网络进行训练。
5.2 完善元学习参数
本节中的方法使用元学习来完善元学习参数(图14)。 元学习器根据学习者的表现不断优化。 这与第5.1节(其中固定)不同。
元学习的通常通过梯度下降来完善。 代表性的方法是Model Agnostic Meta-Learning(MAML)[Model-agnostic meta-learning for fast adaptation of deep networks]。 它的元学习,然后通过一些有效的梯度下降步骤将其调整为一些以获得良好的任务特定参数,例如:。 在这里
是中训练样本的损失总和,是步长。 请注意,不随样本的排列而变化。元学习参数通过多个元训练任务的反馈更新为其中是中测试样品损失的总和,是另一个步长。 通过使用中的少量样本不断完善,元学习器会提高以快速适应少量训练集样本。
最近,针对MAML提出了许多改进,主要是在以下三个方面:
(1)合并特定于任务的信息。 MAML为所有任务提供相同的初始化。但是,这忽略了特定于任务的信息,并且仅在任务集都非常相似时才适用。为了解决这个问题,在[Gradient-based meta-learning with learned layerwise metric and subspace]中,它学习从一个好的初始化参数的子集中为新任务选择。
(2)对使用元学习的不确定性进行建模。学习一些例子不可避免地会导致模型具有更高的不确定性[Probabilistic model-agnostic meta-learning]。因此,学习的模型可能无法以高置信度对新任务执行预测。测量这种不确定性的能力为主动学习和进一步的数据收集提供了提示[Probabilistic model-agnostic meta-learning]。有一些工作考虑了元学习的[Probabilistic model-agnostic meta-learning,Bayesian model-agnostic meta-learning]的不确定性,特定任务的 [Recasting gradient-based meta-learning as hierarchical Bayes,Amortized Bayesian meta-learning]的不确定性以及类的特定类参数 [Meta-learning with latent embedding optimization]的不确定性。
(3)完善炼制程序。通过几个梯度下降步骤进行细化可能不可靠。正则化可用于校正下降方向。在[Few-shot human motion prediction via meta-learning]中,模型回归网络[Learning to Learn: Model Regression Networks for Easy Small Sample Learning]用于将任务的正则化,使其更接近于使用大规模样本训练的模型。
5.3 学习优化器
在5.2节中,元学习器可以很好地初始化数据的,并通过一些有效的梯度下降步骤将其调整为特定于任务的参数。 相反,本节中的方法不是使用梯度下降,而是学习可以直接输出更新的优化程序((4)中的
)(图15)。 然后,无需调整步长或查找搜索方向,因为学习算法会自动执行此操作。
在第t次迭代中,这里的工作[Learning to learn by gradient descent by gradient descent,Optimization as a model for few-shot learning]学习一个元学习器,该元学习器采用在第次迭代中计算出的误差信号,并直接输出更新以更新学习者的特定于任务的参数为。因此,与第5.1节和第5.2节中提到的策略相反,该策略为新任务提供了优化器(由学习者对其进行了优化)。然后,使用第个样本,将此用于计算损耗,下一次迭代,它充当要馈入元数据的误差信号给元学习者。学习任务后,通过对测试集的损失进行梯度下降来改善元学习器。通过从得出的一组中学习,元学习器改进了为FSL提出高效算法的提议。最近,[Optimization as a model for few-shot learning]通过用LSTM中的单元状态更新实例化(3)(其中设置为LSTM的单元状态)来获得。
5.4 讨论和总结
细化现有参数可以减少的搜索工作。通过使用现有的作为初始化,这些方法通常需要较低的计算成本来获得良好的假设。学习着重于细化这些现有参数。但是,由于从与当前任务不同的任务获知,因此该策略可能会牺牲精度以提高速度。
另外两种策略依赖于元学习。通过从一组相关任务中学习,金属化的可以更接近于新任务的任务特定参数。元学习者学习搜索步骤可以直接指导学习算法。换句话说,元学习器充当优化器。然而,诸如如何跨不同粒度进行元学习(例如动物的粗粒度分类与狗物种的细粒度分类)或不同的数据源(例如图像与文本)[Meta-dataset: A dataset of datasets for learning to learn from few examples]等重要问题仍然存在。从这个角度来看,元学习和多任务是相似的,因此也存在着如何避免负迁移的担忧[The effects of negative adaptation in Model-Agnostic Meta-Learning]。
6 展望
在本节中,我们讨论了FSL进一步发展的四个关键方向,即(i)问题设置,(ii)技术,(iii)应用程序和(iv)理论。
6.1 问题设置
现有的FSL方法通常使用一种模态(例如图像,文本或视频)中的先验知识。但是,尽管有一些当前使用的模态示例,但可能存在另一种模式,其中受监督的样本很多。灭绝动物的研究就是一个例子。尽管这种动物可能只有有限的视觉示例,但由于人们倾向于特别注意这种稀有动物,因此在文本领域(例如教科书或网页)中可能会有很多有关它的信息。因此,来自多种模态的先验知识可以为补充视图提供先验知识。在零次学习(zero-shot learning -ZSL)中,经常使用多模式数据。例如先验信息是属性[Label-embedding for attribute-based classification、A unified semantic embedding: Relating taxonomies and attributes],WordNet [Label-embedding for attribute-based classification、A unified semantic embedding: Relating taxonomies and attributes],词嵌入[Improving one-shot learning through fusing side information、Multi-attention network for one shot learning],共现统计[Costa: Co-occurrence statistics for zero-shot classification]和知识图谱[Zero-shot recognition via semantic embeddings and knowledge graphs]。
最近,人们一直在努力从ZSL方法到FSL问题借用技术。例如,一个人可以通过ZSL方法使用小样本的来微调学习的参数[Label-embedding for attribute-based classification、A unified semantic embedding: Relating taxonomies and attributes]。但是,使用少量样本进行微调可能会导致过拟合。另一种可能性是迫使通过多种模态学习的嵌入在共享空间中进行匹配[Improving one-shot learning through fusing side information、Multi-attention network for one shot learning]。最近的工作[Few-shot and zero-shot multi-label learning for structured label spaces]利用标签之间的结构化关系,并利用GNN来对齐FSL的嵌入。由于不同的模式可能包含不同的结构,因此应谨慎处理。例如,文本需要服从句法结构,而图像则不需要。未来,一个有希望的方向是在设计FSL方法时考虑使用多模式信息。
6.2 技术
在前面的部分中,根据如何使用FSL中的先验知识,我们从数据(第3节),模型(第4节)和算法(第5节)的角度对FSL方法进行了分类。这些组件中的每一个都可以得到改进。例如,使用最新的ResNet [Deep residual learning for image recognition]作为嵌入功能可能比使用VGG [Training very deep networks]更好。
如第4节和第5节所述,基于元学习的FSL方法特别有趣。通过跨任务学习,元学习可以以很小的推理成本快速适应新任务。但是,通常认为在元学习中考虑的任务是从单个任务分布中提取的。在实践中,我们可以拥有大量任务相关性未知或难以确定的任务。在这种情况下,直接从所有这些任务中学习可能会导致负迁移[The effects of negative adaptation in Model-Agnostic Meta-Learning]。此外,当前的FSL方法通常考虑静态和固定的[Model-agnostic meta-learning for fast adaptation of deep networks,Optimization as a model for few-shot learning]。但是,在流动应用中,是动态的[Meta-learning and universality: Deep representations and gradient descent can approximate any learning algorithm],并且新任务不断出现。因此,这也应纳入。一个重要的问题是如何在动态设置中避免灾难性的遗忘[Overcoming catastrophic forgetting in neural networks],这意味着不应忘记有关旧任务的信息。
如前几节所述,不同的FSL方法各有利弊,在所有情况下都没有绝对的赢家。此外,假设空间和中的搜索策略通常都依赖于人类设计。自动化机器学习(Automated machine learning-AutoML)[Taking human out of learning applications: A survey on automated machine learning]通过构造任务感知机器学习模型,已经在许多应用程序上达到了最新水平。最近,AutoML已用于数据增强[AutoAugment: Learning augmentation strategies from data]。另一个方向是将自动特征工程[Deep feature synthesis: Towards automating data science endeavors],模型选择[Auto-WEKA 2.0: Automatic model selection and hyperparameter optimization in WEKA]和神经体系结构搜索[Neural architecture search with reinforcement learning)]的AutoML方法扩展到FSL。然后,人们可以获得更好的算法设计,它是通过AutoML以经济,高效和有效的方式学习而组成。
6.3 应用
回想一下,由于样本稀少,努力减少数据收集工作量和计算成本,或者作为模仿似人学习的垫脚石,因此需要FSL。因此,许多实际应用都涉及FSL。计算机视觉是FSL算法的最早测试平台之一。 FSL在许多其他应用程序中也引起了很多近期关注,例如机器人技术,自然语言处理和声音信号处理。总之,FSL有许多有趣的领域和应用程序可供探索。
6.3.1 计算机视觉
现有的大多数作品都针对计算机视觉中的FSL问题。最受欢迎的两个应用是字符识别[Learning feed-forward one-shot learners、Object classification from a single example utilizing class relevance metrics、Model-agnostic meta-learning for fast adaptation of deep networks、Learning to remember rare event、Siamese neural networks for one-shot image recognition、Meta networks、One-shot learning with a hierarchical nonparametric Bayesian model、Meta-learning with memory-augmented neural networks、Attentive recurrent comparators、Prototypical networks for few-shot learning、Few-shot learning through an information retrieval lens、Matching networks for one shot learning、Active one-shot learning]和图像分类[Model-agnostic meta-learning for fast adaptation of deep networks、Siamese neural networks for one-shot image recognition、Meta networks、Optimization as a model for few-shot learning、Attentive recurrent comparators、Prototypical networks for few-shot learning ,Optimizing one-shot recognition with micro-set learning、Few-shot learning through an information retrieval lens、Learning robust visual-semantic embeddings、Matching networks for one shot learning、Learning from small sample sets by combining unsupervised meta-training with CNNs、Learning to Learn: Model Regression Networks for Easy Small Sample Learning、Few-shot object recognition from machine-labeled web images]。在标准基准数据集(例如Ominiglot和miniImageNet)上已经获得了很高的准确性,几乎没有进一步改进的空间[Meta-dataset: A dataset of datasets for learning to learn from few examples]。最近,在[Meta-dataset: A dataset of datasets for learning to learn from few examples]中提出了一个由多个图像数据源构成的庞大而多样化的基准数据集。除了字符识别和图像分类外,还考虑了其他图像应用程序。这些包括对象识别[One-shot learning of object categories、Object classification from a single example utilizing class relevance metrics、Feature space transfer for data augmentation],字体样式转换[Multi-content GAN for few-shot font style transfer],短语基础[Dynamic conditional networks for few-shot learning],图像检索[Few-shot learning through an information retrieval lens],对象跟踪[Learning feed-forward one-shot learners],图像中的特定对象计数[Dynamic conditional networks for few-shot learning],场景位置识别[ One-shot learning of scene locations via feature trajectory transfer],手势识别[Domain-adaptive discriminative one-shot learning of gestures],零件标签[Structured set matching networks for one-shot part labeling],图像生成[Towards a neural statistician、Human-level concept learning through probabilistic program induction、Few-shot autoregressive density estimation: Towards learning to learn distributions、One-shot generalization in deep generative models],跨域的图像平移[One-shot unsupervised cross domain translation],3D对象的形状视图重构[Meta-learning probabilistic inference for prediction]以及图像字幕和可视化问题解答[Fast parameter adaptation for few-shot image captioning and visual question answering]。 FSL还已经成功地用于视频应用中,包括运动预测[Few-shot human motion prediction via meta-learning],视频分类[Compound memory networks for few-shot video classification],动作定位[One-shot action localization by learning sequence matching network],人员重新识别[Exploit the unknown gradually: One-shot video-based person re-identification by stepwise learnin],事件检测[Multi-task transfer methods to improve one-shot learning for multimedia event detection]和对象分割[One-shot video object segmentation]。
6.3.2 机器人技术
为了使机器人的行为更像人类,它们应该能够从一些演示中进行概括。因此,FSL在机器人技术中发挥了重要作用。例如,通过模仿来自单个演示的学习来学习机器人手臂的运动[Towards one shot learning by imitation for humanoid robots],并在纠正错误动作的老师的帮助下从几个演示中学习操纵动作[Learning manipulation actions from a few demonstrations]。除了模仿用户外,机器人还可以通过与用户互动来改善其行为。
最近,通过FSL强化学习从一些互动中学习了辅助策略[Learning assistive strategies from a few user-robot interactions: Model-based reinforcement learning approach]。 FSL在机器人技术中的其他示例包括多臂老虎机[One-shot imitation learning],视觉导航[One-shot imitation learning、Model-agnostic meta-learning for fast adaptation of deep networks]和连续控制[Model-agnostic meta-learning for fast adaptation of deep networks、A simple neural attentive meta-learner、Bayesian model-agnostic meta-learning]。最近,这些应用程序进一步扩展到动态环境[Continuous adaptation via metalearning in nonstationary and competitive environments,Deep online learning via meta-learning: Continual adaptation for model-based RL]。
6.3.3 自然语言处理
最近,FSL的使用引起了自然语言处理的注意。示例应用程序包括解析[Extending a parser to distant domains using a few dozen partially annotated examples],翻译[Learning to remember rare events],句子完成(使用从提供的集合中选择的单词填充空格)[Rapid adaptation with conditionally shifted neurons、Matching networks for one shot learning],简短评论的情感分类[Few-shot learning for short text classification、Diverse few-shot text classification with multiple metrics],用户意图分类用于对话系统[Diverse few-shot text classification with multiple metrics],刑事指控预测[Few-shot charge prediction with discriminative legal attributes],单词相似度任务(例如随机数定义[High-risk learning: Acquiring new word vectors from tiny data、Memory, Show the Way:
Memory Based Few Shot Word Representation Learning]和多标签文本分类[Few-shot and zero-shot multi-label learning for structured label spaces])。最近,发布了一个新的关系分类数据集,称为FewRel [FewRel: A large-scale supervised few-shot relation classification dataset with state-of-the-art evaluation]。这弥补了自然语言处理中FSL任务缺少基准数据集的不足。
6.3.4 声学信号处理
除了早期使用FSL识别一个示例中的口语单词的努力[One-shot learning of generative speech concepts]以外,最近的尝试还包括语音合成。一个流行的任务是从用户的一些音频样本中进行语音克隆[Neural voice cloning with a few samples]。这对于在地图应用程序中生成个人语音导航或在智能家居工具包中模仿父母向孩子讲故事时的语音很有用。近来,有可能使用小样本语音或文本样本[Machine speech chain with one-shot speaker adaptation]或跨越不同语言[Investigation ofusing disentangled and interpretable representations for one-shot cross-lingual voice conversion]执行从一个用户到另一用户的语音转换。
6.3.5 其他
例如,最近在医学应用中的尝试是小样本来发现药物[Low data drug discovery with one-shot learning]。为了学习深度网络,在[SMASH: One-shot model architecture search through hypernetworks,DARTS: Differentiable architecture search,Efficient neural architecture search via proximal iterations]中研究了一次性结构搜索(one-shot architecture search -OAS)。与需要多次运行才能找到最佳架构的随机搜索和网格搜索不同,OAS方法可以通过训练一次超级网来找到良好的架构。 FSL也已用于曲线拟合[Probabilistic model-agnostic meta-learning、Recasting gradient-based meta-learning as hierarchical Bayes、Meta-learning with memory-augmented neural networks、Bayesian model-agnostic meta-learning],并通过逻辑推理理解数字类比以执行计算[Adaptive posterior learning: Few-shot learning with a surprise-based memory modul]。
6.4 理论
FSL使用先验知识来弥补缺少监督信息的情况。这与样本复杂度的理论研究有关,样本复杂度是获得具有高概率的小经验风险的模型所需的训练样本数[Machine Learning,Foundations of machine learning]。 不需要那么复杂就可以使所提供的有足够的样本。回想一下,FSL方法使用先验知识来增加更多样本(即增加),约束(即降低的复杂度)并更改搜索策略(即增加找到良好的可能性)。这表明FSL方法可以使用先验知识来降低所需的样本复杂度。在这方面进行详细分析将很有用。
此外,回想一下,FSL与域适应[Label efficient learning oftransferable representations acrosss domains and tasks、Few-shot adversarial domain adaptation、Domain-adaptive discriminative one-shot learning of gestures]和现有理论有关。域适应的界限可能令人鼓舞[Analysis of representations for domain adaptation,Learning bounds for domain adaptation]。例如,最近的分析表明,通过微调前馈神经网络可以获得更好的风险范围[Risk bounds for transferring representations with and without fine-tuning]。通过考虑一种特定的元学习方法,在[Learning To Learn Around A Common Mean]中研究了将一个任务训练的模型转移到另一任务的风险。但是,到目前为止,仅研究了少数方法。仍然有许多理论问题需要探索。
最后,对FSL算法的收敛性还没有完全了解。特别是元学习方法在整个任务分配上而不是在单个任务上优化。 [Bilevel programming for hyperparameter optimization and meta-learning]中的最新分析为一种元学习方法的融合提供了充分的条件。元学习者学习深度网络的较低层,而学习者则学习最后一层,全部使用梯度下降。对元学习方法的融合进行更一般的分析将非常有用。
7 结论
少量学习(FSL)旨在弥合AI与人类学习之间的鸿沟。通过合并现有知识,它可以学习仅包含几个带有监督信息的示例的新任务。 FSL充当AI的试验台,使学习稀有案例成为可能,或有助于减轻在工业应用中收集大型监督日期的负担。在此调查中,我们对FSL进行了全面而系统的审查。我们首先正式定义FSL,然后讨论FSL与相关学习问题(如弱监督学习,不平衡学习,转移学习和元学习)的相关性和差异。然后,我们指出FSL的核心问题是使FSL难以学习的不可靠的经验风险最小化器。了解核心问题有助于根据使用先验知识解决问题的方式将不同的作品分类为数据,模型和算法:数据增加了FSL的监督经验,模型将FSL的假设空间缩小了,算法改变了搜索给定假设空间中最佳假设的策略。在每个类别中,都将详细讨论其优缺点,并提供一些总结和见解。为了激发FSL的未来研究,我们还提供了有关问题设置,技术,应用程序和理论探索的可能方向。
文献原文:
Generalizing from a Few Examples: A Survey on Few-Shot
Learning
Github地址