元学习学习笔记——元学习分类
1 基于权重的元学习方法
对于迁移学习,人们常以ImageNet预训练等方式实现对网络权重的初始化。但通过这些方式预训练得到的权重无法快速适应新任务,如果用小样本的新任务数据集继续训练网络就容易发生过拟合的问题。
而基于权重的元学习方法最大的一个成果就是让网络自身学会初始化有效的权重,可以克服迁移学习难以应付小样本的问题,不再需要手动配置模型的初始化权重参数,通过学习历史任务的经验,估计得到各新任务对应的初始化参数组,以保证模型能快速适应新任务,借助少量的新任务样本进行训练即能获得最佳性能。
其中最为经典的是Finn等[15]提出的模型——不可知元学习(model-agnostic meta-learning, MAML)算法。【见之前笔记】
MAML的关键是要使新任务的损失函数对初始化权重的敏感度最大化,且与模型的类型无关,在各任务梯度矢量和的方向上对参数进行优化,估计得到新任务的最优参数解,以实现沿梯度方向可快速获得最优性能。
Finn等在 MAML 的基础上继续融合在线学习的框架提出一种在线元学习(online meta-learning),正如模拟实际环境中进行现场教学,并达到现学现用的效果,有效提高算法顺序设置和处理非平稳条件的能力。该类方法适用于回归、分类以及强化学习等多种任务,但存在二次梯度不稳定等问题。
2 基于优化器的元学习方法
这类方法不用人为配置 Adam[17]等优化器,将新任务上的优化器设计工作交由元学习器完成。即元学习器根据以往任务的学习经验捕获单个梯度坐标的训练动态或为新任务量身定做一个高效的优化器,以让模型在拥有更为合适的优化器的情况下实现快速学习新任务。Andrychowicz等[18]采用长短期记忆(long short-term memory,LSTM)网络替换传统优化器,是为了能以梯度下降的方式为新任务优化出合适的优化器。由于损失函数的黑塞矩阵(Hessian matrix)处于病态,一阶梯度算法的性能会大打折扣。Park等[19]提出在元学习过程中额外学习一个局部的曲率信息矩阵,以实现梯度在空间上的转换,让转换后的梯度对新任务具有更好的泛化性能。传统优化器只保证当前一步的损失小于上一步损失,仅侧重于当前周期的效益,严重缺乏全局性。而元学习优化器可以统筹未来多步对当前这步的影响,实现“瞻前顾后”的效果,找出对未来结果影响最佳的当前策略。但是,当面临大型网络或复杂优化问题时,元学习优化器的优化成本要求很大,且其性能稳定性可能较差。
3 基于损失函数的元学习方法
与基于优化器的元学习方法类似,以通过历史任务来学习如何预测损失函数的方式建模。Houthooft 等[20]提出一种进化策略梯度(evolved policy gradient,EPG)的元学习方法,设计一个可微的损失函数,通过优化其策略以最大程度地减少这种损失,获得较高的回报。基于强化学习中奖励函数的设计思想,泛化至损失函数,即通过学到的策略网络编码为学到的损失函数。Li等[21]提出引入一个学习的辅助损失函数,通过元学习正则化器来帮助训练特征抽取器成为域不变量,提高了对领域的泛化性。基于损失函数的元学习方法与强化学习的标准损失相比,在性能上有所提高,但其泛化性仍存在较大的局限。
4 基于度量的元学习方法
其关键是要学习到一个嵌入网络,使原始输入可以转换为合适的表示,并实现样本实例与待测实例之间相似度比较。Sung等[22]提出建模一个关系网络(relation network),该网络包含嵌入单元(embedding module)和关系单元(relation module)。嵌入单元负责对待测图片和样本图片进行特征提取,关系单元负责将提取出来的各特征进行相似度比对,直接判断待测图片归属哪类。该方法直接采用神经网络学习度量,而且在这过程中以元学习的方式进行训练。此外,还有利用孪生神经网络(siamese network)[23]、匹配网络(matching network)[24]、原型网络(prototypical network)[25]、图神经网络(graph neural network)[26]实现。这类算法目的是更合适地表示数据,以学习得更好。这类方法适用于小样本学习,建模一个度量空间,让待测的目标图像与已有的图像在该度量空间中实现高效比对。但对于回归和强化学习等任务,这些算法尚未证实能实现同样的效果。
5 基于注意力机制的元学习方法
训练出一个模型使其能在面对新任务时把“注意力”都放在关键点上,即直接关注最为核心的部分。Ren 等[27]设计了一个基于元学习的注意力吸引网络(attention attractor network,AAN),先是经过监督学习以训练一个起初原有类别的分类器,若出现新增类别,于训练和测试节点中联合元学习正则器以训练得到新类别分类器,再结合起初原有类别与新增类别并用于优化刚才提到的元学习正则器,让它在新旧类别结合后仍然保持作用。Hou等[28]提出一个交叉注意力网络(cross attention network),给所有输入的图像对分别生成注意力图,以突出目标物体所在的区域,使模型可以把“注意力”都集中在这部分区域,提取出更好的特征,以快速适应未知类别的问题。基于注意力机制的元学习方法有着较好的泛化性能和可解释性能。但是,它难以捕抓元素顺序,当执行自然语言处理等任务时其性能可能会大打折扣。
6 基于超参数的元学习方法
以元学习的方式不断地优化调整学习率、正则化强度等超参数直至适合新任务。另外,步长、方向等超参数也可以被定义为优化器的一部分,则基于超参数的元学习方法与基于优化器的元学习方法之间存在重叠部分。Franceschi等[29]提出一个超参数优化与元学习的双层规划框架,将二层问题转化到基于内目标的优化动力学(optimization dynamics)以迭代的方式进行近似求解。这些方法可以高效找出最优超参数组合,保证神经网络的优化设置。
7 基于网络结构的元学习方法
学会自动生成对应不同新任务的深度神经网络。从 1994 年提出的 5 层手写字体识别模型LeNet5[30],发展到1 001层的ResNet[12],网络的层数变得越来越深,但是也被验证得出结论:神经网络性能不是越深就越好。所以在对深度神经网络的架构进行设计时往往会存在较大困扰,既希望能最大程度地发挥深度神经网络的潜能,又担心模型会由于太复杂而造成巨大的计算资源浪费和产生梯度消失、梯度爆炸的问题。Zoph等[31]提出一种利用强化学习机制去训练一个循环神经网络(recurrent neural network,RNN),让其学会自动生成神经网络的元学习方法。先是利用循环神经网络在搜索空间上推算估计得到一个网络架构,再对这估计生成的网络架构进行训练和验证,以验证的准确率作为奖励反馈到循环神经网络中,循环神经网络根据奖励继续优化生成另外一个网络架构进行训练和验证,重复这样的过程直至循环神经网络获得最佳性能,学会如何生成好的网络架构。Real等[32]提出一种正则化进化方法,为候选结构引入年代的新思路,不再是移除性能最差的神经网络,而是移除最老的神经网络,保证任务优化过程中的稳健性,获取更加精确的网络。这些方法实现神经架构搜索(neural architecture search,NAS)自动化,但在这些过程中的执行成本很高。
8 基于黑盒模型的元学习方法
基于黑盒模型的元学习方法分为基于内部记忆单元与基于外部存储两类。Hochreiter等[33]提出了一种基于内部记忆单元的元学习方法,采用LSTM 作为从属系统,负责与学习器直接交互,还采用基于时间的反向传播(back propagation through time,BPTT)算法作为监督系统,负责评价从属系统提供算法参数的好坏。其中,输入的信息对是采用错位的方式的,目的是使从属系统可以获取上一步算法的错误率,有助于进行校正。但是,基于内部记忆单元的方法难以拓展到需要编码众多新信息的新任务中。为此,部分科研人员提出采用外部的存储。Santoto等[34]提出一种记忆增强神经网络(memory-augmented neural network)的元学习方法,直接添加外部存储来记忆上一次的数据输入不包含标签信息,以至于下一次输入完成后在反向传播的过程中,能够建立输入数据与标签的联系,让后续的输入数据都能通过外部存储获取相关历史数据进行比对。相当于外部存储记忆了很多历史经验,模型凭借这些以往的经验可以实现快速学习更多新任务。Rakelly等[35]提出一种基于概率上下文变量的非策略元强化学习方法,将任务推理和控制分离开来,对潜在任务变量进行在线概率过滤,实现从少量的经验中学会如何解决新任务。基于黑盒模型的元学习方法难以适用于分布外的任务,且无法确定黑箱模型是否可以把一个大的训练集嵌入一个基础模型中。