论文阅读《Prototypical Networks for Few-shot Learning》

Background & Motivation

度量学习方法,最开始是基于 KNN 的 Neighborhood Components Analysis(NCA)方法,后续改进方法是输入神经网络来输出非线性的 embedding 来替代 NCA 中输出的线性变换表征。而 Prototypical Networks 与这些后续的改进方法十分类似,输出每一类的 prototype 表征。

元学习方法,可以理解为当一个程序员掌握了基本的 C++、python、Java,后面不管学什么语言都能迅速掌握,这就是元学习算法的魅力。希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务。很容易与迁移学习中的 pre-training 混淆,元学习方法中比较经典的是 MAML,Model Agnostic Meta Learning。其总的损失函数是

其中 θn 是在第 n 个测试任务上训练之后的模型参数,ln 是在第 n 个任务上的测试损失。而 pre-training 的损失函数是

其损失函数的区别可以理解为:元学习的 loss 是在这一批次上的训练任务中用 Train Set 将网络的参数用梯度下降更新过一次后,再用 Query Set 计算出的 loss(并再用梯度下降进行更新,即 MAML 里的 gradient by gradient 概念);而 pre-training 的 loss 是在 Train Set 上计算出 loss。下图可以更直观看出区别:

MAML 的初衷是找到一个不偏不倚的“点”,使得不管是在任务1的 loss 曲线 L1 还是任务2的 loss 曲线 L2 上,都能下降到分别的全局最优。而 pre-training 的初衷是寻找一个从一开始就让所有任务的损失之和处于最小状态“点”,它并不保证所有任务都能下降到分别的全局最优 ,如下图, L2 收敛到局部最优。

preview

preview

即 MAML 更关注“潜力”,而 pre-training 更关注当下的精度。

Matching networks can be interpreted as a weighted nearest-neighbor classifier applied within an embedding space.

Matching networks and prototypical networks can also be seen as forms of meta-learning.

Motivation 是为了解决小样本学习中的过拟合问题。

Prototypical Networks

原型网络是将 Support Set 中的每一个类映射成高维空间内的一个个 prototype,类似于聚类同一类别的样本点都聚在这个 prototype 周围。这些 prototype 是取 Support Set 中同一类的数据在高维空间内的中心点得到的。将 Query 中的数据同样映射到这个高维空间,度量出到每一类的距离,距离最近的就是分类的结果。

In particular, we relate prototypical networks to clustering in order to justify the use of class means as prototypes when distances are computed with a Bregman divergence(?), such as squared Euclidean distance.

这里距离的度量对比了欧氏距离和余弦距离,前者精度更高......

Support Set 中的数据是(D维特征数据,标签),通过原型网络将其映射到 M 维,计算出每一类的 prototype:

通过度量函数 d 来度量距离,计算出 Query 对每一类的 Softmax 得分:

损失函数如下:

总的算法伪代码如下:

在 one-shot 情景下,Prototypical Network 与 Matching network 等价。

提出了一个 trick:比如在 5-way 1-shot 任务中,可以选择比 5 多的类别数据进行训练,而 shot 在训练时最好保持一致。有消融实验可以验证:

Experiments

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值