N-way K-shot
N-way:表示有N个类别
K-shot:每一个类别中,有K个样本
对于一个task,可以表示为
{(s1,y),(s2,y),(s3,y),(s4,y),(s5,y)|(q1,y'),(q2,y'),(q3,y'),(q4,y'),(q5,y')}
s表示的是support,即训练的数据集,q表示的querry,即测试的数据集,这个例子是一个5-shot的任务
方法
Dual TriNet(ECCV 2018)
通过样本生成。
有一些图像,经过卷积神经网络以后到了特征空间,在特征空间上做一些扰动,随机加入一些噪声,生成各种各样的图像,使得它以后的泛化性能更好。
比如做一个杯子的分类,对于一个杯子,它的形状,属性(颜色、材质)不一样,在最终分类之前,学习已有杯子的属性(塑料、形状等),再人为地加入一些属性,比如不同的颜色,就可以生成很多的数据去做分类器训练。
通过生成属性,生成和属性形状、纹理、材质相关的不同类型的数据。
Prototypical Networks(NIPS 2017)
给每一类算一个原型表示,做平均。新来一个样本x,计算x与这3个原型样本之间的距离,离谁最近,就分为哪一类。
优点:
只有一个样本也可以做。
缺点
但是这种方法效果比较受限,因为可利用的信息太少。
MAML 元学习
把每一个分类任务,有树的分类,动物的分类等,把每一种分类当做一个任务去学习,去研究分类任务之间共同的东西,希望学到共同的东西后,当遇到新的问题,可以根据少量几个样本做调整,就能到使得实现对新的类别进行分类的思路。
如图所示,L1,L2,L3是不同的任务,可以学到一个共同的方向。