原文:HTML
作者:Chelsea Finn(BAIR)
Learning to Learn
智能的一个关键方面是多功能性(versatility),即做许多不同事情的能力。目前的人工智能系统擅长掌握一项技能,如围棋、危险,甚至直升机特技飞行。但是,当你要求人工智能系统做各种看似简单的问题时,它会很纠结。冠军危险项目不能进行对话,特技飞行的专家直升机控制器不能在新的简单情况下导航,如定位、导航和悬停在火上灭火。相比之下,人类可以聪明地行动和适应各种各样新的、看不见的情况。我们怎样才能使我们的人工智能获得这样的多功能性?
有几种技术正在被开发来解决这些问题,我将在这篇文章中对它们进行调查,并讨论我们实验室最近的一种技术,称为模型不可知元学习(model-agnostic meta-learning)。(点击此处查看研究论文,点击此处查看底层技术的代码。)
目前的人工智能系统可以从头开始掌握一项复杂的技能,使用大量的时间和经验是可以理解的。但是,如果我们希望我们的代理(agents)能够获得许多技能并适应许多环境,我们就不能从头开始在每个环境中训练每项技能。相反,我们需要代理通过重用以前的经验来学习如何更快地学习新任务,而不是孤立地考虑每个新任务。这种学习学习的方法,或称元学习(meta-learning),是通向多功能的代理的关键垫脚石,他们可以在一生中不断学习各种各样的任务。
So, what is learning to learn, and what has it been used for?
元学习的早期方法可以追溯到20世纪80年代末和90年代初,包括 Jürgen Schmidhuber’s thesis 和 Yoshua and Samy Bengio 的工作。最近,元学习已经成为一个热门话题,最近发表了一系列论文,最常见的是使用超参数和神经网络优化技术,寻找良好的网络架构,少镜头图像识别和快速强化学习。
Few-Shot Learning
2015年,Brendan Lake et al. 发表了一篇论文,挑战现代机器学习方法,使其能够从一个或几个概念实例中学习新概念。例如,Lake 建议人类可以从一张照片(如下图所示)中学会识别“新型两轮车”,而机器不能仅从一张照片中概括一个概念。(人类也可以在看到一个例子后,用新的字母表来画一个字符)。除了这篇论文,Lake 还包括了一个手写字符数据集 Omniglot,MNIST的“转置”,有1623个字符类,每个有20个样本。两个深度学习模型很快在ICML 2016上发表论文,使用了记忆增强神经网络(memory-augmented neural networks)和序列生成模型(sequential generative models);显示深度模型有可能从少量样本中学习,尽管还没有达到人类的水平。
How Recent Meta-learning Approaches Work
元学习(Meta-learning)系统通过接触大量任务来训练,然后测试它们学习新任务的能力;任务的例子如在5个可能的类中分类一个新的图像,给定每个类的一个例子,或者学习只通过迷宫的一次遍历来有效地导航一个新的迷宫。这不同于许多标准的机器学习技术,后者包括对单一任务的训练和对该任务中的突出例子(held-out examples)的测试。
Example meta-learning set-up for few-shot image classification, visual adapted from Ravi & Larochelle ‘17.
在元学习期间,模型被训练来学习元训练集中的任务。有两种优化在发挥作用——学习新任务的学习器和训练学习器的元学习器。元学习的方法通常分为三类:递归模型(recurrent models)、度量学习(metric learning)和学习优化器(learning optimizers)。
Recurrent Models
这些方法训练一个循环模型,例如LSTM模型,以顺序获取数据集,然后处理来自任务的新输入。在图像分类设置中,这可能涉及按顺序传入数据集的一组(image, label) 对,然后是必须分类的新样本。
Recurrent model approach for inputs
x
t
x_t
xt and corresponding labels
y
t
y_t
yt, figure from Santoro et al. '16.
元学习器使用梯度下降,而学习器简单地推出(rolls out)循环网络。这种方法是最通用的方法之一,已经用于少量分类和回归以及元强化学习。由于其灵活性,这种方法也往往不如其他方法(元)有效,因为学习器网络需要从头开始制定学习策略。
Metric Learning
这种方法包括学习一个度量空间(metric space),在这个空间中学习特别有效。这种方法主要用于少量样本分类(few-shot classification)。直观地说,如果我们的目标是从少量的示例图像中学习,那么一个简单的方法是将试图分类的图像与拥有的示例图像进行比较。但是,在像素空间中比较图像效果并不好。相反,可以训练一个孪生网络(Siamese network)或在一个学习的度量空间中执行比较。像前面的方法一样,元学习是使用梯度下降(或你最喜欢的神经网络优化器)来执行的,而学习器对应于元学习度量空间中的比较方案,例如最近邻算法。尽管这些方法在其他元学习领域如回归学习或强化学习中还没有得到证明,但它们对于少量分类还是很有效的。
Learning Optimizers
最后一种方法是学习优化器(learn an optimizer)。在这种方法中,有一个网络(元学习器)学习更新另一个网络(学习器),以便学习器有效地学习任务。为了更好地优化神经网络,已经对这种方法进行了广泛的研究。元学习器通常是一个循环网络,因此它可以记住它以前是如何更新学习器模型的。元学习器可以通过强化学习或监督学习进行训练。Ravi & Larochelle 最近展示了这种方法在少量图像分类(few-shot image classification)方面的优势,提出了学习器模型是一个应该学习的优化过程的观点。
Learning Initializations as Meta-Learning
可以说,迁移学习(transfer learning)最大的成功案例是使用ImageNet预训练初始化视觉网络权重。特别地,当接近任何新的视觉任务时,众所周知的范例是首先为任务收集标记数据,获取在ImageNet分类上预先训练的网络,然后使用梯度下降在收集的数据上微调网络。使用这种方法,神经网络可以更有效地从中等大小的数据集学习新的基于图像的任务。不过,预训练也就这么多。因为网络的最后几层仍然需要很大程度上适应新的任务,数据集太小,如在少样本(few-shot)设置中,仍然会导致严重的过拟合。此外,不幸的是,我们没有针对非视觉领域(如语音、语言和控制)的类似预训练计划。ImageNet微调的显著成功有什么值得借鉴的吗?
Model-Agnostic Meta-Learning (MAML)
如果我们直接优化一个可以从少量例子中有效微调的初始表示会怎么样?这正是我们最近提出的算法背后的想法,与模型无关的元学习(MAML)。像其他元学习方法一样,MAML训练的任务范围很广。它通过几个渐变步骤,训练出一种能快速适应新任务的表示法。元学习器寻求找到一种不仅对适应各种问题有用,而且可以快速(在少量步骤中)和有效(仅使用几个例子)适应的初始化。下面是一个可视化——假设我们正在寻找一组适应性很强的参数
θ
θ
θ。在元学习过程中(粗线),MAML对一组参数进行优化,使得当针对特定任务
i
i
i (灰色线) 应用梯度步骤时,这些参数接近最佳参数
θ
i
∗
\theta_i^*
θi∗ 代表任务
i
i
i。
这种方法非常简单,并具有许多优点。它没有对模型的形式做任何假设。它非常有效——无需为元学习引入其他参数,学习器的策略使用已知的优化过程(梯度下降),而不必从头开始设置。最后,它可以轻松地应用于许多领域,包括分类,回归和强化学习。
尽管该方法很简单,但我们惊讶地发现该方法在流行的少量(few-shot)图像分类基准Omnilot和MiniImageNet上能够大大胜过许多现有方法,其中包括更为复杂或针对特定领域的现有方法。除了分类之外,我们还尝试学习如何使模拟机器人的行为适应不同的目标,类似于此博客文章顶部的动机——多功能性。为此,我们将MAML与策略梯度方法结合使用以进行强化学习。MAML发现了一种策略,可以让模拟机器人在单个梯度更新中调整其运动方向和速度。观看下面的动图:
这种方法的通用性(它可以与任何基于梯度的优化足够平滑的模型相结合)使得MAML适用于除了本文所探讨的领域和学习目标之外的广泛领域和学习目标。
我们希望MAML能够有效地教会代理以适应各种情况的简单方法,将使我们朝着开发可以学习现实环境中各种技能的多功能代理迈出更进的一步。
这篇文章的最后一部分基于以下研究论文:
- C. Finn, P. Abbeel, S. Levine. In ICML, 2017. Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks. (code)