神经网络中的元学习研究

神经网络中的元学习研究

Meta learning(Learning to learn)在近几年的研究中受到了越来越多的关注。Meta learning的目标旨在改善学习算法本身,让模型更精通学习。基于深度学习的方法在各个领域都取得了巨大的成功,同时局限性也非常的明显。例如,需要收集大量的数据以及使用庞大的计算资源,但在数据本身就很少的以及没有庞大计算资源支持的(比如我)领域就显得捉襟见肘了。而Meta learning提供了一种替代范式,其中机器学习的模型会学习多个情节的经验并利用这种经验来改善模型在未来的表现。这种从学习过程中学习的方式可以带来诸如数据利用率以及计算效率的好处。

长久以来机器学习通过基于手工设计的特征来构建模型,而特征选择通常是最终模型性能的决定性因素。深度学习实现了联合特征与模型学习的希望,显著提高了许多任务的性能。而神经网络中的meta learning则被看作是联合特征、模型与算法学习的下一步。神经网络中的meta learning在90年代就已经提出,但由于深度学习的蓬勃发展,meta learning因其有潜力推动当代深度学习产业的发展而被广泛关注。尤其是meta learning有可能减轻深度学习的许多主要缺点,例如通过提供更好的数据效率,利用先验知识转移以及实现无监督和自我指导的学习。无监督学习也有可能成为解决样本获取困难领域的一种方法,但能否解决样本利用率以及计算资源的需求等问题还未可知,这里不对其进行论述。接下来将从Meta learning的定义、分类、应用以及挑战四个方面来对当前meta learning环境进行介绍。

1.定义

1.1 背景

关于meta learning不同的文献中有不同的观点,其中一种观点是将meta learning看作是解决No Free Lunch定理的工具,通过搜索最适合解决给定问题的算法来提高通用性或解决同类问题。从广义上讲,这个观点可以包括迁移学习、多任务问题、特征选择以及模型集成学习,而今通常不再被视作meta learning。另一种观点是将meta learning视为涵盖了基于数据集特征的算法选择与配置技术,并且变得与AutoML难以区分。在神经网络中的meta learning中,meta learning被看作按照算法或归纳偏差进行搜索,但重点在于通过端到端的方式学习明确定义的目标函数(如交叉熵损失,准确性或学习速度)。更直观的理解还是参考李宏毅老师给出的解释:

神经网络中的元学习研究_第1张图片

meta learning最常被理解为Learning to learn,它是指在多个学习情节中改进学习算法的过程,相比之下,机器学习是考虑在多个数据实例上改进模型预测过程。meta learning可以分为两部分,内部学习算法可解决由数据集和目标定义的任务,例如图像分类;外部学习算法会更新内部学习算法,以使内部学习算法表现出更好的性能。

1.2 形式化

在常规监督学习中,我们得到了训练数据集 D = ( x 1 , y 1 ) , . . . , ( x n , y n ) D={(x_1,y_1),...,(x_n,y_n)} D=(x1,y1),...,(xn,yn),我们通过以下形式求得一个由参数 θ \theta θ的模型 y ^ = f θ ( x ) \hat{y} = f_\theta(x) y^=fθ(x),
θ ∗ = a r g m i n L ( D , θ , w ) \theta^*=argminL(D,\theta,w) θ=argminL(D,θ,w)
其中 L L L是损失函数, w w w代表了限定条件。常规假设是针对每个数据集 D D D从头开始进行优化,并且 w w w是提前指定的。

**任务分布角度:**meta learning旨在通过学习“如何学习”来提高性能,通常情况下我们希望学习通用学习算法,该算法可以在各个任务之间进行概括,并使每个新任务的学习效果都比上一个要好。因此在meta learning中 w w w表示学习方法,通常根据在任务分布 p ( T ) p(T) p(T)中的表现进行评估,我们可以将任务定义为数据集和损失函数 T = ( D , L ) T={(D,L)} T=(D,L),学会学习也就变成了:
m i n E T ∼ p ( T ) = L ( D , w ) min\quad E_{T \sim p(T)} =L(D,w) minETp(T)=L(D,w)
其中 L ( D , w ) L(D,w) L(D,w)是衡量使用 w w w训练的模型在数据集D上的性能, w w w通常称为跨任务知识或meta knowledge。

