每天给你送来NLP技术干货!


© 作者|卞书青

机构|中国人民大学信息学院

研究方向|推荐系统、小样本学习

来自 | RUC AI Box

Meta Learning是深度学习领域近年来热门的研究方向之一,近年涌现出了大量的paper,最近来自爱丁堡大学的Timothy Hospedales老师撰写了一篇非常全面有深度的综述:

Meta-Learning in Neural Networks: A Survey

论文链接:https://arxiv.org/pdf/2004.05439.pdf

在这篇综述里,作者对Meta Learning这个领域进行了全新系统性进行分类,并且充分分析了Meta Learning的研究进展。本期我们将这篇综述进行解读。

1 引言

基于深度学习的方法在各个领域都取得了巨大的成功。然而,这有明显的局限性。例如,在可以收集大量数据的领域以及可以使用大量计算资源的领域取得了很大的成功。而在许多应用场景下数据本质上是稀有的或昂贵的,或者计算资源不可用。而元学习提供了另一种范例,它有望将神经网络中各种选择的tradeoff、组合设计自动化,成为提升深度学习整体效能的重要推动力,通过更有效地利用数据,利用先验知识迁移并实现无监督和自我指导的学习。

1.1 什么是元学习?

从广义上讲,元学习的定义可包括迁移,多任务,特征选择和模型集成学习。还有人认为元学习广泛涵盖了基于数据集特征的算法选择等技术。本文则专注于当前神经网络下的元学习,我们将其理解为算法或归纳偏差搜索,通过对明确的目标函数进行端到端学习来实现的。

1.2 元学习的历史背景

元学习于1987年首次出现在J. Schmidhuber和G. Hinton的两份独立的著作中。Schmidhuber使用自参照学习为一个新的可以学习如何学习的方法族建立了理论框架。自参照学习包括训练神经网络,这些神经网络可以接收自己的权重作为输入,并预测所述权重的更新。Schmidhuber进一步提出,模型本身可以使用进化算法进行学习。

Hinton等人提出的每个神经网络连接都使用两种权重:第一类权重是标准的慢速权重,它在优化器更新过程中缓慢地获取知识(称为慢速知识),而第二类权重(快速权重)在推理过程中快速获取知识(称为快速知识)。快速权重的职责是能够去掉或恢复过去学到的慢速权重,否则这些知识会由于优化器更新而被遗忘。这篇论文引入了一些基本概念,这些概念在后来分支出来,产生了当代的元学习。

在引入元学习之后,此思想在多个不同领域的迅速增加。Bengio等人提出了试图元学习生物上可信的学习规则的系统。Schmidhuber等人在随后的工作中继续探索自参照系统和元学习。S.Thrun等人在中创造了learning to learn术语以作为元学习的替代,以寻找元学习的一般定义。在Schweighofer等人的工作中,元学习首次被用于强化学习,之后Larochelle等人首次将元学习用于小样本学习。在2012年Thrun等人在现代DNN时代重新引入了meta-learning,这标志着本综述所讨论的基于神经网络下的元学习的开始。

2 Meta Learning如何定义?

Meta Learning,也称为Learning to Learn,即学会学习,顾名思义就是学会某种学习的技巧,从而在新的任务task上可以学的又快又好。这种学习的技巧我们可以称为Meta-knowledge。Meta Learning和传统的机器学习最大的不同便在于Meta Learning是task level的,即每一个task都可以认为是meta learning的样本。基于这样的定义,我们可以得到Meta Learning的学习目标:

其中是meta knowledge,是task的分布,而是task对应的数据集。我们希望能够学到一个通用的meta knowledge,使得不同的task的Loss都能越小越好。

类似于传统的机器学习,Meta Learning分为Meta-train和Meta-test两个阶段,在Meta-train阶段中,我们通过采样大量的source task来学习meta knowledge (最大化其log likelihood):

然后在Meta-test使用target task来验证效果。这里要注意meta knowledge并不等同于用于解决task的model,model的参数是单独存在或者包含于meta knowledge中。所以,Meta-test的目标是基于已经学到的meta knowledge来寻找最优的model  :

