1.3 近期发展
1990—2001年的元学习研究大多通过更新超参数或者更新模型选择来实现学习器的自我更新。学习器是固定的,超参数的表示力越强,能够表示的问题的复杂程度越高。近期的元学习研究主要是实现相似任务之间的模型泛化,例如,基于相似度量的方法,通过卷积神经网络(CNN)或残差神经网络在高维输入中计算特征向量,并且计算特征向量之间的距离。距离的衡量方法有很多种,距离度量的选择依赖于数据点的概率分布,根据分布是否分块和每块数据点的离散程度等,选择合适的距离度量,距离接近的输入被认为是相似的,在一个任务上得到的结论可以推广到另一个与之相似的任务上。
元学习与迁移学习的概念是类似的,在许多研究中都认为二者是相同的概念,笔者也认为二者是相同的概念。但是也有一些学者认为二者之间存在区别,他们认为主要的区别有:(1)元学习的目标是在相似程度较低的任务之间推广学习器,而迁移学习的目标是在相似程度较高的同类任务之间推广学习器。迁移学习认为在相似程度较低的任务之间迁移模型,会带来负迁移现象,导致迁移后的模型不能在任务上取得较好的精度。(2)元学习算法的目标是在任务之间相似程度降低时算法表现不会恶化,而迁移学习算法在任务之间相似程度降低时会出现负迁移导致算法表现恶化。(3)元学习的目标是让机器学会学习,是General AI的概念。这些区别主要来自研究人员对于二者当下研究内容的比较得到的结论,尽管如此,笔者仍然认为二者是类似的概念,从历史上看,元学习方法和迁移学习方法之间的相互借鉴和融合非常多。近来,元学习方法和迁移学习领域的域迁移(Domain Adaptation)方法之间的结合非常多,在小样本图片分类任务上取得了不错的精度。一个域的分布外任务,可以是另一个域的分布内任务,通过域迁移来更新模型,使得模型更好地适用到新任务上。
元学习研究的目标是在更大差别的任务之间实现模型的迁移,通过将模型拟合和模型推广进行解耦,适应差别更大的任务。同时元学习的研究目标是实现General AI,让机器通过与其他机器以及环境的交互,学会自我更新,适应相似度更低的任务。迁移学习上常用的方法是预训练深度卷积神经网络,例如,在ImageNet上训练深度卷积神经网络来进行图像分类,然后将预训练的网络调整参数应用到新的类别的图片分类问题,得到很高的分类精度,实现模型的迁移。然而,在深度卷积神经网络中,参数的冗余程度很高,而且参数之间存在容易推广的映射规律,因此模型的迁移可以迅速且准确地实现,这个方法也是近来元学习的主要方法流派之一。
近期的元学习研究将早期的元学习理念具体实现了,例如,Jürgen Schmidhuber在论文中提出可以用其他模型更新方法代替文中提到的遗传演化算法,MAML使用了随机梯度下降法而不是演化算法来进行学习器的自我更新。Jürgen Schmidhuber在论文中提到的基础学习器、元学习器、元元学习器等结构在最新提出的元学习方法中也得到了实现,并获得了不错的效果,任务分解等概念也发展成可实现的元学习方法。而且,近代元学习研究的发展主要分为两类,一类是将元学习框架融合到深度学习模型中,改善实际应用的效果;另一类是改进现有的元学习框架,在速度和准确度上获得提升,适应差别更大的新任务,使机器变得更加智能化和自动化。
除此之外,2017年,Chelsea Finn提出的MAML[4]算法,考虑对基础学习器进行随机梯度下降法优化,使用元学习器指导基础学习器的优化,来实现神经网络模型中参数的更新,将一个任务的神经网络模型快速推广到另一个任务,以在新任务上达到很高的精度。MAML算法成为2017年以来元学习领域最受欢迎的方法,成为元学习的“代名词”。近年来,元学习受到的关注主要来自MAML的光环。可以看到,与迁移学习中常用的预训练深度卷积网络方法不同的是,MAML使用元学习器指导基础学习器的优化,使得任务上的基础学习器的训练更快且精度更高,MAML可以学习神经网络模型中哪些参数更需要在任务之间进行更新,MAML可以适用于小样本任务之间的深度神经网络快速准确推广,这就是MAML属于元学习方法而不是迁移学习方法的原因。
1.3.1 1997年的长短期记忆网络LSTM
Sepp Hochreiter和Jürgen Schmidhuber于1997年提出长短期记忆网络LSTM[5],图灵计算机的灵感来自模拟人类大脑,神经网络模型的灵感也来自模拟人类大脑,于是计算机的硬件结构设计和神经网络模型结构设计之间可以相互借鉴。截至目前,LSTM这篇文章有超过24 000次的引用量,可见LSTM的应用非常广泛,影响非常深远。LSTM模型主要用于有序数据的处理,包括时间序列和文本数据,在这类有序数据的特征分析上,LSTM模型具有独到的优势。
LSTM是一种递归神经网络RNN(Recurrent Neural Network),RNN的核心是递归自连接(Recurrent Self-Connection)神经元,自连接神经元可以实现自我更新。通过RNN,时间轴上的信息可以存储在神经网络中。乘法输入门(Multiplicative Input Gate)保护保存的时间轴信息不会受其他输入的干扰,乘法输出门(Multiplicative Output Gate)保护其他单元的正确输出不会受目前记忆细胞中存储的无关信息的干扰。记忆细胞(Memory Cell)是伴随着递归自连接神经元的,记忆细胞的核心就是递归自连接神经元,除了和自连接神经元通信之外,记忆细胞的输入还来自乘法输出门和乘法输入门。
RNN的误差传导方法BPTT(Back-Propagation Through Time)会遇到梯度爆炸或者梯度消失问题,而LSTM要求递归自连接神经元的误差传导不减弱,乘法门可以选择接收或者不接收恒定的误差传导,避免了梯度爆炸或者梯度消失问题。同时,由于自连接神经元的误差传导不会减弱,很久之前的误差梯度仍然可以对当前的神经元状态产生影响,因此,LSTM可应对长程相关性问题。LSTM拥有递归自连接神经元可以完成自我更新,泛化性能极佳,LSTM超参数往往不需要微调即可适用于新问题。
1999年,Felix Gers、Jürgen Schmidhuber和Fred Cummins在“Learning to Forget”[6]论文中提出在LSTM中加入遗忘门(Forget Gate),遗忘门的使用避免了记忆细胞中存储的信息爆炸,让过去模型训练经验的存储变得更有效,有利于相关经验的提取。2018年,Jos Van Der Westhuizen和Joan Lasenby提出JANET结构[7],去掉了LSTM中的乘法输入门和乘法输出门,只保留了遗忘门,JANET的性能与LSTM可比,且在MNIST数据集上精度更高。由此可见,遗忘门的使用对LSTM的性能非常重要,学会遗忘也是General AI的重要环节。
1.3.2 2001年的LSTM元学习系统
LSTM中有两个元素与元学习相关,(1)LSTM中的记忆细胞保存了过去模型更新的经验,经验可以被借鉴,用来更快速地解决新问题,记忆的特性有记忆提取机制和记忆有选择性地遗忘。(2)LSTM中的递归自连接神经元的误差传导不会衰减,很久之前的信息仍然可以与当前的状态进行联系,寻找当前状态与过去的相似性,这可用于对当前状态的解读。Jürgen Schmidhuber的博士论文中认为元学习是General AI,主要实现方式是学习器的自我更新,而RNN的核心是递归自连接神经元,自连接神经元的状态在网络训练过程中不断更新,因此,RNN和General AI联系紧密。
元学习系统有两个组成部分,(1)元学习器,适应任务并且提供相应学习器的机制,是一个监督机制,用于在具有相似性的任务之间获取好的学习器。(2)基础学习器,对于不同的任务,基础学习器不同。元学习器必须关注任务之间的共性,而基础学习器关注的是不同任务的特性。Steven Younger、Sepp Hochreiter和Peter Conwell于2001年在论文“Meta-Learning with Backpropagation”中提出了LSTM元学习系统[8],LSTM网络本身就可以作为元学习系统。在这之前的元学习方法考虑的更多的是生物进化算法,而该论文中考虑的元学习是在RNN中使用最快梯度下降法实现,合理使用最快梯度下降法可以加速神经网络模型的训练。任何RNN都是一个元学习系统,RNN对应的反向传播算法(Backpropagation)可用于元学习,且RNN中的LSTM作为元学习系统的效果极佳。
1.3.3 2017年的MAML算法
2017年,Chelsea Finn、Pieter Abbeel和Sergey Levine在论文“Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks”中提出MAML[4],MAML适用于任何使用梯度下降法训练的模型,元学习需要在很多种类的任务训练中针对不同任务的学习器提供机制,所以对于只有少量样本的新任务,元学习模型也可以提供合适的学习器,解决小样本任务的训练问题。在MAML中,使用新任务中的少量样本对模型参数进行少量梯度更新步骤,训练得到的学习器即可完成新任务。这样的模型更新机制并不少见,然而MAML仅通过小样本新任务中的少量梯度更新步骤,即可在小样本新任务中取得当时最好的精度。
MAML的成功主要依赖于如下几个方面:(1)MAML使用元学习器来指导每个任务上基础学习器的训练,元学习器有大量经验,因地制宜,根据任务特性,给出最专业的指导,完成任务的速度和精度都大幅提升。(2)深度神经网络模型的训练耗时费力,但是要实现快速准确的推广并不容易。在花费很长时间、计算量很大的机器人项目中,机器人学会了一个抓小球的动作,但是推广到新的动作,例如,抓小方块,或者周围环境的构造发生一些变化之后,机器人就没法快速准确地学会了,需要重新训练深度学习模型。正是由于这样的问题,促使MAML的出现,通过在不同环境之间使用随机梯度下降法(Stochastic Gradient Descent,SGD)更新神经网络模型的参数,然后更好地适应新环境中的学习问题,实现快速的模型迁移,完成新的任务。(3)MAML模型适用于所有使用随机梯度下降法学习的任务模型,适用范围很广,尤其是神经网络模型,都可以使用随机梯度下降法进行参数更新。(4)MAML的速度快、精度高,可以有效地将模型推广到新任务,提高模型泛化能力,实现新任务上精度的提升。
MAML用于小样本学习,通过一两次人的示范或者示例视频,机器人即可学会基础的动作;或者观察少量新类别的样本,学会新类别的分类。类似MAML,还有许多适用于随机梯度下降法的元学习方法,例如,Reptile和FOMAML,可以用来在不同任务之间快速推广模型。MAML使用损失函数的二阶导数,计算量较大,而Reptile和FOMAML只使用损失函数的一阶导数,计算量比MAML小,可以更快速地实现模型更新,从而更快地针对新任务给出合适的学习器。MAML的影响非常深远,此后在MAML的基础上延伸出许多元学习算法,吸引了研究者的目光。不同元学习算法之间的对比并不仅限于小样本图片分类问题的精度提升,元学习算法的关注点是方法需要适用于不同应用场景,尤其是要通过提高深度学习模型泛化能力来获得好的解决方案的场景。
1.3.4 2019年基于LSTM的元学习器
Sachin Ravi和Hugo Larochelle在论文“Optimization as a Model for Few-Shot Learning”中提出了基于LSTM的元学习方法Meta-LSTM[9],适用于梯度下降法优化的学习器。这里的LSTM作为元学习器,基础学习器是用于分类的神经网络分类器。与2001年的LSTM元学习系统[8]不同的是,这里将LSTM作为元学习器而不是整个元学习系统。在不同的训练任务上,LSTM为基础学习器提供参数初始值,好的初始值经过新任务上少量的梯度更新步骤即可获得较好的精度。在新任务上,通过Meta-LSTM训练得到的基础学习器达到的精度与深度度量小样本学习的SOTA算法达到的精度类似。
为了快速准确地实现为新任务给出合适学习器的目的,基础学习器的更新过程很迅速,LSTM监测基础学习器的训练,并且在多任务上提炼出这些任务之间的共性。对时间序列的预测问题,基础学习器考虑的是对短期内收集的新数据做出反应,而元学习器LSTM考虑的是对长期的数据进行总结归纳,为基础学习器提供好的初始值。其实笔者对元学习领域的研究开始于时间序列的预测问题,在时间序列预测的问题上,使用深度度量学习得到的结果也不尽如人意。笔者认为,度量学习缺少对任务之间相似性和长程相关性建模的元学习器,而在元学习算法中,例如,在Meta-LSTM中,任务之间的相似性和长程相关性在LSTM元学习器中得到了建模,神经网络是黑箱模型,模型的表示力很强,可以对复杂的相似性进行学习。基础学习器的优点是小巧、快速、高效且不会过拟合,不需要大量有标注输入数据,就能够很快给出预测结果。
通过这种基础学习器和元学习器的组合,任务特性学习和任务之间共性学习这两种功能得到了解耦。对基础学习器调参的唯一目标是对任务特性有更好的表示,而对元学习器调参的唯一目标是对任务之间共性有更好的学习。原本耦合而且相互克制的目标在这样的结构中得到了解耦,解耦后各自在各自的功能上达到最大化,然后再将结果进行沟通交流,从而实现元学习算法的目标。
1.3.5 2019年基于高效基础学习器的元学习
Luca Bertinetto、João Henriques、Philip H.S.Torr和Andrea Vedald在论文“Meta-Learning with Differentiable Closed-Form Solvers”[10]中提出R2D2,正如论文题目所言,基础学习器采用的是可求导且有显式解析解的学习器,基础学习器的复杂度较低,有利于快速针对任务给出合适的基础学习器。而元学习器的复杂度较高,因为元学习器要对任务之间的相似性进行建模,复杂元学习器对于复杂相似性的表示力更强,所以元学习器的复杂度一般会高一些。如果有必要的话,可以采用元元学习器来为元学习器提供参数更新,从而为任务之间相似性建模给出更大程度的灵活性。
和Meta-LSTM类似,R2D2也是由基础学习器和元学习器组合而成的元学习算法,基础学习器负责学习任务的特性,而元学习器负责学习任务的共性,这种学习模型采用元学习器来对任务之间的相似性进行建模。度量学习依赖于度量的选取,而度量的选取与数据的概率分布、离散程度等都有关联。度量用来度量相似性,通过选取合适的度量,可以获得任务相似性较好的描述。通常可以通过CNN提取图像的特征,然后用特征计算度量,这种方法可以根据训练数据调整特征提取的CNN模型中的参数,让CNN特征提取模型作为度量中的可变参数,通过训练保证这种度量反映了任务之间的相似性。因此,度量学习的元学习效果也是通过用CNN特征提取模型来对任务之间复杂相似性进行建模得到的,对任务之间的相似性建模是元学习重要的一环。
基础学习器和元学习器不一定都是通过可导的方式进行优化求解的,但是可导有利于通过误差梯度传导来更新参数,实现快速有效的模型更新。R2D2考虑的基础学习器是有解析解的岭回归(Ridge Regression)和通过迭代更新求解的逻辑回归(Logistic Regression)。其实日常生活中我们遇到的大多数问题都可以用简单的逻辑回归来进行分类和预测。在我们遇到的所有问题中,复杂问题只是少数,所以从应用的角度上来看,在任务上考虑使用岭回归或者逻辑回归作为基础学习器是合理的。而且实际应用显示,R2D2具有很好的适应性,在新任务上的适应性很好,可针对新任务提供快速有效的学习器,R2D2速度很快,适应性也很好,对于大多数任务的处理非常有利。
Kwonjoon Lee、Subhransu Maji、Avinash Ravichandran和Stefano Soatto在论文“Meta-Learning with Differentiable Convex Optimization”[11]中提出MetaOptNet,这也是一个基于基础学习器和元学习器结构的元学习算法,其继承了R2D2的思想,即适当降低基础学习器的复杂度,提高算法的实用性,使用基础学习器快速准确完成新任务,依靠复杂元学习器来对任务之间的相似性进行建模。MetaOptNet使用的基础学习器是凸优化可解的线性学习器,基于核函数的支持向量机模型SVM采用的就是这样的基础学习器。MetaOptNet建议根据训练数据集对基础学习器的复杂程度进行选择,找到最优的基础学习器复杂度。从实现General AI的角度而言,针对任务给出合适的学习器可以考虑参数和超参数的同时更新,虽然在任务相似性已经在元学习器中建模的情况下,基础学习器的超参数已经在元学习器中被考虑。
一般而言,对基础学习器的超参数更新会在元学习器中考虑,因为度量中并未对任务之间的相似性设计元学习器,度量中超参数的更新会带来额外的好处。度量学习会同时训练图片特征提取CNN模型中的参数和根据度量进行分类模型的参数,此时更多的模型自由度可以提高模型的表示力和适应能力。相比之下,MetaOptNet给出的基础学习器参数、超参数、模型复杂程度的自由度,使得基础学习器可以更好地适应任务的特性,还有元学习器的参数、超参数、模型复杂度的自由度,使得元学习器可以更好地学习任务之间的共性,并为基础学习器给出更好的建议和监督。