1 引言
人工智能技术有机器学习、深度学习、强化学习、元学习。元学习是其实是深度学习上的一个发展,为了解决小样本问题的,注意这是有区别机器学习和深度学习中的有监督学习的。
接下来举例来讲解Meta-learning是什么?怎么做?以及和机器学习或深度学习中的监督学习的区别
2 提出问题
请问:假设你有见过右边图片的动物是什么,现在给出左边四张图片,你能右边图片是什么动物吗?
毫无疑问,答案是穿山甲。因为我们都知道左边图片给出了穿山甲的图片以及名字。这就一个小样本学习的例子。仔细思考在这个过程中,我们自己的大脑做的工作是对比图片,找出最类似的图片,就是哪种动物。那如果用计算机去做这件事,就叫meta-learning。但是如果用机器学习的有监督学习的神经网络去做,那就需要大量的图片去训练,模型才能识别出图片中动物是什么。但这只有四张图片,是不可能训练处一个神经网络的。这就是与监督学习的一个最大的区别。
3 Few-shot learning小样本学习
在介绍Meta-learning之前,从简单例子入手。Few-shot learning意思是小样本学习,是Meta-learning中的一种。其中提供参考的图片集合叫Support Set。是在做预测的时候提供的额外信息。
小样本学习的目标不是让机器学习去识别数据集里的图片,而是让机器学习去学会区分事物之间的异同。简单来说,就是让机器学习出来的模型判断两张图片是不是同一种东西。
4 Meta-learning元学习
Meta-learning元学习(learn to learn),是指通过训练集去训练出一个有学习能力的函数或模型。举个例子,比如下朋友从来没有见过这种动物,但是他是有学习能力的,是有区分动物的能力,能够判断不同事物之间的异同。当给他一堆卡片,他就能识别出,当前的动物是对应图片里的哪种动物。
其中这一堆卡片就是Support set,教小朋友区分不同的动物,就是learn to learn,即Meta-learning。教小朋友学习的过程就是模型训练的过程。
5 如何通过机器学习学习出区分不同事物的能力?
就是如何教小男孩去学会去区分不同的动物?答:让机器学习学习出一个相似度函数。
如果给出以下三张图片作为数据集,那机器学习去做的事情就是去学习出一个相似度函数Sim,在以下图片中表示Sim(x1,X2)=1,Sim(x1,X3)=0,Sim(x2,X3)=0.那训练集就是{(Sim(x1,X2),1),(Sim(x1,X3),0),(SIm(X2,X3),0)}
在测试的时候,提供一个support set ,用上面机器学习学习到的相似度函数,分别计算图片与Support Set中每一张图片的相似度,以相似度最高的做出类别的输出。这就是整个Meta-learning的过程。
6 传统监督学习与小样本学习的区别
(1)在传统的监督学习中
为了识别右边的图片是什么,训练集中必须要有同类别成百上千张的图片数据。才能准确识别。
(2)在小样本学习中
如下所示,在训练集中是没有兔子类别的。这个数据集只是用来学习区分辨别能力的。
然后在预测的时候,用这个能力去Support set中去找出类似的图片,作为分类的结果
7 Meta-learning中相关概念
(1)在Support set中有两个变量
• k:k表示Support Set的总共类别
• n:表示每个类别的样本数
比如以下是有4个类别,每个类别有两个样本,称为4-way,2-shot
在分类任务中,准确率会受k,n两个变量影响,随着K的增大,准确率下降,因为,区分难度变大了。类似于给小男孩100张卡片,让他找出动物园看的某个动物,宝宝就不会做了或者出错概率大了。
随着n的增大,准确率上升,因为参考的资料更过了。