基于以上的定义,接下来需要考虑如何去训练meta knowledge。这就要引出Meta Learning最常见的BiLevel Optimization的做法。

3 什么是BiLevel Optimization?

Meta Learning是Task Level的,而一般的task会包含train set或test/val set,在meta learning中我们往往也称之为Support Set和Query Set。正常训练model的流程就是先使用train set训练,然后再使用test/val set测试。因此,在meta-training的过程中,我们可以构造两层的optimization优化过程,在inner-loop即内层中使用train set更新model,然后再outer-loop基于更新后的model优化meta knowledge。

这么做可以完全模拟meta-test的过程,假设我们已经找到了最优的meta knowledge,那么意味着我们使用train set优化model得到参数也是最优的。

BiLevel Optimization的思想非常重要,几乎所有的meta learning问题都可以应用于上面的思想。

同时,我们也看到有一些meta learning的做法并没有显式的采用Bilevel optimization,但是实际上BiLevel Optimization中的Inner loop并不一定要用优化的方法,可以是任意的方式。所以,优化后的model 可以是隐式的通过meta knowledge来表示:

公式中的  即为基于meta knowledge和train set得到的隐式model。

4. Meta Learning的分类

从上面的定义及优化中可以看到,Meta Learning可以对几乎任意的可调整参数进行meta learning,也因此诞生了无数和meta learning相关的paper。在这篇综述中作者对Meta Learning按照是什么(What,Meta-Representation),怎么做(How,Meta-Optimizer),为什么(Why,Objective)来分类。

元表示(Meta-Representation),即要meta learn的东西。可以是整个model,也可以是超参,网络结构,loss,data等。

元优化(Meta-Optimizer),主要指Bilevel-Optimization中的Outer-loop采用的优化方式,这个也就是三种Gradient,RL及Evolution,根据需要选用。

元目标(Meta-Objective),即Meta Learning的具体目标,不同的应用会有不同的目标。

4.1 元表示

元学习方法对应该是什么做出不同的选择,即学习策略的哪些方面应该被学习;以及哪些方面应该被认为是固定的。

参数初始化

在第一类方法中,对应于神经网络的初始参数。在MAML中,这些被解释为内部优化的初始条件。这些方法广泛应用于少样本学习。这种方法的一个关键挑战是,外部优化需要求解与内部优化一样多的参数。这导致了一系列的工作和探讨,初始条件是否足以为广泛的潜在任务提供快速学习,还是仅限于相当有限的分布。

度量学习

基于度量的元学习的核心思想类似于最近邻算法(k-NN分类、k-means聚类)和核密度估计。该类方法在已知标签的集合上预测出来的概率,是支持集中的样本标签的加权和。权重由核函数算得,该权重代表着两个数据样本之间的相似性。因此,学到一个好的核函数对于基于度量的元学习模型至关重要。度量学习正是针对该问题提出的方法,它的目标就是学到一个不同样本之间的metric或者说是距离函数。任务不同,好的metric的定义也不同。但它一定在任务空间上表示了输入之间的联系,并且能够帮助我们解决问题。

数据增广

在监督学习中,通过对现有数据进行保留标签的变换,合成更多的训练数据,从而提高泛化能力是很常见的。数据增强操作被封装在内层的优化步骤中,并且通常是手工设计的。然而,当定义了数据增强策略时,可以通过外层优化来学习,以便最大化验证性能。由于增广运算通常是不可微的,这就需要强化学习、离散梯度估计方法。

课程学习

在传统的机器学习中,课程是一系列要学习的数据的集合,目的是产生比按随机顺序学习更好的性能,例如,通过关注困难实例,同时剔除太难或太容易(已经学习)的实例。元学习有可能使这一过程自动化,并通过将教学策略定义为元知识,并对其进行训练。

4.2 元优化

Gradient

许多方法对元参数使用梯度下降。这需要计算外部目标的导数(是模型参数)。这些方法可能很有效,但也面临不少挑战:

(i)如何通过内部优化使用许多迭代步的长计算图进行有效微分,例如通过精心设计自动微分算法和隐式微分,同时处理昂贵的二阶梯度。

