元学习的提出背景
你带小朋友去动物园,小朋友看到水里面有一只毛茸茸的小动物,他从来没有见过这种动物,所以他想知道这种动物是什么,虽然小朋友没有见过这种动物,但是他学过如何区分动物,他有自主学习的能力。现在你给他一堆卡片,每张卡片上有一个动物的图片和动物的名字,小朋友既没有见过眼前水里面的动物,也没有见过这些卡片上的动物,但是小朋友很聪明,他把卡片翻一遍,就知道自己眼前看到的动物是水塔了。
他做出的依据是眼前水里面的动物和卡片上的水塔长得很像。去动物园之前,小朋友就已经有了自主学习的能力,他知道怎么样判断动物之间的异同。
培养小朋友学会自主学习,就是meta—learning。
元学习的目的?
在介绍两种主流的元学习方法之前,先简要概括下元学习与监督学习的区别。
监督学习:(测试样本并不出现在训练集中;测试样本的类别来源于训练集中的已知类别)
- 只在一个任务上做训练;
- 只有一个训练集和一个测试集;
- 学习的是样本之间的泛化能力;
- 要求训练数据和测试数据满足独立同分布;
- 监督学习的训练和测试过程分别为train和test;
小样本条件下监督学习的过程如图所示。

元学习:
- 元学习是面向多个任务做联合训练;
- 每个任务都有训练集和测试集;
- 学习到的是任务之间的泛化能力;
- 要求新任务与训练任务在分布上尽可能一致;
- 元学习的训练和测试过程分别叫做Meta-train和Meta-test;
小样本条件下元学习过程如下图所示。

元学习的目标之一是快速学习的能力,即在多个不同的任务上学习一个模型,让其在新任务上经过少量的迭代,甚至是单步迭代,就可以达到一个非常好的性能,并且避免在新任务上的过拟合.
元学习适合那些学习场景?
在人工智能系统的背景下,元学习可以简单地定义为获取知识多样性 (knowledgeversatility) 的能力。作为人类,我们能够以最少的信息同时快速完成多个任务;例如人类在有了世界的概念之后,看一张图片就能学会识别一种物体,而不需要向神经网络一样一切都得从头训练;又例如在学会了骑自行车之后,可以基本在很短时间里无障碍地学会骑电动车。
目前的 Al 系统擅长掌握单一技能,例如 Go,Jeopardy 甚至直升机特技飞行。但是,当你要求 Al 系统做各种简单但又路有不同的问题时,它会很困难。相比之下,人类可以智能地行动和适应各种新的情况。
元学习要解決的就是这样的问题:设计出拥有获取知识多样性能力的机器学习模型,它可以在基于过去的经验与知识下,通过少量的训练样本快速学会新概念和技能。
与多任务学习以及迁移学习看似相同其实不尽相同的元学习?
元学习虽然从适应新任务的角度看,像是多任务学习;从利用过去信息的角度看,又像迁移学习。不过相对比二者还是有自己的特殊性。
相较于迁移学习,元学习模型的泛化不依赖于数据量。而迁移学习微调阶段还是需要大量的数据去喂模型的,不然会很影响最终效果。而元学习的逻辑是在新的任务上只用很少量的样本就可以完成学习,看一眼就可以学会。从这个角度看,迁移学习可以理解为元学习的一种效率较低的实现方式。
对比多任务学习,元学习实现了无限制任务级别的泛化。因为元学习基于大量的同类任务(如图像分类任务 )去学习到一个模型,这个模型可以有效泛化到所有图像分类任务上。而多任务学习是基于多个不同的任务同时进行损失函数优化,它的学习范围只限定在这几个不同的任务里,并不具学习的特性。
基于优化器的元学习
不同的优化算法的区别在于更新参数的规则不同,因此一种很自然的元学习就是自动学习一种更新参数的规则,即通过另一个神经网络(比如循环神经网络)来建模梯度下降的过程 .图10.2给出了基于优化器的元学习的示例.
模型无关的元学习(MAML)

θ 是已经优化过的模型参数表示