内容纲要

摘要:小样本学习是研究中的重要领域。从概念上讲,仅举几个例子,人类就很容易理解新概念,而从务实的角度讲,有限的例子训练在实践中很常见。 最近的有效的少样本学习方法采用度量学习框架来学习查询(测试)示例和少数支持(训练)示例之间的特征相似度比较。 但是,这些方法将每个支持类彼此独立地对待,从不从整体上看待整个任务。 因此,他们只能对所有可能的测试时间任务使用单一设置的特征,这阻碍了区分手头任务最相关维度的能力。 在这项工作中,我们介绍了一个类别遍历模块,可以将其作为即插即用模块插入大多数基于度量学习的少样本学习方法中。 该组件可立即遍历整个支持集,并基于要素空间中的类内公共性和类间唯一性来识别与任务相关的功能。 在miniImageNet和tieredImageNet基准测试中,与基准系统相比,集成我们的模块可以显着提高性能(相对5%-10%),并且总体性能与最新的系统相比具有竞争力。

1.  introduction

少样本学习[38、35、30、36、33、7、25、26]的目标是将未见过的数据实例(查询示例)分类为一组新类别,每个类只有少量标记的实例(支持示例)。 通常,支持集中每个类别有1至10个带标签的示例。 这与标准分类问题[19、16、20]相反,在标准分类问题中,每个类别有上万个分类。 在传统问题中,用于训练和测试集的类别也是相同的,而在少量学习中,这两组是排他的。 少样本学习的一个关键条件是如何充分利用支持集中可用的有限数据,以便找到任务建议的“正确”概括。

解决此问题的最新有效方法是训练神经网络以生成特征嵌入,用于将查询与每个支持样本进行比较。 这类似于使用Siamese Networks [4,6]进行的度量学习,它通过迭代从较大的分层训练集中对查询和支持集进行采样,并针对最大射击之间的相似性得分进行了优化来对少拍分类问题进行明确训练。 查询和带有相同标签的示例。 优化查询和支持之间的相似性非常有效[35、38、31、14、21、2、13]。 图1(a)从​​高层次说明了这种机制。

但是,尽管这些方法能够学习丰富的特征,但特征是为不同支撑集的每个类别生成的。在本文中,我们扩展了基于有效的基于度量学习的方法,以将整个支持集(作为一个整体)的上下文纳入其中。 通过包含这样的视图,我们的模型可以找到与每个任务最相关的维度。 这在少样本学习中尤为重要:由于很少有标记的数据可用于每个任务,因此必须充分利用示例中的所有可用信息

作为激励示例,请考虑图2(a),该图描绘了具有两个简单特征尺寸(颜色和形状)的5-way 1-shot少样本任务。 分类的目的是确定问题的答案:To which category in the support set does query belong?

在这里,查询是一个绿色圆圈。 我们认为,由于支持集中的每个示例都有唯一的颜色,但是与其他支持示例具有相同的形状,因此此任务中的相关功能是颜色。 因此,正确的查询标签分配应为(iii)类:绿色。 但是,如果像[38,35,36,34,21,30,23,10]中那样为每个类分别计算与查询相似的特征,则不可能知道哪个维度(颜色或形状) )更具相关性,因此类别(i,iii,iv,v)都将基于distance1获得相同的分数。 只有通过查询整个支撑集的上下文,我们才能决策出颜色才是最具有区分度的维度。这种发现激励我们遍历所有支撑集的类别来发现特征维度中inter-class的特点。

此外,在图2(b)所示的多样本设置下,甚至可以更清楚地看到颜色尺寸是最相关的,因为大多数实例具有相同的蓝色,而它们的形状却变化。 因此,除了类间的唯一性之外,还可以使用类内的共性找到相关的维度。 请注意,在这种k> 1的情况下,每个类中的特征平均是减少类内差异并公开共享特征组件的有效方法。 在[35,36]中执行此平均。 虽然类间和类间的比较都是分类的基础,并且长期以来一直用于机器学习和统计[8],但是基于度量的少样本学习方法尚未结合通过在类之间进行查找而获得的任何上下文 。

为了同时兼顾支持集的类间和类内视图,我们引入了一个类别遍历模块(CTM)。 这样的模块在跨类别内和类别内遍历后会选择最相关的特征维度。 CTM的输出捆绑在支持和查询集的特征嵌入中,从而使后续功能空间中的学习更有效。 CTM包括一个集中器单元,用于提取类别内的嵌入对象以实现通用性;以及一个投影仪单元,用于将集中器的输出考虑到各个类别中,以实现唯一性。 可以将集中器和投影仪实现为卷积层。 图1(b)描述了如何将CTM应用于现有的基于度量的少样本学习算法。 通过考虑支持集中的全局要素分布,可以将其视为即插即用模块,以提供更具区分性和代表性的要素,从而使高维空间中的度量学习更加有效。

我们在少数学习基准上证明了类别遍历模块的有效性。 CTM达到或超过了以前的最新水平。 将CTM整合到现有算法中[36,38,35],我们可以看到miniImageNet和tieredImageNet的一致相对增益约为5%-10%