(ii)如何减少不可避免的梯度退化问题,该问题的严重性随着内环优化步骤的数量增加而增加。

Reinforcement Learning

当元目标本身不可微分时,许多方法借助于RL来优化外部目标,通常使用策略梯度定理来估计梯度。但是,以这种方式减轻对可微性的需求通常非常昂贵。的高阶策略梯度估计意味着需要许多外层优化步骤才能收敛,而这些步骤中的每一步由于将任务模型优化包裹在其中,本身的成本就很高。

Evolution

优化元目标的另一种方法是进化算法(EA)。许多进化算法与强化学习算法有很强的联系。但是,对于RL,它们的性能并不取决于内部优化的长度和奖励稀疏性。

EA具有吸引力的原因:

(i)EA可以优化任何类型的基本模型和元目标,而无需可微性。

(ii)它们不依赖于反向传播,从而解决了梯度下降问题,并避免了上述常规基于梯度方法所需的高阶梯度计算成本。

(iii)它们是高度可并行化的,从而使元训练更易于扩展。

(iv)通过保持多样化的解群体,他们可以避免困扰梯度法的局部最小值。

EA相对更普遍地应用于RL中。然而,它们也已被应用于在监督学习中学习learning rules,优化器,体系结构和数据增强策略。它们在学习人类可解释的符号元表示中也特别重要。

4.3 元目标

Meta-Objective由选择元目标,任务分布和内外层间的数据流确定。文献中的大多数方法都依赖于用更新任务模型后,在验证集上计算出某种形式的性能指标,并将该指标作为元目标。这与经典的基于验证集的超参数调整和架构选择方法是一致的。这个框架有几种设计方案:

Online vs Offline

在线元学习指基本模型和学习者在单个episode中共同演化,此时提高样本效率很重要。

Other Episode Design Factors

可以将其他运算符插入episode generation pipeline以自定义针对特定应用的元学习。例如,可以在训练和验证之间模拟域转换、模拟网络压缩(在训练和验证之间进行quantization)、 在元训练期间提供嘈杂标签以优化标签噪声的鲁棒性,或生成对抗验证集以进行元优化从而进行对抗防御。

5. 挑战和开放性问题

元泛化

元学习面临着跨任务的泛化挑战,类似于传统机器学习中跨实例泛化的挑战。通过正则化、转移学习、领域适应和领域泛化的元泛化来解决这些问题是新兴的方向。另一个有趣的方向可能是研究引入另一个级别的学习抽象如何影响泛化性能,即基于元的元学习。通过学习如何进行元学习,也许我们可以找到元优化器,它可以很强地泛化各种类型和强度的领域,甚至模态转换。当然,计算成本会成倍增加。

计算成本

两层优化导致步骤数的增加,每个外部步骤需要多个内部步骤。而且,在许多情况下,存在大量的内部步骤,这些步骤需要存储在内存中。由于这个原因,大多数元学习框架在时间和内存上都非常昂贵,并且常常局限于小型架构。人们越来越关注解决这一问题的方法。例如,可以交替进行内部和外部更新,或者训练代理模型等。

跨模态迁移与异构任务

到目前为止,大多数元学习方法都考虑了来自相同形式的任务。人类能够跨模态(例如,通过如视觉、文本或音频模仿学习)传递知识。如何进行元学习从一组任务中提取抽象知识,任务间可能跨越模态是一个开放的问题。目前大多数研究都涉及到同一类型任务之间的转换,但理想情况下,我们希望能够在异构任务之间进行转换。

6. 参考文献

[1] Meta-Learning: Learning to Learn Fast

https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html

[2] 荐读 Meta-Learning in Neural Networks: A survey

https://zhuanlan.zhihu.com/p/133159617


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

整理不易,还望给个在看!

