1. 论文相关
ICLR2018
2.摘要
2.1 摘要
在小样本分类中,我们感兴趣的是学习算法,它只从少数标记的例子中训练分类器。近年来,基于元学习的小样本分类研究取得了一些进展,在元学习中,定义了一个学习算法的参数化模型,并对代表不同分类问题的片段(episodes)进行训练,每个片段(episodes)都有一个小的标记训练集和相应的测试集。在这项工作中,我们将这几个小样本分类范例推进到一个场景中,在每个场景中也可以使用未标记的示例。我们考虑两种情况:一种是假设所有未标记的示例都属于与事件(episodes)标记示例相同的类集合,另一种是更具挑战性的情况,即还提供了来自其他干扰类(other distractor classes)的示例。为了解决这一范例,我们提出了原型网络的新扩展(Snell等人,2017),该扩展增强了在生产原型时使用未标记示例的能力。这些模型是以一种端到端的方式对片段(episodes)进行训练,以学习如何成功地利用未标记的示例。我们在Omniglot和MiniImageNet基准测试的版本上评估这些方法,这些版本适应了这个新的框架,并添加了未标记的示例。我们还提出了一个新的ImageNet拆分方案,它由一组具有层次结构的大量的类组成。我们的实验证实,我们的原型网络可以学习改善他们的预测,由于使用未标记的例子,非常像半监督算法。
2.2 主要贡献
这项工作是首次研究这种具有挑战性的半监督形式的小样本学习。首先,我们定义了这个问题,并提出了基于Omniglot和miniImageNet基准的评估基准,这些基准适用于普通的小样本学习。我们对上面提到的两种情况进行了广泛的实证研究(perform an extensive empirical investigation),有和没有分心类(distractor classes)。其次,我们提出并研究了三种新的原型网络扩展(Snell等人,2017),一种最先进的小样本学习方法,到半监督环境。最后,我们在实验中证明,我们的半监督变体成功地学会利用未标记的例子,并优于纯监督原型网络。
2.3 相关工作
(1)
(2)
3.半监督小样本学习(SEMI-SUPERVISED FEW-SHOT LEARNING)
现在,我们定义了在这项工作中考虑的用于小样本学习的半监督设置。
训练集被表示为有标记和无标记示例的元组:。标记部分是小样本学习文献中常用的支持集,包含输入和目标的元组列表。除了经典的小样本学习外,我们还引入了一个只包含输入的无标记集合:。与纯监督设置一样,我们的模型经过训练后在预测episode的查询集中的示例的标签时表现良好。图2显示了训练和测试episode的可视化。
pertinent:相关的
3.1 半监督原型网络
在其原始公式中,原型网络没有指定利用未标记集的方法。在下面的内容中,我们现在提出了从原型的基本定义开始的各种扩展,并提供了使用中未标记示例生成改进的原型(refined prototypes)的过程。
在得到改进后的原型(refined prototypes)后,使用方程3的普通原型网络的相同的损失函数训练每一个模型,但用代替,即每一个查询示例都是根据其嵌入位置与相应的改进的原型接近的类中的一个类,并且使用正确分类的平均负对数概率(average negative logprobability of the correct classification)进行训练。
3.1.1 具有 SOFT k-MEANS的典型网络(PROTOTYPICAL NETWORKS WITH SOFT k-MEANS)
我们首先考虑一种利用未标记的示例改进原型的简单方法,方法是从半监督聚类中获得灵感。将每个原型视为一个聚类中心(cluster center),优化过程可以尝试调整聚类(cluster)位置,以更好地适应支持集和未标记集中的示例。在此视图下,支持集中标记示例的聚类(cluster)分配被视为已知,并固定到每个示例的标签上。改进过程必须估计未标记示例的聚类(cluster)分配,并相应地调整聚类(cluster)位置(原型,prototypes)。
一个自然的选择是借用soft k-means进行的推理。我们更喜欢这个版本的k-means而不是硬赋值(hard assignments),因为硬赋值会使推理不可微(inference non-differentiable)。我们从规则原型网络的原型(如等式1所规定)开始,作为聚类(cluster)位置。然后,未标记的示例根据它们到聚类位置的欧几里德距离,对每个未标记的示例进行部分赋值。最后,通过合并这些未标记的示例,获得改进的原型(refined prototypes)。
这个过程可以总结如下:
然后将每个查询输入类的预测建模如方程式2一样,但使用经过优化的原型。
我们可以像通常的k-means那样,执行几个优化迭代。然而,我们已经对不同数量的迭代进行了实验,发现超过一个细化步骤(beyond a single refinement step)后结果并没有改善。
3.1.2 具有 SOFT k-MEANS和分心器聚类的原型网络(PROTOTYPICAL NETWORKS WITH SOFT k-MEANS WITH A DISTRACTOR CLUSTER)
上面描述的soft k-means方法隐含地假设每个未标记的示例都属于episode中的N类中的一个类。然而,更一般的是,不做这种假设,并有一个模型对其他类的例子的鲁棒性,我们称之为分心类(distractor classes)。例如,如果我们想区分独轮车和踏板车(unicycles and scooters)的图片,并决定通过从网上下载图片来添加未标记的集合,就会出现这种情况。因此,假设所有这些图像都是独轮车或摩托车的图像是不现实的。即使是有重点的搜索,一些可能来自类似的类,如自行车。
由于soft k-means在所有类中分布它的软赋值,干扰项可能有害并干扰优化过程,因为原型将被调整以部分地解释这些干扰项。解决这个问题的一个简单方法是添加一个额外的聚类,其目的是捕获干扰源,从而防止它们污染感兴趣类别的聚类:
这里我们采用简化的假设,即分心簇(distractor cluster)的原型位于原点。我们还考虑引入长度尺度(length-scales rc)来表示聚类内距离的变化,特别是对于分心簇:
为了简单起见,我们在实验中设置为1,只学习分心器簇的长度尺度。
3.1.3 具有SOFT k-MEANS和 MASKING的原型网络(PROTOTYPICAL NETWORKS WITH SOFT k-MEANS AND MASKING)
用单个聚类(cluster)来建模分心器未标记的示例可能过于简单。事实上,这与我们的假设是不一致的,每个聚类(cluster)对应于一个类,因为分心的例子很可能涵盖超过一个自然对象类别。继续以我们的独轮车和自行车为例,我们对未标记图像的网络搜索可能意外地不仅包括自行车,还包括其他相关对象,如三轮车或汽车。这也反映在我们的实验中,我们构建了episode生成过程,这样它就可以从多个类中抽取干扰源示例。
为了解决这个问题,我们提出了一个改进的变体:我们不使用高方差的catch all聚类捕获干扰源(capturing distractors with a high-variance catch-all cluster),而是将干扰源建模为不在任何合法类原型(legitimate class prototypes)的某个区域内的示例。这是通过在未标记示例的贡献上结合软屏蔽机制(soft-masking mechanism)来实现的。在较高的层次上,我们希望更接近原型的未标记示例比那些更远的示例被屏蔽得更少。
更具体地说,我们对soft k-means优化进行了如下修改。我们首先计算示例和原型之间的标准化距离(normalized distances):
然后,通过向一个小型神经网络提供原型标准化距离的各种统计数据,预测每个原型的软阈值(soft thresholds)和斜率:
这允许每个阈值使用有关聚类(cluster) 内变化量的信息来确定它应该如何积极地删除未标记的示例。
然后,通过将归一化距离与阈值进行比较,计算每个示例对每个原型的贡献的软遮罩(soft masks),如下所示:
是sigmoid function
当使用这个改进过程进行训练时,该模型现在可以使用其在等式8中的MLP来学习包括或忽略完全特定的未标记示例。软掩模(soft masks)的使用使得这个过程完全可微(entirely differentiable)。最后,很像常规的软均值(regular soft k-means)(有或者没有distractor cluster),虽然我们可以递归地多个步骤重复求精,但我们发现一个步骤的性能足够好。
4. 相关工作
我们在这里总结了文献中关于小样本学习、半监督学习和聚类的最相关的工作。
小样本学习的最佳方法是使用元学习规定的episodic训练框架。我们工作的方法是度量学习方法。以前的小样本分类度量学习工作包括孪生网络(Koch等人,2015)、匹配网络(Vinyals等人,2016)和原型网络(Snell等人,2017),这是我们在工作中扩展到半监督设置的模型。这里的一般思想是学习一个嵌入函数,该函数将属于同一类的示例紧密地嵌入在一起,同时将来自不同类的嵌入保持很远的距离。然后,从支持集到查询集的项嵌入之间的距离被用作相似性的概念来进行分类。最后,与我们在扩展小样本学习设置方面的工作密切相关,Bachman等人在一个主动学习框架中使用匹配网络,在该框架中,模型可以选择在对查询集进行分类之前的特定时间步内将哪些未标记项添加到支持集。与我们的设置不同,他们的元学习代理可以从未标记的集合中获取基本真理标签,并且他们不使用干扰器示例。
其他的元学习方法包括学习如何使用支持集来更新学习器模型,从而推广到查询集。最近的工作涉及学习器神经网络使用的权重初始化和/或更新步骤(Ravi&Larochelle,2017;Finn等人,2017)。另一种方法是训练通用神经架构,例如记忆增强递归网络(memory-augmented recurrent network)(Santoro等人,2016)或时间卷积网络(temporal convolutional network)(Mishra等人,2017),以顺序处理支持集并对查询集示例的标签执行准确预测。这些其他的方法对于小样本学习也很有竞争力,但是我们选择在这项工作中扩展原型网络,因为它的简单性和效率。
至于关于半监督学习的文献,虽然其数量相当庞大(Zhu,2005;Chapelle等人,2010),但与我们工作最相关的类别是自我训练(self-training)(Yarowsky,1995;Rosenberg等人,2005)。这里,首先在初始训练集上训练分类器。然后使用分类器对未标记项进行分类,并将最有信心预测的未标记项添加到训练集中,分类器的预测作为假设标签。这类似于我们对原型网络的soft k-Means扩展。事实上,由于软分配(方程式4)与常规原型网络的分类器输出匹配以获得新输入(方程式2),因此可以考虑将改进重新馈送到原型网络一个新的支持集,该支持集由来自未标记集的(软)自标记扩充。
我们的算法还与传导学习(transductive learning)(Vapnik,1998;Joachims,1999;Fu等人,2015)有关,在这里,通过查看未标记的示例来改进基本分类器。实际上,我们可以在一个非标记集与查询集相同的transductive设置中使用我们的方法;然而,为了避免我们的模型在元学习过程中记住非标记集的标签,我们分离出一个不同于查询集的单独的非标记集。
除了原始的k-Means方法(Lloyd,1982),与我们的设置相关的工作(包括聚类算法)考虑在存在异常值的情况下应用k-Means(Hautam_ki et al.,2005;Chawla&Gionis,2013;Gupta et al.,2017)。这里的目标是正确地发现并忽略异常值,这样它们就不会错误地移动聚类中心的位置(wrongly shift the cluster locations),从而形成真正数据的坏分区。这个目标在我们的设置中也很重要,因为不忽略异常值(或干扰)会错误地移动原型并对分类性能产生负面影响。
我们对半监督学习和聚类文献的贡献是超越了单一数据集内训练和评估的经典设置,我们必须考虑学习从一组训练类转移到一组新的测试类的设置。
5. 实验
5.1 数据集
我们在三个数据集上评估了模型的性能:两个基准的小样本分类数据集和一个新的大规模数据集,希望对以后的小样本学习工作有用。
Omniglot(Lake等人,2011)是一个由50个字母表的1623个手写字符组成的数据集。每个手写字符由20名受试者绘制。我们遵循Vinyals等人提出的小样本设置,图像大小调整为28×28像素,旋转90度,总共产生6492个类。分为4112个训练类、688个验证类和1692个测试类。
miniImageNet(Vinyals et al.,2016)是ILSVRC-12数据集(Russakovsky et al.,2015)的修改版本,其中100个类中的每一个类随机选择600个图像作为数据集的一部分。我们依赖Ravi&Larochelle(2017)使用的分类。这些拆分使用64个类进行训练,16个用于验证,20个用于测试。所有图像的大小为84×84像素。
tieredImageNet是我们提出的用于小样本分类的数据集。与minimagenet一样,它也是ilsvrc-12的一个子集。然而tieredImageNet表示ilsvrc-12的更大子集(608类而不是100类,用于minimagenet)。与Omniglot类似,在Omniglot中,字符被分组到字母表中,TieredImageNet将类分组到更大的类别中,这些类别对应于ImageNet层次结构中的更高级别节点(Deng等人,2009)。总共有34个类别,每个类别包含10到30个类别。它们分为20个训练、6个验证和8个测试类别(数据集的详细信息可在补充材料中找到)。这确保了所有的训练类都与测试类有足够的区别,不像MiniImageNet和Vinyals等人提出的RandImageNet等其他替代方案。例如,“管风琴”是一个训练类,“电吉他”是MiniImageNet的一个测试类,尽管它们都是乐器。这种情况不会发生在TieredImageNet中,因为“乐器”是一个高级类别,因此不在培训类和测试类之间进行划分。这代表了一个更现实的小样本学习场景,因为一般来说,我们不能假设测试类将类似于训练类。此外,tieredimagnet的分层结构对于能够利用类之间的分层关系的小样本学习方法可能是有用的。我们把这些有趣的扩展留给将来的工作。
5.2 调整数据集以进行半监督学习(ADAPTING THE DATASETS FOR SEMI-SUPERVISED LEARNING)
对于每个数据集,我们首先创建一个额外的分割,将每个类的图像分割为不相交的标记集和未标记集。对于omniglot和tieredimagnet,我们对每个类的10%图像进行采样,以形成标签分割。剩下的90%只能用于未标记的部分。对于minimagenet,我们使用40%的数据进行标记分割,剩余的60%用于未标记分割,因为我们注意到10%的数据太小,无法实现合理的性能并避免过拟合。我们报告了训练集标记部分和未标记部分的10次随机分割的平均分类分数,不确定度以标准误差(标准偏差除以分割总数的平方根)计算。
我们要强调的是,由于这种标记/未标记的拆分,我们使用的标签信息比以前在这些数据集上发布的工作中使用的标签信息要少得多。因此,我们不期望我们的结果与公布的数字相匹配,而应该将其解释为本文定义的半监督模型性能的上界。
然后按如下方式执行情节构建。对于给定的数据集,我们通过从训练类集合cTrain中均匀地随机抽取第一个样本类来创建训练集。然后,我们从每个类的标记分割中提取图像以形成支持集,并从每个类的未标记分割中提取图像以形成未标记集。可选地,当包含干扰源时,我们还从训练类集合中抽取其他类,并从每个类的未标记分割中提取图像作为干扰源。这些干扰图像与感兴趣类别的未标记图像一起添加到未标记集(总共为+mh未标记图像)。该集的查询部分由每个选定类的标记分割中的固定数量的图像组成。测试片段是以类似的方式创建的,但是使用从ctest中抽取的类(以及可选的干扰类)。在这里报告的实验中,我们使用了=n=5,也就是说,5个类同时用于标记类和干扰类。在大多数情况下,我们使用=5进行训练,使用=20进行测试,从而测量模型推广到更大的未标记集大小的能力。数据集拆分的详细信息,包括分配给训练/验证/测试集的特定类,可以在附录A和B中找到。
在每个数据集中,我们将三个半监督模型与两个基线进行比较。第一个基线,在我们的表中称为“监督的”,是一个普通的原型网络,在每个数据集的标记分割上以一种纯监督的方式进行训练。第二个基线被称为“半监督推理”,使用由该监督原型网络学习的嵌入函数,但在测试时使用软均值求精步骤对原型执行半监督求精。这将与我们的半监督模型进行对比,我们的半监督模型在训练时和测试时都执行这种细化,因此学习不同的嵌入函数。我们在两种情况下评估每个模型:一种是所有未标记的示例都属于感兴趣的类,另一种是更具挑战性的模型,其中包括干扰器。模型超参数的详细信息可以在附录D和我们的在线存储库中找到。
5.3 结果
Omniglot、MiniImageNet和TieredImageNet的结果分别在表1、表2和表5中给出,而图4显示了我们的模型在TieredImageNet(我们最大的数据集)上的不同M值(每个类的未标记集合中的项数)的性能。将ProtoNet模型与这些数据集上的各种基线进行比较的附加结果,以及对Masked Soft k-Means模型性能的分析,见附录C。
在所有三个基准测试中,我们提出的模型中至少有一个优于基线,证明了我们的半监督元学习过程的有效性。在非分散器的情况下,几乎所有的实验中,这三个模型都优于基线,在数据集和样本数的三个模型之间没有明显的胜利者。在训练和测试包含干扰源的场景中,Masked Soft k-Means在所有三个数据集中显示出最健壮的性能,在除了一个以外的每种情况下都获得最佳结果。事实上,该模型在没有干扰因素的情况下达到了接近上限的性能。
从图4可以看出,当每个类的未标记集合中的项目数从0增加到25时,测试精度有了明显的提高。这些模型的M训练值为5,因此显示出在泛化时进行外推的能力。这证实了,通过元训练,模型学习获得一个更好的表示,通过半监督改进。
6. 结论
在这项工作中,我们提出了一种新的半监督的小样本学习范式,在每一集中加入一个未标记集。我们还将该设置扩展到更实际的情况,即未标记集具有不同于标记类的新类。为了解决当前小样本分类数据集对于有标签和无标签的拆分来说太小,并且缺少分层的标签的问题,我们引入了一个新的数据集tieredimagenet。我们提出了几种原型网络的新扩展,与我们的基线相比,它们在半监督设置下表现出一致的改进。作为未来的工作,我们正在努力将快速权重(ba et al.,2016;finn et al.,2017)纳入到我们的框架中,以便示例可以在给定episode内容的情况下具有不同的嵌入表示。
参考资料
[1] 英伟达最新图像转换神器火了!试玩开放,吸猫爱好者快来
[2] # StarGAN论文及代码理解
[3] starGAN 论文学习
论文下载
[1] Meta-learning for semi-supervised few-shot classification
在线测试链接
[1] https://nvlabs.github.io/FUNIT/petswap.html
代码
[1] # renmengye/few-shot-ssl-public