2. related works

近年来,目睹了少样本学习任务方面的大量工作。 它们可以粗略地分为三个分支:(i)基于度量,(ii)基于优化和(iii)基于大型语料库。

工作的第一分支是基于度量的方法[35、38、36、14、34、21、30、23、2、10]。 Vinyals等。 [38]在少样本学习中引入了情节训练的概念,其中训练过程模仿了基于支撑集测试集的度量学习的测试场景。这个想法是直观而简单的:将支持和查询样本都嵌入到共享的特征空间中之后,这些方法会比较特征相似性。 原型网络[35]建立在[38]上,通过将查询与支持集中的类原型进行比较,利用类质心来消除支持集中的异常值,并找到所有类样本共有的维度。 这种做法在本质上与我们的集中器模块类似,我们将其设计为专注于类内共性。 我们的工作还超越了此范围,方法是同时查看支持集中的所有类,以找到与每个任务相关的维度。 在[14]中,引入了一个内核生成器来修改特征嵌入,条件是基于查询集图像。 这是对我们的补充方法:尽管[14]会查询查询集以确定与其分类可能相关的内容,但我们会查看整个支持集,以使我们的网络能够更好地确定与任务最相关的特征。 在[34]中,特征嵌入和分类器权重创建网络被分解,以使零样本和少样本任务能够在同一框架内执行。

也有一些有趣的著作探讨了支持和查询之间的关系,以实现支持和查询特征之间的更复杂的比较。 关系网络[36]建议使用带有连续特征嵌入的神经网络来评估每个查询支持对的关系。 可以将其视为[35,38]的进一步扩展,其中包含由神经网络定义的学习指标。 刘 [23]提出了一种转导传播网络,通过学习利用数据中流形结构的图形构造模块,将标签从已知的标签实例传播到未标记的测试实例。 Garcia等 [10]引入了图神经网络的概念,通过将消息传递推理算法同化为神经网络的对应对象,从而显式地学习特征嵌入。 Oreshkin等 [26]也学习了一个与任务相关的度量,但是条件是基于类原型的均值,这可以减少其任务条件网络可用的类间差异,并且不需要辅助任务共训练损失 通过我们的方法来实现性能提升。 高等 [9]在典型网络中为NLP少样本句子分类任务应用了特征的遮罩,但是它们的mask仅基于每个类中的示例,而不像我们的方法那样基于类之间的示例。

上面提到的所有方法的算法均基于度量学习框架,该度量学习框架将查询与每个支持类进行了比较(单独采取)。 但是,除了单独创建的距离得分的最终比较之外,没有任何一个可以合并所有类别的任务可用信息。 这可能会导致第1节中提到的问题,其中与当前任务无关的特征尺寸最终可能会主导着相似的比较。在这项工作中,我们通过引入类别遍历模块来扩展基于度量的方法,以通过同时查看所有类别来找到任务的相关特征维度。

文献的第二分支是基于优化的解决方案[28、22、7、25、33]。 对于每个任务(情节),学习者从分布中采样并执行SGD或展开权重更新几次迭代,以针对手头特定任务调整参数化模型。 在[28]中,学习者模型通过产生有效参数更新的最新元学习者而适应于新的情节任务。 MAML [7]及其变体[25,33]表现出令人印象深刻的结果; 在这些作品中,对学习者模型的参数进行了优化,以使它们可以快速适应特定任务。

从较高的层次上讲,这些方法通过为少量任务执行一些权重更新迭代而合并了遍历所有支持类的想法。 但是,正如[33,21]指出的那样,尽管这些方法在任务更新中遍历所有类中的样本,但它们通常难以学习有效的嵌入。 [33]通过仅对顶层权重应用权重更新“内环”来解决此问题,该权重是通过从以任务样本为条件的生成分布中采样而初始化的,并使用初始监督阶段预先训练视觉特征。 相比之下,基于度量学习的方法在学习良好特征方面取得了相当大的成功,但并未利用类间视图来确定每个任务的最相关维度。 我们将所有类别的视图纳入度量学习框架,并获得竞争优势。 我们提出的方法学习了特征嵌入和分类维,并且以完全从零开始的方式进行了训练。

第三分支是基于大型训练语料的方法[11、15、12、27、29]。 在这些基础网络中,要训练大量的数据,但还必须能够适应几次学习任务,而又不会忘记原始的基础模型概念。 这些方法为基本模型类提供了更强大的特征表示,这些基本模型类仍然与新颖的少数类概念表示“兼容”,因此带有少量示例的新颖类可以很容易地与基本分类器中的类混合。

3. Algorithm

3.1 Description on Few-Shot Learning

在少样本分类任务中,我们获得了N个不同的以前未见的类的小支持集,每个类有K个示例。 给定查询样本,目标是将其分类为N个支持类别之一。

training

这个模型是用一个大型的带有标签训练数据集c_train,使用episodes来训练模型。在每个episodes,我们构造一个支撑集S和查询集合Q:

