文中会出现几组论文A Closer Look at Few-shot Classification的实验结果,为了便于大家理解实验设置,在文末进行了极简的图文描述,详细内容可以参见原文。
![f7758867419940776efa2b9f863a5abb.png](https://i-blog.csdnimg.cn/blog_migrate/7059ea2f93274e29999650a86214aabb.jpeg)
https://arxiv.org/pdf/1904.04232.pdf
现阶段绝大多数小样本学习任务会转化成本n-way k-shot形式,下面提到的小样本学习默认为n-way k-shot问题。
对于目前刚接触小样本学习或者了解不深入的人来说通常会对小样本学习方法普遍存在这样一个认知:小样本方法在不依靠外部数据的情况下可以独立解决few shot问题,即当我们的样本量有限时,可以将现有样本构建成n-way k-shot的形式,利用(MAML、Reptile或者度量等)进行训练测试,得到一个不错的结果;对小样本学习算法和深度学习有过研究的人会发现这是一种错误的想法,如果这种方法行得通,那确实也就成了如这篇文章所说的悖论。Matrix-11:小样本学习的悖论(https://zhuanlan.zhihu.com/p/120056051)
这里再次强调下,几乎当下所有的小样本学习方法都是迁移学习的一种形式(包括MAML、Reptile、原型网络、关系网络等),小样本学习方法需要借助外部信息做为先验知识,才能有效开展学习任务。这个外部信息在N-way K-shot任务中指的就是Base class,而我们手上有限的样本指的是Novel class,当然这个Base class不可以是任意的,需要和Novel class属于同一个或者接近的Domain(也就是说先验知识要和我们要学习的目标知识相近)。如果相差太大,会大大影响在Novel class上的测试结果,实验结果对比结果如图一。
![2bed759a31f791dcf8cb38a9d79f7eea.png](https://i-blog.csdnimg.cn/blog_migrate/bdcbd672c444b611d10e8e45f425e4f8.jpeg)
图一:ResNet-18 backbone下不同domain5shot的学习结果
将CUB数据集切分成Base class和Novel class数据集进行学习,效果良好;在miniImageNet上切分成Base class和Novel class数据集进行实验,结果也还不错;但是当以miniImageNet做为Base class,CUB数据集做为Novel class时,学习效果会明显下降。其中Baseline在众多模型里受影响是最小的。
在N-way K-shot任务中,随着N和K变化对实验结果的影响在上一篇文章中做过探讨,可参见下面链接。
https://mp.weixin.qq.com/s/JQ6XMaO0Vi_2BxnAAArm3A
不同模型之间的对比结果在A Closer Look at Few-shot Classification这篇文论中也做过验证,如表一和表二所示。
![9967f63219ba774d452f50ca7583753a.png](https://i-blog.csdnimg.cn/blog_migrate/e0c30ea15a7bc10224a12541c32e17ba.jpeg)
表一:Meta-testing中准确率随N变化的实验结果
![1db6caf9f863953b0b0b239909b3da4a.png](https://i-blog.csdnimg.cn/blog_migrate/8d39c52b9a7d874f593abd78912c9326.jpeg)
表二:shot=1和shot=5时不同backbone下的实验结果
随着样本类别数量N的增加,虽然各个模型的准确率都呈现不同程度的下滑,但是Baseline ++在大多数情况下都明显优于其他模型;随着每一类样本量K的增加,我们可以看到,1shot时,不同模型在不同backbone下各有优劣;当K值增加到5时,Baseline++在各个backbone下都成了最优的。
总结:考虑到Base class和我们目标任务中Novel class没办法完全在同一个domain的情况,同时当我们手上的样本数量又有限时(这里不考虑transform和GAN等一系列数据增强方法),结合上述讨论以及实验结果:首先应该尝试的是pre-training + finetune方法(即Baseline和Baseline++),而不是元学习中MAML、度量学习等方法,例如:针对图片分类问题,可以使用基于ImageNet下的训练好的网络及其模型参数如:VGG、ResNet、Xception等进行finetune;针对音频分类问题,我们可以使用基于AudioSet的VGGish模型网络及参数进行finetune,其中ImageNet和AudioSet就是前面提到的先验知识。
以上内容存在或多或少片面的地方,仅代表个人想法。
图三:Baseline and Baseline++
- Baseline = pre-training + fine-tuning(linear layer)
- Baseline++ = pre-training + fine-tuning(Cosine distance)
图四:MatchingNet+ ProtoNet+ RelationNet+ MAML
- MatchingNet = Meta Training + Meta Testing(Cosine distance)
- ProtoNet = Meta Training + Meta Testing(classmean + 欧式距离)
- RelationNet = Meta Training + Meta Testing(classmean + relation mudule)
- MAML = Meta Training + Meta Testing(two-step gradient)
![54ddb76851d8c5ea75a5e8d365268cc9.png](https://i-blog.csdnimg.cn/blog_migrate/6c7105f049065ca218eb0251c217133f.jpeg)
图三:Baseline and Baseline++
![4ebfe2bd5104a3d908eee359e1418a5e.png](https://i-blog.csdnimg.cn/blog_migrate/29680c2027c68a4e9597104e345fe897.jpeg)
图四:MatchingNet+ ProtoNet+ RelationNet+ MAML
作者:知乎—Curry
地址:https://www.zhihu.com/people/curry-5-28
![33f80507849db2003193112498e10ab3.png](https://i-blog.csdnimg.cn/blog_migrate/0c41cf177b5b2b5e428718cc474691b6.jpeg)