【论文理解】On Episodes, Prototypical Networks, and Few-shot Learning


前言

这是2020年NeurIPS的meta-learning workshop中的一篇oral presentatinon,论文代码被作者放在了github上:(论文作者仿佛是来自FIVE公司的)

代码链接
论文链接

这篇文章通过大量实验验证了在少样本学习中,episodic的元训练方式对于经典的少样本度量学习算法:Prototypes Network(PNs)及Matching Network是有害的作者通过引入Neighbourhood Component Analysis (NCA)方法,用实验验证了将用于元训练的base classes样本人为分成Support及Query set是不利的。

我也一直认为episodic的训练方式过于死板,有多余的超参数需要调节,比如训练时采用的FSL task的类别数、样本数等。但是本文用更加理论化的方式解释了episodic training的缺点,并辅以实验数据。因此在这里记录下来,我认为这篇论文还是很有意义的~

本篇博文只对主要思想作简单介绍,要想深入了解具体实验结果及结论,大家还须阅读原文。


一、Episodic learning缺点

先简单回顾一下什么是episodic learning。在FSL算法中,大多采用元学习的方式,分为两个阶段:元学习及元测试。在元学习阶段会采用episodic learning的方式,即利用base classes人为构造出虚假的FSL-Task用于训练。训练目的是使网络能够解决类似的FSL task。通常将一个虚假的FSL task称为一个episode,将其整体看作一个训练样本。
具体可看这篇博文中的元学习部分。

缺点1:样本采样受限

(1)我们把一个episode中全部样本看作一个训练batch, 这种学习方式,使得一个batch中的样本来自于人为构造的一个类别数固定的episode,而不是在全部训练样本中随机选择出来的。这相当于对于在batch采样时加了限制,可能不利于训练。

(2)同时episodic training有可能出现在训练过程中有样本未被采样出来的情况,如此便浪费了一部分样本。

不过,作者用实验证明这个缺点无伤大雅,对算法性能基本无影响,真正有害的是下面的缺点。

缺点2:忽略了大量“关系”

以PNs举例,在该算法中,通过度量每个query图像和class prototype的距离来分类,将其分到距离最近的一类中去。
PNs的episodic training中损失函数如下:
在这里插入图片描述
(其中 c y c_y cy表示class prototype, f θ f_\theta fθ表示特征提取网络)

因此当采用episodic training方式时,只会计算虚假task中每个query和各类prototype的距离,而忽略了query样本之间、support样本之间的关系,如此就损失了很多信息。

如下图所示,一个batch中的图像被分割成S、Q两部分,每部分中图像之间的关系被忽略。

二、Neighbourhood Component Analysis (NCA)方法

NCA方法不是一个新算法,在2005年的 Neighbourhood components analysis. 就被提出,它的训练思想也是基于距离度量的,我们来看一下具体算法。

NCA算法

NCA算法用于特征提取网络的训练,目的是使同一类的图像特征接近,使不同类的图像特征互相远离。在训练过程中,像一般分类网络训练一样,随机选择训练样本构成batch,在训练一个epoch后,要使网络见到过所有的训练样本。

对于一个batch而言,NCA的损失函数如下:

在这里插入图片描述

z i z_i zi 就是对第 i i i 个样本提取到的特征,此损失函数不以分类为目的,其思想类似于自监督学习中的对比学习,为的是拉近一个batch中同一类样本特征的距离,拉远不同类样本特征距离。

这个损失函数和episodic training 的损失很像,但是它计算了一个batch中每两张之间的距离,而PNs中的损失函数只计算了query到每个class prototype的距离,其实相当于NCA利用了更多的样本关系。

NCA替代episodic的优势

前面说到NCA的损失函数囊括了每两张图像的距离,它(右侧)和PNs(左侧)的对比可以通过下图直观地展现出来:
在这里插入图片描述
很明显NCA利用的样本间关系更多,无论是正样本对(属于同一类的两个样本构成一个正样本对)还是负样本对(不属于同一类的两个样本构成一个负样本对)的数量都比episodic要多。

三、少样本分类

经过前面的训练过程后,我们要用获得的特征提取网络进行FSL图像分类,论文作者提出三种度量分类方式,并用实验验证了方式2最优。由于我们在特征维度进行度量,因此要先将task中所有图像经过特征提取网络获得特征,再进行下述度量。

  1. k-NN分类:这是最基本的一种距离度量分类方式,找到离query最近的k个support样本,取其中占比最大的类别作为query的预测结果。
  2. 1-NN分类:这就是PNs原始的分类方式,首先计算各类的prototypes(对support set的特征取均值),再计算query到各prototypes的距离,将其分到距离最小的一类中。
  3. Soft-assignments:这是和原NCA方法配套的分类方式,计算有些麻烦。对于每个query,计算它与每个support的 p p p值:
    在这里插入图片描述
    将属于同一类的support对应得 p p p值相加,结果作为query属于该类的 likelihood。最后选择 likelihood 最大的类作为分类结果。

四、实验结果

以下实验结果都是在5way-1shot / 5shots任务下获得的。

度量分类方式对比

在这里插入图片描述

训练样本采样方式对结果的影响

在这里插入图片描述
结果图中的前三行是在NCA方法下,对训练样本采样进行了各种限制(这些限制是模仿episodic training中的固有限制构造的)后的实验结果,可以看出这些限制对于实验结果基本无影响。

episode超参数对结果的影响

在这里插入图片描述
可以看出,在episodic training中,episode的超参数选择对于实验结果影响较大;并且在各种情况下,batchsize=512时结果都是最好的。

和其他FSL算法对比

在这里插入图片描述
可以看出NCA的训练方式确实能将PNs的性能提高很多,而且还省去了调节episode中超参数的麻烦。


总结

这篇论文显示了同样使用度量学习的方式解决FSL问题,在元训练时无需采用episodic的训练方式,使用NCA的方法可以取得更好的效果,可与当前最优算法比肩。在度量学习方法中,元训练的目的是获得优秀的特征提取器,陷于episodic方式是不利的,应该多寻找其他更好的方法。

其实,之前还出现过使用最简单的监督学习直接训练一个分类网络的做法,或者使用无监督学习的方法,这都是为了获取特征提取器用于FSL这个下游任务。episodic training并不是最优的方法~

当然,在教师-学生网络这种模式下的FSL算法中,episodic learning或许还是较优解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值