原文:Timothy M Hospedales, Antreas Antoniou, Paul Micaelli, Amos J Storkey. Meta-Learning in Neural Networks: A Survey[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2021. Early Access.
https://doi.org/10.1109/TPAMI.2021.3079209
文中参考文献请查阅原始论文
摘要:近年来,元学习,或者说学会学习获得了广泛关注。传统人工智能技术利用固定的学习算法从零开始进行学习,不同的是,给定多个学习过程所学知识后,元学习的目的在于改进算法本身。元学习能够更好处理传统深度学习面临的问题,例如数据和计算瓶颈、泛化能力等。本综述描述当前元学习领域的进展。首先,给出元学习的定义,介绍其在迁移学习和超参数优化等相关领域的进展,其次,给出一种新分类方式,更准确地对当前元学习方法进行划分。然后,给出元学习在少样本学习和强化学习等领域的前景和成功之处。最后,讨论元学习的主要困难和未来前景。
关键字:元学习,学会学习,少样本学习,迁移学习,神经网络架构搜索
目前,对于一个特定学习任务,机器学习模型通常使用人工设计的单一学习方法从零开始训练,其中,深度学习方法已经给不少领域[1]-[3]带来了巨大改进,然而,深度学习也具有明显局限性[4],例如,深度学习只有在数据量很大的场景才能体现出优势,并且需要强大的计算能力,当数据本身非常稀有、数据价值非常昂贵[5]或计算能力不足时[6],深度学习难以发挥优势。
元学习是对多个学习过程(一般含相关任务的分布)进行知识蒸馏的一种方法,用于提升未来的学习性能,这种“学会学习”[7]的方法具有数据和计算效率等优势,而且与人类和动物的终身学习十分类似[8]-[10]。
在过去,机器学习依赖于人工设计的特征[11][12]。深度学习实现了对特征表示的学习,与之前的人工特征相比,大大提高了许多任务上的性能[1][3]。神经网络元学习在于给特征、模型和算法的集成带来进一步改进,也就是说,元学习的目标是用训练后的学习算法代替先前人工设计的学习器[7][14]-[16]。
神经网络元学习由来已久[7][17][18],潜力巨大,可能进一步推进深度学习领域的发展,因此关于元学习的研究出现了爆炸式增长,特别是通过数据效率的提高、知识的迁移和无监督学习,元学习方法也许能够解决目前深度学习的诸多问题[4]。元学习在多任务和单任务场景中都具有较好的性能,其中,在多任务场景是指从一系列任务中提取与任务无关的知识[7][19],单任务场景是指不断解决该单一问题获得知识[15][20][21]。元学习比较成功的应用场景包括少样本图像识别[19][22]、无监督学习[16]、数据高效[23][24]、自主[25]强化学习(RL)、超参数优化[20]与神经网络架构搜索(NAS)[21][26][27]。
不少文献从多个角度看待元学习,部分原因在于不同研究者从不同角度使用元学习。Thrun[7]在实践上将学会学习定义为学习器处理学习任务的性能随任务数量的增加而提升的过程。(参见,传统机器学习方法的性能随单一任务数据量的提升而增强)。这种观点[28]-[30]将元学习看作是一种工具,用于处理“没有免费午餐”定理[31],搜索最适合某个或某些给定问题的算法,提高泛化性。然而,这种定义也涵盖了目前不被看作是元学习的迁移学习、特征选择和模型集成学习。另外,元学习还用于[32]基于数据集特征的算法搜索,从而难以与自动机器学习(AutoML)[33]进行区分。
本文关注目前的神经网络元学习。根据[28][29],本文将元学习视为算法学习,尤其关注含明确定义的目标函数(例如交叉熵损失函数)的端到端学习。另外,本文也介绍单任务元学习,讨论鲁棒性和计算效率等元学习评价指标。
本综述对当前快速发展的神经网络元学习领域进行全面及时的报道。之前的综述要么有些过时,要么只关注了数据挖掘[28][32][34][35]、自动机器学习[33]或类似少样本学习[36]或神经网络架构搜索[37]等元学习特定应用场景的算法搜索。
本文关注元学习方法和应用,首先通过较高层次问题形式化引出元学习,理解并定位本领域的一些工作,其次给出了一种元表示、元目标和元优化器的新分类方式,这种分类方式为设计和定制不同应用场景下的新元学习方法提供了一种设计空间。本文报道了与迁移和多任务学习等方向相关的少样本学习、强化学习与架构搜索等多个流行和新兴的应用场景,并通过对主要问题和未来研究的讨论,在最后进行了一定总结。
目前,元学习以不同方式广泛应用于神经网络,难以进行定义。本节首先介绍本文的定义方式和关键术语,然后将元学习定位于相关研究方向上。
传统机器学习利用大量数据实例改进模型预测能力,而元学习通常被看作是学会学习,是一个通过多次学习提高学习算法性能的过程。在基学习过程中,数据集和目标定义的内层(或被称为低层/基)学习算法处理图像分类[13]等任务,而在元学习过程中,外层(或被称为上层/元)学习算法更新内层学习算法,从而使学习到的模型实现外部学习目标,这种学习目标可以是内层算法的泛化性能或学习速度的提高。
如上所述,像基于交叉验证的超参数随机搜索等传统算法可能也属于元学习范畴。目前,神经网络元学习的显著特点是含有明确定义的元目标函数和在此基础上的内层算法端到端优化。元学习通常用于学习从任务集合中采样出的子任务,然后改进在该任务集合中其他子任务上的表现。然而,在有限的情形下,所有训练阶段也可以来自同一个任务。接下来,本文将正式介绍这些部分。
传统机器学习 在传统有监督机器学习中,通常会提供一个训练数据集 D = { ( x 1 , y 1 ) , … , ( x N , y N ) } D = \lbrace(x_1,y_1),…,(x_N,y_N)\rbrace D={(x1,y1),…,(xN,yN)},例如 ( 输 入 图 像 , 输 出 标 签 ) (输入图像,输出标签) (输入图像,输出标签)构成的数据对。可以通过下式: ( 1 ) θ ∗ = arg min θ L ( D ; θ , ω ) (1)\theta^*=\argmin_{\theta}L(D;\theta,\omega) (1)θ∗=θargminL(D;θ,ω)训练以 θ θ θ为参数的预测模型 z ^ = f θ ( x ) ẑ = f_θ(x) z^=fθ(x),其中, L L L是损失函数,度量真实标签和 f θ ( • ) f_θ(•) fθ(•)预测的标签之间的距离, ω ω ω指定 θ θ θ的优化器或函数 f f f的类型等“如何去学习”的方式。在测试数据与真实标签上评估 L L L,可以度量模型泛化性能。
传统观念认为以上优化过程需要对每个任务 D D D从头开始进行,并事先指定 ω ω ω。然而,ω的选择会极大影响准确性和数据效率等指标。元学习通过学习学习算法本身改进这些指标,而不是假设这些参数已经事先指定。元学习首先改变了上述传统观念,将从头开始学习改变为从一组任务中学习。需要注意的是,虽然为了简单起见,接下来的元学习形式化表达采用了有监督观点,但所有想法都直接来自于第5.2节讨论的强化学习。
从任务分布看元学习 一种元学习的普遍看法是,学习一种可用于不同任务的通用学习算法,并理想化地保证每一个新学习的任务性能比上一个任务更好。可以在一个任务分布 p ( T ) p(T) p(T)上评估 ω ω ω的好坏,每一个任务 T = { D , L } T=\lbrace D,L\rbrace T={D,L}包含一个数据集 D D D和一个损失函数 L L L。从上层来看,“学会学习”的过程可写成: ( 2 ) min ω E T ∼ p ( T ) L ( D ; ω ) (2)\min_\omega\mathop{\mathbb{E}}\limits_{T\sim p(T)}L(D;\omega) (2)ωminT∼p(T)EL(D;ω)其中 L L L是任务的特定损失。在大多数机器学习设定中,可将 D D D划分成 D = { D 训 练 , D 验 证 } D = \lbrace D^{训练},D^{验证}\rbrace D={D训练,D验证},则可将任务的特定损失定义为 L ( D ; ω ) = L ( D 验 证 ; θ ∗ ( D 训 练 , ω ) , ω ) L(D;ω) =L(D^{验证};θ^*(D^{训练},ω), ω) L(D;ω)=L(D验证;θ∗(D训练,ω),ω),其中,在数据集 D D D上利用“学会学习”的元知识训练得到模型参数 θ ∗ θ^* θ∗。
具体来讲,为了更好地描述元学习,通常假设 M M M个源任务的集合是从 p ( T ) p(T) p(T)中采样而来。在形式上,用于元训练阶段的 M M M个源任务的数据集可表示为 D 源 = { ( D 源 训 练 , D 源 验 证 ) ( i ) } i = 1 M D_源 = \lbrace(D^{训练}_源, D^{验证}_源)^{(i)}\rbrace^M_{i=1} D源={(D源训练,D源验证)(i)}i=1M,其中每个任务都包含训练数据集和验证数据集,通常将训练数据集和验证数据集分别称为支持集和查询集。“学会学习”的元训练步骤可写为: ( 3 ) ω ∗ = arg min ω ∑ i = 1 M L ( D 源 ( i ) ; ω ) (3)\omega^*=\argmin_\omega\sum^M_{i=1}L(D^{(i)}_源;\omega) (3)ω∗=ωargmini=1∑ML(D源(i);ω)现在将元测试阶段的 Q Q Q个目标任务的数据集集合写成 D 目 标 = { ( D 目 标 训 练 , D 目 标 测 试 ) ( i ) } i = 1 M D_{目标}=\lbrace(D^{训练}_{目标},D^{测试}_{目标})^{(i)}\rbrace ^M _{i=1} D目标={(D目标训练,D目标测试)(i)}i=1M,其中每个任务都包含训练数据集和测试数据集。在元测试阶段,使用学习到的元知识 ω ∗ ω^* ω∗在之前每一个未见过的目标任务 i i i上训练基模型: ( 4 ) θ ∗ ( i ) = arg min θ L ( D 目 标 训 练 ( i ) ; θ , ω ∗ ) (4)\theta^{*(i)}=\argmin_\theta L(D^{训练(i)}_{目标};\theta,\omega^*) (4)θ∗(i)=θargminL(D目标训练(i);θ,ω∗)与传统学习方式式(1)不同的是,在第 i i i个目标任务训练数据集的学习过程现在受益于元知识 ω ∗ ω^* ω∗, ω ∗ ω^* ω∗可以是初始参数[19]、整个学习模型[38]或优化策略[14]的估计。可以基于在每个目标任务的测试数据集 D 目 标 测 试 ( i ) D^{测试(i)}_{目标} D目标测试(i)上 θ ∗ ( i ) θ^{*(i)} θ∗(i)的表现,评估元学习器的准确性。
这种学习方式需要进行传统的欠拟合和过拟合(即元欠拟合和元过拟合)分析。元过拟合是指从源任务学习到的元知识无法较好地泛化到目标任务上,是一种常见现象,尤其发生在源任务数量较少时,可以将这种现象看成因约束 θ θ θ的假设空间而归纳出的偏置 ω ω ω(译者著:由于神经网络的参数包括偏置,所以参数 ω \omega ω也可以表示偏置)过于紧致地分布在从源任务中学习到的知识周围。
从双层优化看元学习 之前的讨论指出了元学习在多任务场景下的一般流程,但并没有指出如何优化式(3)的元训练步骤。这个优化过程通常将元训练步骤看成双层优化问题,对基于优化的方法(见第3.1节)最为准确,接下来对这种用于元学习的优化机制进行总体剖析。双层优化[39]用于解决层次性优化问题,其中,一个优化过程含有另一个作为约束的优化过程[20][40],因此元训练可以形式化表达为: ( 5 ) ω ∗ = arg min ω ∑ i = 1 M L 元 ( D 源 验 证 ( i ) ; θ ∗ ( i ) ( ω ) , ω ) (5)\omega^*=\argmin_\omega\sum^M_{i=1}L^元(D^{验证(i)}_源;\theta^{*(i)}(\omega),\omega) (5)ω∗=ωargmini=1∑ML元(D源验证(i);θ∗(i)(ω),ω) ( 6 ) s.t. θ ∗ ( i ) ( ω ) = arg min θ L 任 务 ( D 源 训 练 ( i ) ; θ , ω ) (6)\text{s.t.}\quad \theta^{*(i)}(\omega)=\argmin_\theta L^{任务}(D^{训练(i)}_源;\theta,\omega) (6)s.t.θ∗(i)(ω)=θargminL任务(D源训练(i);θ,ω)其中, L 元 L^元 L元和 L 任 务 L^{任务} L任务分别指外层和内层目标函数,例如用于分类的交叉熵函数,简单起见,不对 ω ω ω显式依赖。注意外层和内层之间的前后不对称性,内层优化过程式(6)以外层定义的学习策略 ω ω ω为条件,但在此过程中无法改变 ω ω ω。
这里, ω ω ω可以看成非凸优化问题[19]或诸如正则化权重等超参数[20]的初始条件。第4.1节详细讨论了 ω ω ω的取值空间。外层优化过程训练 ω ω ω得到在验证数据集上表现较好的模型 θ ∗ ( i ) ( ω ) θ^{*(i)}(ω) θ∗(i)(ω)。第4.2节讨论了如何优化 ω ω ω。要严格区分函数 L 元 L^元 L元和 L 任 务 L^{任务} L任务,两者完全不同。例如, ω ω ω可以决定内层任务损失 L ω 任 务 L^{任务}_ω Lω任务(见第4.1节,[24],[41]),并且第4.3节提到, L 元 L^元 L元可以度量验证准确率、学习速度或鲁棒性等指标。
最后,上述元学习形式化表达从任务分布角度出发,虽然常见于各元学习文献,但不是元学习的必要组成部分,若给定一个训练和一个测试数据集( M = Q = 1 M=Q=1 M=Q=1),则可从训练集中划分出验证数据集,使元训练的 D 源 = { D 源 训 练 , D 源 验 证 } D_源=\lbrace D^{训练}_源,D^{验证}_源\rbrace D源={D源训练,D源验证},使元测试的 D 目 标 = { D 目 标 训 练 ⋃ D 目 标 验 证 , D 目 标 测 试 } D_{目标}=\lbrace D^{训练}_{目标}\bigcup D^{验证}_{目标},D^{测试}_{目标}\rbrace D目标={D目标训练⋃D目标验证,D目标测试}。另外, ω ω ω仍需多轮次训练,并且在元训练期间通常使用不同的训练集—验证集划分。
从前馈模型看元学习 许多元学习方法以前馈方式组成模型,而非式(5)-(6)描述的迭代优化。虽然因复杂度不同存在多种前馈方式,但实例化式(2)的抽象目标函数后,可以定义一个简单的元线性回归训练模型[42]。 ( 7 ) min ω E ( D 训 练 , D 验 证 ) ∈ T T ∼ p ( T ) ∑ ( x , y ) ∈ D 验 证 ( x T g ω ( D 训 练 ) − y ) 2 (7)\min_\omega\mathop{\mathbb{E}}\limits_{\overset{T\sim p(T)}{(D^{训练},D^{验证})\in T}}\sum_{(x,y)\in D^{验证}}(x^Tg_\omega(D^{训练})-y)^2 (7)ωmin(D训练,D验证)∈TT∼p(T)E(x,y)∈D验证∑(xTgω(D训练)−y)2
上式在一组任务上进行优化执行元训练。对于每个任务,均存在训练和验证数据集,训练数据集 D 训 练 D^{训练} D训练输入到一个向量 g ω g_ω gω中,该向量定义了线性回归模型权重,用于预测验证集数据 x x x的标签。训练函数 g ω g_ω gω后,将训练数据集映射成一个权重向量,完成式(7)的优化,使 g ω g_ω gω能够泛化来自 p ( T ) p(T) p(T)的元测试任务。此种类型方法因预测模型 g g g的复杂性和支持集映射方式(如池化,CNN或RNN)的不同而不同。由于学习一项新任务的代价通过 g ω ( • ) g_ω(•) gω(•)减少成了一次前馈操作,而且 ω ω ω的元训练阶段已经进行迭代式优化,因此这些方法也称为平摊[44]。
元学习和学会学习于1987年[17]首次提出。Schmidhuber使用自我参照学习,提出了一组学会学习相关方法。自我参照学习训练将自身权重作为输入并更新权重的神经网络。Schmidhuber提出可使用进化算法学习模型。
元学习后来应用于多个领域。Bengio等人[45][46]提出可通过元学习方法学习符合生物学法则的学习规则。Schmidhuber等人进一步研究了自我参照学习与元学习[47][48]。S.Thrun等人在[7]中进一步给出了学会学习的明确定义,并提出了初步理论和实现方法。1991年,首次提出使用梯度下降方法和反向传播算法训练元学习网络[49],后于2001年不断完善[50][51],并于同年提出了相关综述[28]。元学习于1995年开始应用于强化学习[52],随后出现了多种扩展版本[53][54]。
本节介绍元学习的多种应用领域,其中,元学习与其相关应用领域间的关系通常不够明确。
迁移学习(Transfer Learning,TL) 迁移学习[34][55]是指利用从源任务学习到的知识提高目标任务上的学习指标(学习速度、数据效率、预测准确率)。迁移学习最主要的是参数迁移和可选的微调[56](虽然也存在很多其他方法[34])。
元学习是指一种可以用于迁移学习与其他问题的范式。在迁移学习中,利用普通的学习方式学习先验知识,不使用元目标函数,而在元学习中,通过外层优化学习到相关先验知识,并在学习新任务时由外层优化评估先验知识,如MAML[19]所示。总体而言,元学习用于处理比单一模型的参数范围更广的元表示(见第4.1节)。
领域自适应(Domain Adaptation,DA)与领域泛化(Domain Generalization,DG) 领域偏移是指源任务和目标任务具有相同目标,但目标任务的输入分布从源任务上发生了偏移[34][57],从而降低了模型性能。领域自适应是一种迁移学习方法,利用来自目标任务的稀疏或无标签数据调整训练好的源模型。领域泛化是指无需进一步调整,训练出一个对这种领域偏移具有鲁棒性的源模型。近年来出现了许多知识迁移方法提高模型在目标任务上的性能。然而,对于迁移学习,原始的领域自适应和领域泛化没有利用元目标优化不同任务域上的“学会学习”性能,而元学习方法可以用于领域自适应[58]和领域泛化[41](见第5.8节)。
持续学习(Continual Learning,CL) 持续学习或终生学习[59][60]是指对来自于潜在非平稳分布的一系列任务进行学习的能力,尤其是在学习的同时要能够提高新任务学习速度,不对旧任务产生遗忘。持续学习与元学习都考虑了任务分布,并且都以提高学习速度为部分目标。然而,由于该元目标没有明确范式,因此大多数持续学习方法并不是元学习方法。尽管如此,元学习为持续学习的发展提供了潜在框架,最近的几项研究已经开始设计元目标,用于编码持续学习的学习目标[61]-[63]。
多任务学习(Multi-Task Learning,MTL) 的目标是联合学习多个相关任务,受参数共享带来的正则化、由此产生的共享表示的多样性[64][65]以及节省的算力和存储空间改进性能。与迁移学习、领域自适应和持续学习相同的是,传统多任务学习利用无元目标的单层优化,另外,多任务学习旨在解决固定数量的已知任务,而元学习则往往用于解决从未见过的任务。尽管如此,元学习可以通过学习任务之间相似程度[66]或确定多任务优先级等方式[67]应用于多任务学习中。
超参数优化(Hyperparameter Optimization,HO) 属于元学习范畴,因为学习率或正则化权重等超参数描述了“如何学习”。本节包含定义元目标的超参数优化任务,利用端到端训练的神经网络训练元目标,例如梯度下降超参数学习[66][68]和神经网络架构搜索[21],但不包括随机搜索[69]和贝叶斯超参数优化[70]等其他很少看作是元学习的方法。
层次贝叶斯模型(Hierarchical Bayesian Models,HBM) 是参数 θ θ θ在先验知识 p ( θ ∣ ω ) p(θ|ω) p(θ∣ω)下的贝叶斯学习,其中,变量 ω ω ω存在自身的先验概率 p ( ω ) p(ω) p(ω),先验知识 p ( θ ∣ ω ) p(θ|ω) p(θ∣ω)是另一个变量 ω ω ω上的条件概率密度。层次贝叶斯模型常用于数据集合 D = { D i ∣ i = 1 , 2 , … , M } D=\lbrace D_i|i=1,2,…,M\rbrace D={Di∣i=1,2,…,M},其中,每个子集合含自己的 θ i θ_i θi。完整模型是 p ( ω ) ∏ i = 1 M p ( D i ∣ θ i ) p ( θ i ∣ ω ) p(ω)\prod^M_{i=1}p(D_i|θ_i)p(θ_i|ω) p(ω)∏i=1Mp(Di∣θi)p(θi∣ω)。可以进一步提高层次化程度,尤其是 ω ω ω可参数化,使 p ( ω ) p(ω) p(ω)可学习。学习一般是全流水线过程,但使用一些形式的贝叶斯边缘化计算 ω ω ω的后验概率: P ( ω ∣ D ) ∼ p ( ω ) ∏ i = 1 M ∫ d θ i p ( D i ∣ θ i ) p ( θ i ∣ ω ) P(ω|D)\sim p(ω) \prod^M_{i=1}∫dθ_ip(D_i|θ_i)p(θ_i|ω) P(ω∣D)∼p(ω)∏i=1M∫dθip(Di∣θi)p(θi∣ω)。边缘化计算的难易程度取决于模型:在一些情况下(例如隐狄利克雷分布,Latent Dirichlet Allocation,LDA[71]),选择共轭指数模型,可进行精确的边缘化计算,在其他情况下(见示例[72]),利用随机变分方法计算近似后验概率,得到边际似然的下界。
层次贝叶斯模型提供了一种理解元学习过程的建模方法而非算法框架,为元学习提供了一种有价值的观点。实际上,层次贝叶斯模型的先前工作通常集中在学习简单易处理的模型 θ θ θ,而大多数元学习模型工作考虑复杂的内环学习过程,涉及多次迭代。尽管如此,MAML[19]等一些模型也可以从层次贝叶斯模型的角度进行理解[73]。
自动机器学习(AutoML) 自动机器学习[32][33]是一个含很多方法的领域,旨在自动执行通常需人工执行的数据准备、算法选择、超参数调节和架构搜索等机器学习步骤。自动机器学习通常使用数种不属于本文元学习定义范畴的启发式方法,集中应用于数据清洗等元学习以外的任务。然而,自动机器学习有时也使用元目标的端到端优化,因此元学习也可以视作自动机器学习的特例。
旧分类方法[74][75]将元学习分为三类:基于优化的方法、基于模型(或黑箱)的方法、基于度量(或非参数)的方法。
基于优化的方法 基于优化的方法实际上将内层任务看成优化问题进行学习,主要用于提取元知识ω,改进优化性能,其中,MAML算法是一个不错的例子[19]。MAML算法的目标是学习到好的初始值 ω = θ 0 ω = θ_0 ω=θ0,从而在接下来仅需几次内层训练即可为验证数据集训练出不错的分类器,训练过程也使用梯度下降,在更新基模型参数时计算导数。更复杂的算法也对步长等超参数进行学习[76][77]或训练循环神经网络从梯度中预测步长[14][15][78]。基于梯度的元优化在长内层优化中易导致一些计算和存储问题,第6节对此进行讨论。文献[79]对梯度元学习提出了一种统一观点,将许多现存方法看作是广义的内层元学习框架的特例。
基于模型/黑箱的方法 在基于模型(或黑箱)的方法中,内层学习步骤(式4,式6)被封装在单模型的前馈过程中,如式7所示。模型将当前数据集 D D D输入网络,进行激活,并用学习到的模型参数对测试数据进行预测,经典网络架构包括循环神经网络[14][50]、卷积神经网络[38]和超神经网络[80][81]等利用给定任务的训练数据和标签为测试数据训练学习器的网络。在此种方法中,所有内层学习过程都包含在模型的激活状态中,是完全前馈的过程。外层学习依 ω ω ω进行, ω ω ω可以是卷积神经网络、循环神经网络或超神经网络的参数,外层和内层优化构成 ω ω ω, D D D直接指定 θ θ θ。记忆增强神经网络[82]提出一种显式存储单元,可被视为一种基于模型的方法[83][84]。与基于优化的模型相比,基于模型的方法无需计算二阶梯度,优化过程简单,不过基于模型的方法难以泛化到任务分布之外的任务上[85],另外,基于模型的方法将大数据集嵌入到多个基模型中,虽然在少样本学习上表现较好,但性能递减。
基于度量学习的方法 度量学习或非参数化算法目前主要用于少样本领域的元学习(第5.1.1节),该种方法将非参数化学习用于内层(即每个任务),简单地将验证数据与训练数据进行比较,预测为匹配的训练数据标签。按时间顺序,基于度量学习的方法包括孪生网络[86]、匹配网络[87]、原型网络[22]、关系网络[88]和图[89]神经网络等。这里的外层学习即度量学习,即找到一个可提取数据正确特征的特征提取器 ω ω ω,用于数据比较。与之前相似, ω ω ω在源任务上进行学习,用于目标任务。
讨论 上文回顾的常见分类没有给出所有感兴趣的方面,也难以理解当前各元学习框架之间的联系。为解决此问题,本文在以下章节提出新分类方法。
本节通过三个维度,提出一种新分类方法。
元表示(“是什么”) 第一个维度是元知识 ω ω ω的选择,可以是初始模型参数[19]或程序归纳可读编码[90]等。
元优化器(“怎么做”) 第二个维度是选择外层元学习过程(见式5)的优化器。 ω ω ω的外层优化器具有梯度下降[19]、强化学习[90]和进化搜索[24]等多种形式。
元目标(“为什么”) 第三个维度是选择元目标函数 L 元 L^元 L元(式5)、任务分布 p ( T ) p(T) p(T)和内外层之间数据流决定的学习目标,共同将元学习应用到少样本学习[19][38]、快速多目标优化[90][91]、领域偏移鲁棒性[41][92]、标签噪声[93]和对抗攻击[94]等不同领域。
以上三个维度共同为元学习方法提供了一种设计空间,有助于为元学习设计新算法,应用特定场景。注意,由于是所选的特定应用定义并优化 θ θ θ,因此基模型的表示 θ θ θ没有含在该分类方法中。
本节根据提出的新分类方法介绍当前元学习进展。
元学习方法决定元知识 ω ω ω应有的形式,即决定应该学习学习策略的哪一方面,或改进哪一方面。
参数初始化 这里, ω ω ω表示内层优化过程的神经网络的初始参数,MAML是最有名的例子[19][95][96]。在合适初始参数下,只需很少的几次梯度更新,就可到达任务 T T T目标函数的最小值点,同时避免少样本学习中的过拟合现象。此种方法的弊端在于外层需要优化与内层优化过程一样多的参数(在大型卷积神经网络中可能是上亿的参数),因此出现了一系列基于子空间[75][97]、层[80][97][98]等方法的工作,也可去除缩放和平移,将部分需要元学习的参数隔离开。另一个问题是单一初始条件是否可以快速学习大量潜在任务,或是否只满足于窄分布 p ( T ) p(T) p(T),因此出现了多种考虑多初始条件[97][100][101]的模型。
优化器 上述用于参数的方法通常要用到带动量的随机梯度下降或Adam[102]等常见优化器,改善新任务下的初始化性能,而用于优化器的方法[14][15][78][91]将 θ θ θ和 ∇ θ L 任 务 \nabla_θL^{任务} ∇θL任务等优化器状态作为输入,训练一个目标函数,为每个基学习过程计算优化步骤,可训练参数 ω ω ω可以是步长等简单超参数,也可以是更复杂的矩阵[103][104],最后,通过对输入梯度和其他元数据[14][15][90][91]进行复杂的非线性变换,可以用 ω ω ω定义一个完全基于梯度的优化器。如果优化器以坐标方式应用在权重之间,则可学习的参数会变少[15]。可以对用于参数和优化器的方法进行联合学习,即将前者学习到的初始参数用于后者[14][76]。优化器学习方法已经不仅用于少样本学习[14],而且可以加速多样本学习速度,改进性能[15][90][91]。最后,也可以元学习不需要梯度等优化器状态的零阶优化器[105]。这些方法[105]与传统贝叶斯优化方法[70]都具有良好性能。
前馈模型 (即黑箱、均摊) 另一类模型训练参数 ω ω ω, ω ω ω直接提供了从支持集到测试数据分类所需参数的前馈映射,即 θ = g ω ( D 训 练 ) θ=g_ω(D^{训练}) θ=gω(D训练),而不依赖于基于梯度的 θ θ θ的迭代优化。这些模型对应于传统分类方式中基于模型的黑箱学习(见第3.1节),包括原始方法[106]到CNAP[107]等最新方法,CNAP等最新方法极大改进了跨领域少样本基准[108]的性能。