一:N和K的具体指代
元学习(Meta learning)引入了一系列的概念,这其中包括N-way K-shot,Meta-training、Meta-testing、Base class和Novel class,Support set和Query set等,如图一。
其中Base class是Meta Training阶段借助的源域数据;Novel class是Meta Testing阶段要学习的目标域数据,其中Base class和Novel class没有交集。
具体可参见下面链接中Few-shot learning methods部分。https://annotation-efficient-learning.github.io/
图一:元学习相关概念N-way K-shot在广义上来讲N代表类别数量,K代表每一类别中样本数量,但是类别数量N和每一类样本数量K分别指的是Base class还是 Novel class中的Support set还是Query set目前还没有看到一个明确的说明。
为了明确N和K的具体指代,从小样本学习的源头探索下:小样本学习要解决的是Novel class样本量少的问题,由于深度学习是吃数据的,没有办法直接在Novel class小样本上进行训练,所以借助Base class的数据进行学习(ps:元学习和迁移学习殊途同归过),由于Novel class的样本量少,即使在Base class上微调的很好,在Novel class上过拟合也会很严重,所以出现了构造episode的想法,统一训练和测试的标准:Novel class上不是(N-way K-shot)小样本嘛,在 Base class也构造成多个(N-way K-shot)小样本任务。
这样一来,再回顾下刚才N和K具体的指代问题似乎有了答案。N-way K-shot 问题中N和K通常是指meta testing阶段Novel class中Support set下样本类别数量和每一类的样本量。通常为了保持meta training阶段和meta testing阶段的一致性,meta training阶段中Base class的Support set也会相同的设置N和K。(图一中在meta training和meta testing阶段N的不一致情况也经常存在,在此不做解释,希望大佬对此进行补充)
二:N和K对元学习结果的影响
这一内容在论文Meta-Dataset: A Dataset of Datasets for Learning to Learn from Few Examples 中进行了研究。如图二所示:
图二:N和K对小样本学习结果的影响显然随着N的增加,会增加分类任务的难度,从而使预测的准确率下降;随着K的增加,对于度量学习来说,相当于减小了有偏,降低了期望风险,对于MAML和Reptile等优化二阶梯度问题而言,相当于降低了每个episodes的过拟合程度,都会提高预测的准确率。然而每种模型受K增加的影响情况不同,比如:Prototypical Networks和fo-Proto-MAML随着K的增加一开始表现很好,但很快就饱和了,当K值超过20后,Finetune baseline成了表现最优秀的。
总结:当K值小时,使用元学习方法;K值增大,Finetune的结果更好。
上述内容仅为个人愚见,欢迎讨论交流。
来源:oschina
链接:https://my.oschina.net/u/4418004/blog/4328498