meta learning中训练数据是以Task为单位的,分为Training-Task和Testing-Task,Task中也分为Training set以及Testing set,这里为例避免与Task的Train set和Test set混淆,分别被称为support set和 query set。例如在图像分类中,未知分类10类(P1-P10),其中每类包含五个已标注数据,15个未标注数据;已知分类20类(C1-C20),每类中有30个数据。在N-way,M-shot训练方式中(以N=5,M=1为例),首先进行Meta-training,从已知分类C中随机抽取出5类,每类抽取出1张图片组成Training-Task的support set,每类抽取出5张图片组成Training-Task的query set;在Meta-testing时,从未知分类P中随机抽取5类,在已标注数据中抽取1张图片组成Testing-Task的support set,在未标注的数据中抽取5张图片组成Testing-Task的query set。每一个Task相当于机器学习中的一条数据。

双层优化角度:在meta training阶段通常会转化为双层优化,双层优化是指其中一个优化包含另一个优化,是一种分层优化机制。使用这种表示方法可以将meta training表达为如下形式:
w ∗ = a r g min ⁡ w ∑ i = 1 M L m e t a ( θ ∗ ( i ) ( w ) , w , D s o u r c e v a l ( i ) ) s . t . θ ∗ ( i ) ( w ) = a r g min ⁡ θ L t a s k ( θ , w , D s o u r c e t r a i n ( i ) ) w^*=arg \min_{w} \sum_{i=1}^M L^ {meta}(\theta^{*(i)}(w),w,D_{source}^{val(i)}) \\ s.t. \quad \theta^{*(i)}(w)=arg \min_\theta \quad L^{task}(\theta,w,D_{source}^{train(i)}) w=argwmini=1MLmeta(θ(i)(w),w,Dsourceval(i))s.t.θ(i)(w)=argθminLtask(θ,w,Dsourcetrain(i))
其中 L m e t a , L t a s k L^ {meta},L^{task} Lmeta,Ltask分别代表了外层优化目标和内层优化目标,类似于少样本分离中的cross entropy。双层优化的一个关键特征是meta-learner与base-learner的不对称性,内层优化取决于外层优化定义的学习策略 w w w,但是在训练过程中内层优化却不能改变 w w w

前馈模型角度:许多的meta learning方法以前馈网络的方式进行学习,而不是像双层优化公式中通过显式的迭代优化来进行学习。尽管他们复杂程度各不相同,但通过实例化等式中的抽象目标有助于理解这一系列方法。这里可以通过优化任务分配来进行meta training,如下所示:

在这里插入图片描述

对于每个任务都需要使用support set和query set。其中 g w ( D t r ) g_w(D^{tr}) gw(Dtr)定义了线性回归的权重,以预测从测试集中得出的示例x,通过训练函数 g w g_w gw“学习如何学习”来优化上述目标。

1.3 相关领域

1.3.1 Transfer Learning

Transfer learning是机器学习的一个分支,它的目的是在获取一定的额外数据或者是存在一个已有的模型的前提下,将其应用在新的且有一定相关性的task。我们可以将做transfer learning的数据分成两类,一类是source data,另一类是target data。source data指的是额外的数据,与将要解决的任务并不直接相关,而target data是与任务直接相关的数据。

Meta learning与Transfer Learning最大的区别在于:transfer Learning可以指一个问题领域,meta learning是指一种方法,可以用来改善transfer Learning和其他问题。transfer Learning希望在一个模型上进行不断改进,而meta learning则是希望能生成更多能够快速学习的模型,并不单单局限于某一个模型。

1.3.2 Domain Adaptation

