查看原文
其他

【源头活水】Prototypical Networks for Few-shot Learning

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

作者:知乎—人在旅途

地址:https://zhuanlan.zhihu.com/p/358819554

1. Assume(假设)

由于数据集有限,分类器会有一个inductive bias(归纳偏差),作者基于这种想法,提出了原型网络(Prototypical Networks):存在一种 embedding,使得其中每个类(所有samples)的点聚集在每个类的单个原型表示周围。这一点和成语“物以类聚,人以群分”有点“类似”。

2. few-shot learning 本质在做什么
few-shot learning 也即少样本(小样本)学习,关键问题是类别中sample少,甚至只有一个。直接训练容易产生overfitting问题。故,few-shot learning主要是在解决overfitting问题。另外旨在学习,必须学会如何学习,以适应新的类别,做出更好的预测。
3. 方法描述
采用一个 neural network 学习一个 embedding 将输入映射到一个映射空间里面,而每个类的原型(Prototype)就是这个类的 support set 所有样本embedding的均值。预测的时候:将需要分类的样本用学习到的映射函数映射到嵌入空间里面,新样例embedding和这些prototype哪个最接近便分到该类别。zero-shot learning 类似,只不过每个类没有标记 (label),而是一个关于类的高级描述 (high-level description of the class)。而对于zero-shot而言,因为类别只会给一个所谓meta-data vector,通常而言是某个训练好的网络给出的feature map,并且文中使用的是一个线性模型将该meta-data vector映射为c,且将其进行归一化(文中的解释是说因为meta-data vector和query set样例来自不同domain,因此对meta-data进行归一化会比较有效)
4. 原型网络的优越性
可用在zero-shot learning上,且取得了不错的效果。


01

摘要
作者提出一种原型网络来解决few-shot分类问题,分类器必须推广到训练集中没有出现的新类且每个新类只有少量样本。原型网络学习一个度量空间,在这个度量空间中,可通过计算到每个类的原型表示的距离来进行分类。与近期的few-shot learning方法相比,原型网络反映了一种更简单的归纳偏差,在这个有限的数据区域是有益的,并取得了很好的效果。作者对其进行分析表明,一些简单的设计决策可以比涉及复杂体系结构选择和元学习的最新方法产生实质性的改进。进一步将原型网络扩展到zero-shot learning,在CU-Birds数据集上获得了非常好的结果。

02

引言
尽管在少样本甚至是单样本情况下,分类问题显得尤其困难。然而人类依旧可以完成few-shot的分类问题,且准确率较高。作者通过解决few-shot学习中过拟合这一关键问题来展开。由于数据非常有限,假设分类器应该有一个非常简单的归纳偏差。基于此,作者提出了原型网络,即存在一个嵌入点,每个类的原型表示周围聚集了一个点。然后,使用神经网络学习输入到嵌入空间的非线性映射,并将类的原型作为其在嵌入空间中支持集的平均值。接着,通过简单地查找最近的类原型,对嵌入式查询点执行分类。遵循相同的方法来处理zero-shot learning;这里每个类都提供了元数据,给出了类的高级描述,而不是少量的标记示例。因此,将元学习数据嵌入到共享空间中,作为每个类的原型。分类是通过嵌入的查询点找到最近的类原型来执行的,和小样本场景一致。
在这篇论文中,我们为few-shot and zero-shot 设置制定了原型网络。在小样本设置中结合了匹配网络,并分析了模型中使用的基本函数。特别地,我们将原型网络与聚类联系起来,以证明在使用Bregman散度(如平方欧式距离)计算距离时,使用类平均值作为原型的合理性。我们发现经验距离的选择是至关重要的,因为欧几里得距离大大优于更常用的余弦相似性。在几个基准任务中,原型网络更简单、更有效,使其成为few-shot和zero-shot learning一种有吸引力的方法。

03

原型模型
3.1 符号定义
在few-shot分类中,N个有标签的样本S={(x1,y1),…(xN,yN)}称之为support set,其中xi∈R是一个样本的D维特征向量,yi∈{1,…K}表示对应的标签。Sk表示标记为类别k的一组样本。
3.2 模型
3.3 学习过程
3.4 训练任务中sepisode的构建
作者以算法的介绍如何构建 meta-training task。如下图:


04

Prototypical Networks 和 Match Networks的区别
Prototypical Networks思想与match network十分相似,不同点如下:
1. 距离度量方式不同,前者采用布雷格曼散度的欧几里得距离,后者采用cosine度量距离。
2. 二者在few-shot的场景下不同,在one-shot时等价(one-shot时取得的原型就是支持集中的样本)
3. 网络结构上,前者相比后者将编码层和分类层合一,参数更少,训练更加方便。


05

为什么选用欧几里得距离
Bregman divergence,就是如果你抽象地定义一种在特定空间里两个点之间的“距离”,然后在这些点满足任意的概率分布的情况下,这些点的平均值点(mean point)一定是空间中距离这些点的平均距离最小的点(这是一个很正常的我们希望对“距离”的定义吧)。这可能就是作者选取欧几里得距离的原因吧。


06

实验
在C-way K-shot问题中的K=1,也就是one-shot的情况下,prototype network实际上等价于matching network,且无论是one-shot还是K-shot(K>1),欧氏距离的效果都要比余弦距离的效果好。


07

展望
原型网络的思想是最简单的求平均,这样考虑到了某个类的每个样本点以及每个样本点相对于这个类的原型表示的偏差。我们不妨认为其实每个样本点和这个类的原型表示点都有一点距离(偏差),求平均就是归纳偏差。当然一个想法就是不求平均,用别的方法找这个类的原型表示点,如果效果提升并且可以给出一定的理论证明,这是一个不错的future work 方向。

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存