Zero-shot Learning / One-shot Learning / Few-shot Learning
Learning类型:Zero-shot Learning、One-shot Learning、Few-shot Learning、Traditional Learning
Zero-shot Learning(零次学习ZSL):训练集中没有出现过的类别,就能自动创造出相应的映射: X --> Y。ZSL问题的定义:利用训练集数据训练模型,使得模型能够对测试集的对象进行分类,但是训练集类别和测试集类别之间没有交集;期间需要借助类别的描述,来建立训练集和测试集之间的联系,从而使得模型有效。
例如:假设小明和爸爸,到了动物园,看到了马,然后爸爸告诉他,这就是马;之后,又看到了老虎,告诉他:“看,这种身上有条纹的动物就是老虎。”;最后,又带他去看了熊猫,对他说:“你看这熊猫是黑白色的。”然后,爸爸给小明安排了一个任务,让他在动物园里找一种他从没见过的动物,叫斑马,并告诉了小明有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小明根据爸爸的提示,在动物园里找到了斑马【意料之中】。例子中包含了一个人类的推理过程,就是利用过去的知识(马,老虎,熊猫和斑马的描述),在脑海中推理出新对象的具体形态,从而能对新对象进行辨认。
要实现ZSL功能似乎需要解决两个部分的问题:
第一个问题是获取合适的类别描述A;第二个问题是建立一个合适的分类模型。
ZSL中存在的问题1: 领域漂移问题(domain shift problem):
同一种属性,在不同的类别中,视觉特征的表现可能很大。如斑马和猪都有尾巴,因此在它的类别语义表示中,“有尾巴”这一项都是非0值,但是两者尾巴的视觉特征却相差很远。如果斑马是训练集,而猪是测试集,那么利用斑马训练出来的模型,则很难正确地对猪进行分类。
ZSL中存在的问题2:枢纽点问题(Hubness problem):
在高维空间中,某些点会成为大多数点的最近邻点。由于ZSL在计算最终的正确率时,使用的是K-NN,所以会受到hubness problem的影响,并且有学者证明了基于岭回归的方法会加重hubness problem问题。
ZSL中存在的问题3:语义间隔(semantic gap)
样本的特征往往是视觉特征,比如用深度网络提取到的特征,而语义表示却是非视觉的,这直接反应到数据上其实就是:样本在特征空间中所构成的流型与语义空间中类别构成的流型是不一致的。这使得直接学习两者之间的映射变得困难。
One-shot Learning(一次学习):训练集中,每个类别都有样本,但都只是一个或少量样本。
Few-shot Learning(小样本学习,少量学习,即One-shot Learning)。
Traditional Learning:即传统深度学习的 海量数据 + 反复训练 炼丹模式。
小样本学习问题:对于训练过程中从未见过的新类,只借助每类少数几个标定样本,不改变已经训练好的模型,能够对测试样本进行分类。