术语
Support Set / Query Set 和 N-way k-shot
传统图像分类
小样本学习
小样本学习想要达到的效果:
- 给模型一个查询样本(query set),该样本属于一个新的,以前未见过的类,
- 还给它一个支持集S(support set),模型必须使用来自支持集的信息才能学会对query set进行分类。支持集由n个来自k个不同看不见类的样本组成,这就是N-way k-shot
注意N 和 k 是由 Testing data决定的,与 Training data 无关;
如何从原始的 training dataset 和 testing dataset 中得到这几个 Support set 和 Query set 呢?
右侧方框的testing data也可以表示这样:
training过程中将提供大量的样本,使模型learn to learn。training过程的类叫做base class。
testing过程只有少量样本,测试模型few shot learning的能力。testing中包含的都是training时没见过的新类(novel class)
episode
在Matching networks论文中对训练周期的定义上提出了episodes的概念,为了区别大数据训练的epochs,在episodes周期里,都是为了服务于few-shot任务的子类别样本训练,这个子类别就是区别于epochs中全类别子样本训练,。很多meta-learning中的任务也喜欢用episodes这个词汇,而对应神经网络中的mini-batch是比较合适的。
举例:20-way 5-shot问题:
- 每个episodes提取出来20个类别,而不是所有的类别(传统softmax分类训练要加载所有类别);
- 每个类别是有5个examples可供训练,因为训练中还要分support-sets+query-sets,5-shots场景至少需要5+1个样例,至少一个query example去何support-sets的样例做距离(分类)判断。
- 测试集可以变换成5-way 1-shot等等方式来评估模型的泛化能力。
- 最后每个epoch还要设定由多少个episodes来组成,好像大家都喜欢用1000来作为典型值。
domain gap / catagory gap
用来描述数据集差异
domain gap:如下图,可能种类是同一种,但是清晰程度,光照不一样
category gap:种类不同
参考资料