元学习的提出背景 

        根据没有免费午餐定理, 没有一种通用的学习算法可以在所有任务上都有效. 因此 当使用机器学习算法实现某个任务时 我们通常需要 就事论事 ”, 根据任务的特点来选择合适的模型、 损失函数 优化算法以及超参数 那么 我们是否可以有一套自动方法, 根据不同任务来动态地选择合适的模型或动态地调整超参数呢? 事实上 人脑中的学习机制就具备这种能力 在面对不同的任务时 人脑的学习机制并不相同. 即使面对一个新的任务 人们往往也可以很快找到其学习方式. 这种可以动态调整学习方式的能力 称为 元学习 Meta-Learning ), 也称为 学习的学习 Learning to Learn )。
        元学习(Meta Learning)或者叫做学会学习(Learning to Learn),它是要 “ 学会如何学习 ” ,即利用以往的知识经验来指导新任务的学习,具有学会学习的能力。
举例说明learn to learn

        你带小朋友去动物园,小朋友看到水里面有一只毛茸茸的小动物,他从来没有见过这种动物,所以他想知道这种动物是什么,虽然小朋友没有见过这种动物,但是他学过如何区分动物,他有自主学习的能力。现在你给他一堆卡片,每张卡片上有一个动物的图片和动物的名字,小朋友既没有见过眼前水里面的动物,也没有见过这些卡片上的动物,但是小朋友很聪明,他把卡片翻一遍,就知道自己眼前看到的动物是水塔了。

        他做出的依据是眼前水里面的动物和卡片上的水塔长得很像。去动物园之前,小朋友就已经有了自主学习的能力,他知道怎么样判断动物之间的异同。

        培养小朋友学会自主学习,就是meta—learning。

元学习的目的?

        元学习的目的是从已有任务中学习一种学习方法或元知识, 可以加速新任务的学习. 从这个角度来说 元学习十分类似于 归纳迁移学习 但元学习更侧重从多种不同( 甚至是不相关 的任务中归纳出一种学习方法
        和元学习比较相关的另一个机器学习问题是 小样本学习 (Few-shot Learning)这是因为由于元学习可帮助模型在少量样本下快速学习,从元学习的使用角度来看,人们也称之为少次学习(Few—Shot Learning) 即在小样本上的快速学习能力 每个类只有 𝐾 个标注样本 𝐾 非常小 .如果𝐾 = 1, 称为 单样本学习 (One-shot Learning ); 如果 𝐾 = 0 称为 零样本学习 (Zero-shot Learning).
这里我们主要介绍两种典型的元学习方法 基于优化器的元学习 模型无关的元学习

在介绍两种主流的元学习方法之前,先简要概括下元学习与监督学习的区别。

监督学习:(测试样本并不出现在训练集中;测试样本的类别来源于训练集中的已知类别)

  1. 只在一个任务上做训练;
  2. 只有一个训练集和一个测试集;
  3. 学习的是样本之间的泛化能力;
  4. 要求训练数据和测试数据满足独立同分布;
  5. 监督学习的训练和测试过程分别为train和test;

小样本条件下监督学习的过程如图所示。

监督学习过程

元学习:

  1. 元学习是面向多个任务做联合训练;
  2. 每个任务都有训练集和测试集;
  3. 学习到的是任务之间的泛化能力;
  4. 要求新任务与训练任务在分布上尽可能一致;
  5. 元学习的训练和测试过程分别叫做Meta-train和Meta-test;

小样本条件下元学习过程如下图所示。

元学习过程

        元学习的目标之一是快速学习的能力,即在多个不同的任务上学习一个模型,让其在新任务上经过少量的迭代甚至是单步迭代就可以达到一个非常好的性能,并且避免在新任务上的过拟合

元学习适合那些学习场景?

      在人工智能系统的背景下,元学习可以简单地定义为获取知识多样性 (knowledgeversatility) 的能力。作为人类,我们能够以最少的信息同时快速完成多个任务;例如人类在有了世界的概念之后,看一张图片就能学会识别一种物体,而不需要向神经网络一样一切都得从头训练;又例如在学会了骑自行车之后,可以基本在很短时间里无障碍地学会骑电动车。
        目前的 Al 系统擅长掌握单一技能,例如 Go,Jeopardy 甚至直升机特技飞行。但是,当你要求 Al 系统做各种简单但又路有不同的问题时,它会很困难。相比之下,人类可以智能地行动和适应各种新的情况。
        元学习要解決的就是这样的问题:设计出拥有获取知识多样性能力的机器学习模型,它可以在基于过去的经验与知识下,通过少量的训练样本快速学会新概念和技能。

与多任务学习以及迁移学习看似相同其实不尽相同的元学习?


        元学习虽然从适应新任务的角度看,像是多任务学习;从利用过去信息的角度看,又像迁移学习。不过相对比二者还是有自己的特殊性。
       相较于迁移学习,元学习模型的泛化不依赖于数据量。而迁移学习微调阶段还是需要大量的数据去喂模型的,不然会很影响最终效果。而元学习的逻辑是在新的任务上只用很少量的样本就可以完成学习,看一眼就可以学会。从这个角度看,迁移学习可以理解为元学习的一种效率较低的实现方式。
       对比多任务学习,元学习实现了无限制任务级别的泛化。因为元学习基于大量的同类任务(如图像分类任务 )去学习到一个模型,这个模型可以有效泛化到所有图像分类任务上。而多任务学习是基于多个不同的任务同时进行损失函数优化,它的学习范围只限定在这几个不同的任务里,并不具学习的特性。

基于优化器的元学习

        不同的优化算法的区别在于更新参数的规则不同,因此一种很自然的元学习就是自动学习一种更新参数的规则,即通过另一个神经网络比如循环神经网络)来建模梯度下降的过程 10.2给出了基于优化器的元学习的示例

模型无关的元学习(MAML)

        模型无关的元学习 Model-Agnostic Meta-Learning MAML 是一个简单的模型无关、 任务无关的元学习算法.假设所有的任务都来自于一个任务空间, 其分布为 𝑝(𝒯) 我们可以在这个任务空间的所有任务上学习一种通用的表示, 这种表示可以经过梯度下降方法在一个特定的单任务上进行精调. 假设一个模型为 𝑓 𝜃 如果我们让这个模型适应到一个新任务𝒯𝑚 通过一步或多步的梯度下降更新,学习到的任务适配参数为:

不可知元学习算法(MAML)的示意图,该算法针对能够快速适应新任务的θ进行了优化。
θ 是已经优化过的模型参数表示

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