Domain Adaptation是迁移学习中的一种代表性方法,指的是利用信息丰富的源域样本来提升目标域模型的性能。 领域自适应问题中两个至关重要的概念:source domain表示与测试样本不同的领域,但是有丰富的监督信息;target domain表示测试样本所在的领域,无标签或者只有少量标签。源域和目标域往往属于同一类任务,但是分布不同。

1.3.3 AutoML

AutoML是将机器学习应用于现实问题的端到端流程自动化的过程。从传统机器学习模型出发,AutoML从特征工程、模型构建、超参优化三方面实现自动化;AutoML的主要问题可以由三部分构成:特征工程、模型选择、算法选择。AutoML有时会使用meta learning,可以将meta learning看做是AutoML的专业化。

2.分类

2.1传统分类方式

此前对元学习方法的分类倾向于分为三类:基于优化的方法、基于模型的方法和基于度量的方法。

2.1.1 基于优化的方法

基于优化的方法包括那些内部级别任务,并侧重于提取meta knowledge以提高优化性能。其中最著名的可能是MAML,MAML中的meta knowledge是模型的初始化参数的优化。目标是学习在少量的train实例的基础上使用少量的内部步骤来生成一个在验证数据上表现良好的分类器并通过梯度下降来对基础模型进行更新。

2.1.2 基于模型的方法

在基于模型方法中,内部学习步骤被包裹在单个模型的前馈传递中。该模型将当前数据集D嵌入到激活状态,并基于此状态对测试数据进行预测。典型的架构包括循环网络以及卷积网络,它们嵌入给定任务的训练实例和标签,以定义一个预测器,输入测试示例并预测其标签。

2.1.3 基于度量的方法

基于度量的方法主要思想是通过简单地比较validation points和training points以及预测matching training points,通过计算度量或近似度的方式来比较。基于度量的方法多用于few shot learning中,常见的方法包括: siamese networks, matching networks, prototypical networks, relation networks以及 graph neural networks。

2.2新分类方式

在这里引入了一种沿着三个独立轴的新分类方法,每个轴提供了反映当前元学习环境的分类:Meta-Representation (“What?”)Meta-Optimizer (“How?”)Meta-Objective (“Why?”) 。第一个轴是meta knowledge表示的选择,第二个轴是在meta training期间选择用于外部级别的优化器,第三个轴是meta learning的目标。具体分类如下图所示:

神经网络中的元学习研究_第2张图片

3.应用

3.1 计算机视觉

计算机视觉是元学习应用最广的领域之一,最主要体现在few-shot learning上。其中包括图像分类、目标检测、目标分割、图像生成等。迄今为止,元学习最常见的应用是图像识别中的few-shot multi-class 分类,其中内损失函数和外损失函数分别是训练和验证数据的交叉熵。

人工智能和机器学习的进展通常由精心设计的benchmark来衡量和推动。在机器学习中,benchmark由一个数据集和一个能够很好执行任务的模型组成,同时从该数据集中的训练到测试实例。在meta learning中,benchmark设计更为复杂,因为我们经常与一个learner打交道,这个learner应该在一组任务上接受meta training,之后应该将其概括为在以前看不见的任务上学习。因此,benchmark设计更加复杂,因为需要定义可以从中提取meta training和meta testing任务的任务族。

benchmark :minimagenet、tieredImageNet、SlimageNet、CUB-200和Omniglot。这些benchmark将大量类的先验数据集分成多个识别问题,从而重新利用它们来定义用于benchmark meta training和meta testing的新任务分布。

3.2 强化学习

强化学习通常与学习控制策略有关,该策略使代理能够在环境中获得高虎豹,而不是监督学习关注给定数据集的准确性。由于奖励稀疏、套索需要和高方差优化算法,RL通常会遭受极端样本效率的影响。因此,RL提供了一个丰富的应用领域,其中任务分布上的meta learning在提高样本效率方面比标准RL算法取得了显著的成功。人们可以直观地理解这些方法的效果。例如,类人机器人“如何站立”的元知识对于需要移动的所有任务都是可转移的技能,而迷宫布局的meta knowledge对于需要在迷宫中导航的所有任务都是可转移的。

