摘要:
元学习或学会学习是系统地观察不同机器学习方法如何在广泛的学习任务中执行的科学,然后从这种经验或元数据中学习,以比其他方式更快地学习新任务 。
这不仅极大地加速和改进了机器学习流程或神经网络架构的设计,还使我们能够用数据驱动方式学习的新方法取代手工设计算法。
在本章中,我们将概述这个迷人且不断发展的领域的最新技术。
Introduction
当我们学习新技能时,我们很少 - 如果有的话 - 从头开始。我们从之前在相关任务中学到的技能开始,重用以前运作良好的方法,并根据经验关注可能值得尝试的内容(Lake et al。,2017)。通过学到的所有技能,学习新技能变得更容易,需要更少的示例和更少的试错。简而言之,我们跨任务学习如何学习。同样,在为特定任务构建机器学习模型时,我们通常会建立相关任务的经验,或者使用我们(通常是隐含的)对机器学习技术行为的理解来帮助做出正确的选择。
元学习的挑战是以系统的,数据驱动的方式从先前的经验中学习。首先,我们需要收集描述先前学习任务和先前学习模型的元数据。它们包括用于训练模型的精确算法配置,包括超参数设置,流程组合和/或网络架构,所得到的模型评估,例如准确性和训练时间,学到的模型参数,例如训练到的神经网络的权重,以及任务本身的可测量的适当关系,也称为元特征。接着,我们需要从这个先前的元数据开始学习,以提取和传递知识用于指导搜索新任务的最佳模型。本章简要概述了有效实现这一目标的不同元学习方法。
元学习一词涵盖基于其他任务的先前经验的任何类型的学习。这些先前的任务越相似,我们可以利用的元数据类型就越多,并且定义任务相似性将是一个关键的总体挑战。不用多说,天下没有免费的午餐(Wolpert和Macready,1996; Giraud-Carrier和Provost,2005)。当一项新任务代表完全不相关的现象或随机噪音时,利用先前的经验将无效。幸运的是,在现实世界中的任务中,有很多机会可以学习以前的经验。
在本章的其余部分,我们根据元数据学习所利用的元数据类型对元学习技术进行分类,从最通用的到最特定于任务的。首先,在第2节中,我们讨论如何纯粹从模型评估中学习。这些技术可用于推荐通常有用的配置和配置搜索空间,以及从经验相似的任务中转移知识。在第3节中,我们讨论如何表征任务以更明确地表达任务相似性并建立元模型来学习数据特征与学习性能之间的关系。最后,第4节介绍了如何在固有相似的任务之间传递训练后的模型参数,例如共享相同的输入功能,从而可以进行迁移学习(Pan和Yang,2010)和少样本学习(Ravi和Larochelle,2017)。
请注意,尽管多任务学习(Caruana,1997)(同时学习多个相关任务)和集成学习(Dietterich,2000)(在同一任务上构建多个模型)通常可以与元学习系统有意义地结合,本身并不涉及在其他任务上的先前经验中学习。
Learning from Model Evaluations
考虑到我们可以访问先前任务$t_j \in T$,所有已知任务的集合以及一组学习算法,这些算法完全由其配置$\theta_i\in \Theta$定义; 在此,$\Theta$表示离散的,连续的或混合的配置空间,其可以包括超参数设置,流程组件和/或网络架构组件。$P$是任务$t_j$上所有配置$\theta_i$的所有先前标量评估$P_{i, j}=P(\theta_i,t_j)$的集合,根据预先定义的评估方法,例如 准确性和模型评估技术,例如 交叉验证。$P_{new}$是新任务$t_{new}$上一组已知评估$P_{i,new}$的集合。现在,我们想训练一个元学习器$L$,它预测针对新任务$t_{new}$的推荐配置$\Theta^\ast _{new}$。元学习器接受元数据$P\cup P_{new}$的训练。$P$通常是事先收集的,或者是从元数据存储库中提取的(Vanschoren等,2014,2012)。通过元学习技术本身以迭代方式学习$P_{new}$,有时以另一种方法生成的初始$P’_ {new}$进行热启动。
Task-Independent Recommendations
首先,假设无法获得有关$t_{new}$的任何评估,因此$P_{new}=\emptyset$。然后,我们仍然可以学习函数$f: \Theta \times T \to \{\theta^\ast _ k\},k = 1..K$,产生了一组独立于$t_{new}$的推荐配置。然后可以重新评估这些$\theta ^ \ast _ k$,以选择最佳的$\theta _ k$,或热启动进一步的优化方法,例如第2.3节中讨论的方法。
这种方法通常会产生排序,即有序集合$\theta ^ \ast _ k$。这通常是通过将$\theta$离散化为一组候选配置$\theta_ i$,该候选配置也称为portfolio,在大量任务$t_j$上进行评估来完成的。然后,我们可以根据成功率,AUC或significant wins来建立每个任务上的排名(Brazdil等,2003a; Demˇsar,2006; Leite等,2012)。但是,通常希望将同样好的但速度更快的算法排在更高的位置,并且已经提出了多种方法来权衡准确性和训练时间(Brazdil等人,2003a; van Rijn等人,2015)。接下来,我们可以将这些单任务排名汇总为全局排名,例如通过计算在所有任务上的平均排名(Lin,2010; Abdulrahman et al。,2018)。当没有足够的数据来建立全局排名时,可以根据每个先验任务的最佳已知配置来推荐配置子集(Todorovski和Dzeroski,1999; Kalousis,2002),或者返回准线性排名(Cook等。(1996)。
为了找到任务$t_{new}$的最佳$\theta^\ast$,这是从未见过的任务,一种随时随地的简单方法是选择前$K$个配置(Brazdil等人,2003a),从列表中查找并依次评估每个配置在$t_{new}$上的表现。在固定值$K$个,时间预算约束或找到足够准确的模型之后,可以停止此评估。在时间受限的环境中,已表明多目标排名(包括训练时间)更快地收敛到接近最优的模型(Abdulrahman等,2018; van Rijn等,2015),并提供了强有力的基线用于算法比较(Abdulrahman等,2018; Leite等,2012)。
与上述方法非常不同的方法是,首先对特定任务$t_j$的所有先前评估拟合微分函数$f_j(\theta_i)= P_{i,j}$,然后使用梯度下降找到每个先前任务的优化配置$\theta^\ast _ j$(Wistuba等人,2015a)。假设某些任务$t_j$与$t_{new}$相似,则这些$\theta ^ \ast _ j$对于热启动贝叶斯优化方法很有用。
Confifiguration Space Design
Confifiguration Transfer
Relative Landmarks
Surrogate Models
Warm-Started Multi-task Learning
Other Techniques
Learning Curves
Learning from Task Properties
Task-Independent Recommendations
Confifiguration Space Design
Confifiguration Transfer
Relative Landmarks
Surrogate Models
Warm-Started Multi-task Learning
Other Techniques
Learning Curves
Learning from Task Properties
Meta-Features
Learning Meta-Features
Warm-Starting Optimization from Similar Tasks
Meta-Models
Ranking
Performance Prediction
Pipeline Synthesis
To Tune or Not to Tune?
Learning from Prior Models
Transfer Learning
Meta-Learning in Neural Networks
Few-Shot Learning
一项特别具有挑战性的元学习问题是,鉴于有大量可用训练集的非常相似任务的先前经验,我们仅使用几个训练示例就可以训练出准确的深度学习模型。这称为少样本学习。人类对此具有与生俱来的能力,我们希望构建可以做到这一点的机器学习agent(Lake等人,2017)。一个具体的例子是“ K-shot N-way”分类,其中给了我们某些类别(例如物体)的许多例子(例如图像),并且想要学习一个能够仅使用$K$个示例对$N$个新类别进行分类的分类器$l_{new}$。
例如,利用先前的经验,我们可以学习所有任务的通用特征表示,通过更好的模型参数初始化$W_{init}$开始训练$l_{new}$,以及获得归纳偏差以帮助指导模型参数的优化,从而使$l_{new}$能比其他方法训练快得多。
单样本学习的早期工作主要基于手工设计的特征 (Fei-Fei et al., 2006; Fei-Fei, 2006; Fink, 2005; Bart and Ullman, 2005)。但是,通过元学习,我们希望以端到端的方式学习所有任务的通用特征表示。
Vinyals et al. (2016) 指出,要从很少的数据中学习,就应该关注非参数模型(例如k近邻),该模型使用记忆组件而不是学习许多模型参数。他们的元学习器是一个匹配网络,它应用了神经网络中记忆组件的概念。它为标记的样本学习通用表示,并使用余弦相似度将每个新的测试样本与存储的样本进行匹配。该网络在小批次上进行了训练,每个批次仅包含几个特定任务的样本。
Snell et al. (2017) 提出了原型网络,将样本映射到p维向量空间,以使给定输出类的样本彼此接近。然后,它计算每个类的原型(均值向量)。新的测试样本被映射到相同的向量空间,并且距离度量用于在所有可能的类上创建softmax。Ren et al. (2018) 将这种方法扩展到半监督学习。
Ravi and Larochelle (2017) 使用基于LSTM的元学习器来学习用于训练神经网络学习器的更新规则。对于每个新样本,学习器将当前的梯度和损失返回给LSTM元学习器,然后LSTM元学习器更新学习器的模型参数$\{w_k\}$。元学习器在所有先前任务上训练。
另一方面,模型无关的元学习(MAML) (Finn et al., 2017)不尝试学习更新规则,而是学习模型参数初始化$W_{init}$,该模型可以更好地推广到类似任务。从随机$\{w_k\}$开始,迭代选择一批先前的任务,并针对每个任务对学习器进行$K$个样本的训练,以计算梯度和损失(在测试集上)。然后,它会将元梯度反向传播,以沿权重$\{w_k\}$更容易更新的方向进行更新。换句话说,在每次迭代之后,权重$\{w_k\}$成为更好的$W_{init}$,可以开始对任何任务进行微调。Finn and Levine (2017) 表明,在使用足够深的ReLU网络和某些损失的情况下,MAML能够逼近任何学习算法。他们还得出结论,与基于LSTM的元学习方法相比,MAML初始化对于小样本的过拟合更具弹性,并且泛化得更广泛。 Grant et al. (2018) 提出了MAML的新派生和扩展,说明了该算法可以理解为推理贝叶斯模型中先验分布的参数。
REPTILE (Nichol et al., 2018) 是MAML的近似值,它对给定任务执行$K$次迭代的随机梯度下降,然后朝$K$次迭代后获得的权重方向逐渐移动初始化权重。Intuition在于每个任务可能具有一组以上的最佳权重$\{w_i^\ast\}$,目标是找到一个与每个任务至少接近$\{w_i^\ast\}$的$W_{init}$。
最后,我们还可以从黑盒神经网络派生一个元学习器。 Santoro et al. (2016a)提出了记忆增强神经网络(MANNs),它可以训练神经图灵机(NTM) (Graves et al., 2014),这是一种具有增强记忆功能的神经网络,是一种元学习器。然后,该元学习者可以记住有关先前任务的信息,并利用这些信息学习学习器$l_{new}$。 SNAIL (Mishra et al., 2018)是一种通用的元学习器架构,由交错的时间卷积和因果attention层组成。卷积网络为训练样本(图像)学习一个公共特征向量,以汇总过去的经验信息。因果关注层可从收集的经验中学习选择哪些信息,以适应新的任务。
总体而言,深度学习和元学习的交集被证明是开创性新思想的特别沃土,我们希望随着时间的推移,这一领域将变得越来越重要。
Beyond Supervised Learning
Conclusion
元学习机会以许多不同的方式展现出来,并且可以使用多种学习技术加以体现。每当我们尝试学习某个任务时,无论成功与否,我们都会获得有益的经验,可以利用这些经验来学习新任务。我们永远不必完全从头开始。相反,我们应该系统地收集我们的“学习资源”,并从中学习以构建随着时间的推移不断改进的AutoML系统,从而帮助我们更加有效地解决新的学习问题。我们遇到的新任务越多,这些新任务越相似,我们就越可以利用先前的经验,以至于大多数必需的学习已经事先完成。计算机系统能够存储几乎无限量的以前的学习经验(以元数据的形式)的能力为以全新的方式使用该经验提供了广泛的机会,而我们才刚刚开始学习如何从中学习事先有效的经验。然而,这是一个值得实现的目标:学习如何学习任何任务,不仅使我们了解如何学习特定的任务,还使我们拥有了更多的能力。