一文解读元学习研究进展相关推荐

  1. 南加州大学等开源元学习研究库learn2learn

    近日,南加州大学单位等开源了一个元学习研究库learn2learn,旨在促进越来越多的元学习的研究,该库基于PyTorch,文档完善,样例丰富,是从事相关研究值得参考的开源库. 相关论文: learn ...

  2. 论文笔记--知识表示学习研究进展-2016

    论文信息: 论文-知识表示学习研究进展-2016-刘知远 文末附6篇知识表示相关论文的下载地址 文章目录 前言 知识库的主要研究目标 基于网络形式的知识表示面临的困难点 表示学习&知识表示学习 ...

  3. 知识表示学习研究进展

    知识表示学习研究进展 本博文来源于 Paper: 刘知远 2016 知识表示学习研究进展 计算机研究与发展 目前的产品 谷歌知识图谱 微软Bing Satori 百度知心 搜狗知立方 IBM Wast ...

  4. 2019 到目前为止的深度学习研究进展汇总

    本文为 AI 研习社编译的技术博客,原标题 : Best Deep Learning Research of 2019 So Far 作者 | ODSC - Open Data Science 翻译 ...

  5. 诺亚面向语音语义的深度学习研究进展

    本文来自华为诺亚方舟实验室资深专家刘晓华在携程技术中心主办的深度学习Meetup中的主题演讲,介绍了华为诺亚面向语音语义的深度学习进展. 本次演讲简要回顾了深度学习近十年进展,重点介绍华为诺亚方舟实验 ...

  6. 自动驾驶中图像与点云融合的深度学习研究进展综述

    点云PCL免费知识星球,点云论文速读. 文章:Deep Learning for Image and Point Cloud Fusion in Autonomous Driving: A Revie ...

  7. 「干货」谷歌大脑:元学习最新进展与挑战(40 PPT下载)

    https://www.toutiao.com/a6651792282443842055/ 2019-01-29 13:51:18 [新智元导读]Hugo Larochelle是谷歌大脑的研究员.深度 ...

  8. 直播 | 北京邮电大学徐逸辰:图对比学习研究进展

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

  9. cvpr 深度估计_干货 | 2019 到目前为止的深度学习研究进展汇总

    本文为 AI 研习社编译的技术博客,原标题 : Best Deep Learning Research of 2019 So Far 作者 | ODSC - Open Data Science 翻译 ...

  10. 张俊林:对比学习研究进展精要

    作者 | 张俊林 编辑 | 夕小瑶的卖萌屋 对比学习(Contrastive Learning)最近一年比较火,各路大神比如Hinton.Yann LeCun.Kaiming He及一流研究机构比如F ...

最新文章

  1. 配置中心Apollo的设计原理
  2. 姚期智施尧耘获FOCS 2021时间检验奖,MIT华人摘最佳学生论文奖
  3. mysql 第一天_MySQL第一天
  4. 红旗桌面版本最新运用体式款式和成就解答100例-8
  5. 使用SQLite学习SQL
  6. 【网络安全】如何搭建MySQL恶意服务器读取文件?
  7. python 处理 json 四个函数dumps、loads、dump、load的区别
  8. 关于meta的各种用处以及移动端的常见问题
  9. Nginx 访问日志轮询切割
  10. .NET如何将字符串分隔为字符
  11. Git 的origin和master分析 push/diff/head
  12. Python可视化库
  13. 【软件设计师考试】《软件设计师教程》(一)
  14. 计算机一级如何添加对角线,如何在表格中添加对角线
  15. 【74HC595】STM32 74HC595驱动程序
  16. 三种方法查看电脑IP地址是否被占用
  17. windows10 1050ti vs2015 openc3.2 cuda8.0配置自己的darknetyolov3
  18. python小测试_Python小测试 (2)
  19. 人与机器人的交互理论及其前景
  20. linux防火墙 限制流量,Linux防火墙对P2P流量的限制

热门文章

  1. 从零开始学习音视频编程技术--转自雲天之巔
  2. CentOS7下让Asp.Net Core的网站自动运行
  3. 安卓apk的编译与反编译
  4. ProcExp和TaskMgr的列对比
  5. [Android]利用run-as命令在不root情况下读取data下面的数据
  6. Delphi Sockets.pas单元中TIpSocket的Bug
  7. 20190818 On Java8 第八章 复用
  8. Java开发笔记(六十九)泛型类的定义及其运用
  9. sparkSql使用hive数据源
  10. 移动端布局,C3新增属性