在RL中的一些元表示,包括学习初始条件、超参数、和步长等,它们使得基于梯度的学习能够在较少的环境交互作用下学习策略。如何挖掘和获取学习所需的数据是任何RL算法的关键因素。传统的探索是基于随机抽样行为或手工探索启发。一些meta-RL研究明确地将探索策略或好奇心功能视为meta knowledge;并将其习得建模为元学习问题——通过“学习如何探索”来显著提高样本效率。

benchmark:关于强化学习的benchmark分为两种,一种是离散环境的,一种是连续控制的。其中最具代表性的包括OpenAI Gym、rllib、Atari、mujoco以及 Meta-World benchmark。

3.3 神经架构搜索

本质上网络架构搜索,和围棋类似,是个高维空间的最优参数搜索问题。既然围棋上AlphaGo可以战胜人类,那在网络架构搜索上机器最后也很有可能可以取代人类。我们知道,AlphaGo主要是基于强化学习。2016年,MIT和Google的学者们差不多在同一时间发表论文,将强化学习引入到深度神经网络结构的搜索中,取得了不俗的成果。在几个小型的经典数据集上击败同时代同级别的手工设计网络。但这个方法有个缺点是消耗计算资源巨大,基本就不是一般人玩得起的。
神经架构搜索的基本过程是先定义搜索空间,然后通过搜索策略找出候选网络结构,对它们进行评估,根据反馈进行下一轮的搜索。网络结构的搜索策略有很多。像随机搜索就是比较简单,但相对低效的做法,通常用作baseline。其它研究得比较多的有几类:基于强化学习基于进化算法基于梯度的方法。要将神经架构搜索中的超参数自动调优的方法应用到其它领域,最关键的其实是搜索空间的定义和编码,而这个往往是领域相关的。

神经架构搜索的两个主要挑战是(1) 全面评估内环通常非常昂贵,因为它需要训练多个shot的神经网络才能完成。(2)搜索空间很难定义,并且优化代价太高。

3.4 无监督学习

在meta learning文献中,无监督的meta learning主要有两种变体。首先,外环的元目标是无监督的,因此学习者本身是在没有任何标签的情况下学习的。称之为Unsupervised Meta Learning 。在第二个变体中,meta learning被用作学习无监督内环任务的一种方法。外部映射可以是有监督的或无监督的。称之为Meta Learning Unsupervised Learning

Unsupervised Meta Learning 旨在降低传统的元训练任务集的假设标准,同时仍然为有监督的few shot learning提供良好的下游性能。Meta Learning Unsupervised Learning 目的是利用meta learning来训练无监督学习算法,使其能很好地用于下游有监督学习任务。可以训练无监督聚类算法或损失,从而优化下游有监督学习性能。这有助于通过将无监督学习问题转化为具有明确监督目标的问题来解决无监督学习问题的不确定性。

4.挑战

元学习面临着跨任务的泛化挑战,类似于传统机器学习中跨实例泛化的挑战。有三个层次的挑战:(1)第一个挑战是将meta learner的任务分布 p ( T ) p_{(T)} pT应用得更广,这对现有的方法是一个巨大的挑战。(2)第二个挑战是从meta training推广到从 p ( T ) p_{(T)} pT中提取新的meta testing任务。(3)第三个挑战是将meta testing任务归纳为不同于训练任务的分布。另一方面,许多meta learning框架都假设任务分布式uni-modal。单一的学习策略可以提供一个很好的解决方案。然而在现实宗,任务分配显然是多模态的,例如计算机视觉中的医学图像与卫星图像或者日常图像。

一个有趣的方向可能是研究引入另一个级别的学习抽象如何影响泛化性能,即meta meta learning。通过学习如何进行meta learning,也许我们可以找到元优化器,它可以很强地泛化各种类型和强度的领域,甚至模态转换。当然,计算成本会成倍增加。

参考
李宏毅老师 机器学习
Timothy Hospedales et.al. Meta-Learning in Neural Networks: A Survey. arXiv:2004.05439, 2020

你可能感兴趣的:(Meta,learning,机器学习)