1. Where to start?
2. 小样本学习综述:
3. zero-shot、one-shot、few-shot 和 many-shot learning 之间的联系和区别?
首先介绍一个很形象的例子:
假设小暗(纯粹因为不想用小明)和爸爸,到了动物园,看到了马,然后爸爸告诉他,这就是马;之后,又看到了老虎,告诉他:“看,这种身上有条纹的动物就是老虎。”;最后,又带他去看了熊猫,对他说:“你看这熊猫是黑白色的。”然后,爸爸给小暗安排了一个任务,让他在动物园里找一种他从没见过的动物,叫斑马,并告诉了小暗有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小暗根据爸爸的提示,在动物园里找到了斑马(意料之中的结局。。。)。
上述例子中包含了一个人类的推理过程,就是利用过去的知识(马,老虎,熊猫和斑马的描述),在脑海中推理出新对象的具体形态,从而能对新对象进行辨认。(如图1所示)ZSL就是希望能够模仿人类的这个推理过程,使得计算机具有识别新事物的能力。
——摘自博客 https://blog.csdn.net/tianguiyuyu/article/details/81948700
以上是对 zero-shot learning 的描述,我们事先不让机器看到目标到底是什么样子的,只是告诉机器目标具有的一些特征(这些特征机器已经从其他的事物中学习到了),然后让机器把这个新的目标识别出来。
从 zero-shot learning 扩展到 one-shot learning:同样还是以上“找斑马”的例子,这次我们不告诉机器目标具有哪些特征,而是直接给机器看一张目标的图片(比如直接给机器看一张斑马的图片,告诉它长得像这样的就是斑马),然后再让机器在动物园里找斑马,这样的问题就被称为 one-shot learning 问题。它与 zero-shot learning 的区别是直接提供目标本身的样子而非目标的局部特征。
从 one-shot learning 扩展到 few-shot learning:以上 one-shot learning 的过程中存在一个问题——动物园的斑马有大有小,有高有低,而且每个斑马长的都不尽相同。如果我们仅让机器只看一张图片就能够识别出各种各样不同的斑马,难免有些不太现实(即使是人有可能也会出错),因此在 few-shot learning 中我们事先给机器看 n 张斑马的图片(n 大于1且一般不超过20),这样机器就有机会提前认识各种不同的斑马,此时如果我们再让机器在动物园里找斑马,那么找到斑马的可能性及准确率都会大大提高,这就是 few-shot learning 问题。它与 one-shot learning 的区别就是事先看到了更多的图片。
从 few-shot learning 扩展到 many-shot learning:假设我们想要追求更高的准确率(不管机器遇到了什么样的斑马,我们都希望机器能够准确地将它识别出来),那么以上 few-shot learning 中事先提供的 n 张斑马图片的数量仍然有可能是不够的,我们希望机器事先就尽可能地接触各种各样的斑马,此时我们就要增大 n 的数目(比如增大到几十万甚至几百万),这样 few-shot learning 问题就演变为 many-shot learning 问题(当下大多数神经网络的研究问题都是 many-shot learning 问题,如 ImageNet 上的分类比赛)。
以上问题的研究难度应该是:zero-shot > one-shot > few-shot > many-shot。