其中c是类别索引,K是类别样本的数目;支撑集总共有NK的样本和对应N-way K-shot问题。令sj为一个单样本,其中j是S中所有样本的索引。定义样本i的标签为:

像图一描述一样,样本si qj首先被喂进去特征提取器fθ(·)。我们使用一个CNN或resnet作为骨干网络。这些特征作为一个比较模块M(·,·)的输入。在实际中,M可以是成对的直接特征距离,或者包含额外的CNN层的关系单元来测量两个样本的关系。定义M的输出分数Y={yij}。训练episode损失L定义为在所有查询支持对中平均的交叉熵分类损失

训练过程通过反复迭代样本episodes,然后使用loss执行SGD更新。

Inference

泛化性能是根据测试集上的事件进行衡量的,其中S,Q现在是从包含与Ctrain中使用的类别不同的​​类的Ctest中抽样的。支持集中的标签是已知的,而查询中的标签是未知的,仅用于评估。 通过选择具有最高比较分数的类别来找到查询的标签预测:

其中,。因此,平均精度是通过将ˆlj与查询标签的测试episode(通常为600)进行比较而获得的。

3.2. Category Traversal Module (CTM)

图3显示了我们模型的总体设计。 类别遍历模块支持集特征fθ(S)作为输入,并通过集中器和投影仪分别使用类内视图类间视图生成蒙版p。 蒙版p应用于支持和查询的降维特征,从而产生具有与当前任务相关的尺寸的改进特征I。 这些改进的功能嵌入最终被输入到度量学习器中。

3.2.1 Concentrator: Intra-class Commonality

CTM中的第一个组件是一个集中器,用于查找一个类的所有实例共享的通用特征。 将特征提取器fθ的输出形状表示为(NK,m1,d1,d1),其中m1,d1分别表示通道数和空间大小。 我们将集中器定义如下:

其中,m2,d2表示通道的输出数量和空间大小。 请注意,输入首先被馈送到CNN模块以执行尺寸减小; 然后将每个类别中的样本取平均值,以得到最终输出o​​。 在当样本设置中,没有平均操作,因为每个类只有一个示例。

实际上,CNN模块可以是简单的CNN层,也可以是ResNet块[16]。 目的是消除实例之间的差异,并提取一个类别内实例之间的共性。 这是通过从m1,d1到m2,d2进行适当的下采样来实现的。 事实证明,这种学习的成分要优于平均替代方法[35],后者在m1 = m2,d1 = d2而没有学习参数的情况下,可以认为是我们集中器的特例。

3.2.2 Projector: Inter-class Uniqueness

第二个组件是投影,用于挑出不相关的特征,选择对于当前少样本任务中最具有区分度的特征,通过观察来自集中器的特征。

其中o帽子是o的reshape。m3 d3和集中器的含义一样。我们通过拼接类原型在第一个维度(N)到通道维度(m2)来实现遍历类,通过应用一个小型的CNN拼接特征来生成一个大小为 (1,m3, d3, d3)的映射,最后通过在通道m3上的softmax,独立应用每个d3*d3离散维度,来生成mask p。这用于mask查询和支持集中任务的相关特征尺寸。

3.2.3 Reshaper

为了使投影机的输出p影响功能嵌入fθ(·),我们需要匹配网络中这些模块之间的形状。 这是通过使用分别应用于每个NK样本的重构器网络来实现的:

通过一个CNN层的小权重方式来实现。

3.2.4 Design choice in CTM

通过上述组件,我们可以遍历以下所有类别来生成掩码输出:fθ(S)→p。 CTM的效果是通过将投影机输出捆绑到支持和查询的特征嵌入(表示为I(·))上来实现的。 因此,改进后的特征表示有望更具区分性。

对于查询,I的选择很简单,因为我们没有查询标签。 该组合是嵌入的元素逐个相乘,并且投影仪的输出为:I(Q)= r(Q)· p,其中· 代表沿Q中的样本维数(NK)广播p的值。

对于support,但是,因为我们知道查询标签,所以我们可以选择将mask p直接到嵌入上(按样本),或者如果我们保持(m2,d2,d2)=(m3,d3,d3),我们可以用它来掩盖集中器的输出o(集群)。 从数学上讲,这两个选项是:

我们发现,由于选项1的比较次数较多,因此选项1的性能更好,执行时间略有增加; 详细信息在第二节中提供。

3.3. CTM in Action

所提出的类别遍历模块是一个简单的即插即用模块,可以嵌入到任何基于度量的几次尝试学习方法中。 在本文中,我们考虑了三种基于度量的方法并将CTM应用到它们,即匹配网络[38],原型网络[35]和关系网络[36]。 如第二节所述。 如图1所示,这三种方法都受到限制,因为不能同时考虑整个支持集。 由于特征是为每个类独立创建的,因此与当前任务无关的嵌入最终可能会主导度量标准比较。 这些现有方法根据等式定义其相似性度量, 我们将其修改为使用CTM,如下所示:

最后修改日期:2020年4月17日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。