few-shot learning是什么

个人博客:https://xhw205.github.io/

小样本学习

背景

深度学习背景下,每个类至少需要上千张训练样本才能使CNN在已知类别上性能饱和。此外,神经网络 generalization ability 薄弱,当 novel class 来临时, 模型很难通过少量的标记样本就学会识别 novel concepts。然而这一切对于人类来说却不成问题,我们人类是具有快速从少量(单)样本中快速学习能力的。即使对于一个五六岁的孩子来说,他从没有见过 “熊猫”,父亲给他看了一次熊猫的图片后,孩子到了动物园也会认识到那个黑眼圈,胖胖的动物叫“熊猫”啊。

有的朋友可能会想,为什么我们人类总是能快速的学习到未知的事物?简单的说,是因为人类生活中各种知识的积累以及人类天生的思考能力(如:类比能力)。知识的积累意味着我们是存在各种知识的先验的,天生的思考能力意味着我们拥有强大的类比能力、强大的大脑算力。

以“人类从未见到过澳大利亚的鸭嘴兽,给我们一张鸭嘴兽的照片后,人类就认识了!”这句话为例。鸭嘴兽就代表未知的事物(new class),而我们生活中已经见到过的鸭子、狸猫、鱼等动物就代表知识的先验,我们把这种知识的先验称为 元知识 (meta Knowledge),我们大脑的能快速的把从未见过的鸭嘴兽与这些元知识快速的类比(可能还存在一些其他脑力活动,如视觉提取物体的特征),得出结论:这个长得像鸭子嘴,还能像鱼一样游泳、身形扁扁的新动物就是鸭嘴兽。

上一段举的这个例子,倒是把我们人类的大脑小看了,这里我只是想说明,novel concepts 和已知知识是存在千丝万缕的联系的。当然,如果对于一件事物,我们完全完全未知,我们人类学习也是需要时间的。

看文字看累了,我们接着用图的方式来看看的 few shot 吧~

few-shot learning是什么_第1张图片

经过我上边的图,再加上下面的过程的文字介绍,我们应该可以理解小样本学习的过程了。

few-shot learning是什么_第2张图片

 

到了这里,还有唯一的疑问就是:小样本学习如何训练,就是这个 \mathcal{D}_{base} 怎么用呢?有两种训练方式:

1. 就是像 《Matching Nets》《RelationNet》《Prototypical Nets》《Meta-SGD》等等那样,训练测试保持统一,训练过程模拟测试过程。即训练时候,以 MatchNets,5way-1shot为例,每次也是随机采5个类,每类中1张图像做support sample,剩余的 99 张图像中可采15张做query samples ,query 与 support 通过 cosine distance 分类并计算 loss。这属于一种元学习的训练策略,往往用于 5-way 的设置

2. 普通分类训练方式,\mathcal{D}_{base} 直接用普通分类方式来训练一个鲁棒的特征提取器,\mathcal{D}_{novel}  可以直接通过 SVM,Euclid ,权重迁移的方式分出 query set。

------------------------------------------------------------------------------------------------------------------------------

分割线

2019年6月13日更新

18年写这篇文章时候,基本上网上还没有 few-shot 的东西,没想到访问量突破 w 了。现在few-shot也逐步被大家水的饱和了,开始转向 zero-shot。

 

 

 

 

你可能感兴趣的:(个人笔记)