https://www.zhihu.com/question/62482926/answer/625352436

转载:https://zhuanlan.zhihu.com/p/32270990

1 前言

2017年马上就要过去了,在这一年中,肯定很多搞深度学习的知友都会看到Meta Learning/ Learning to Learn 这个词。是的,它今年很火。在NIPS上,被Oriol Vinyals和Pieter Abbeel多次提及,既有Meta Learning symposium也有Meta Learning workshop。然而,Meta Learning是非常让人困惑的一个词,到底要Meta Learning什么呢?什么才是Meta Learning?为什么研究Meta Learning?Meta Learning会有怎样的研究方向?Meta Learning未来会怎样发展?这些确实很值得我们去思考。

在本文之前,智能专栏上已经有多篇介绍Meta Learning的文章:

Kay Ke:概要:NIPS 2017 Deep Learning for Robotics Keynote​zhuanlan.zhihu.comFlood Sung:最前沿:百家争鸣的Meta Learning/Learning to learn​zhuanlan.zhihu.comFlood Sung:机器人革命与学会学习Learning to Learn​zhuanlan.zhihu.comFlood Sung:学会学习Learning to Learn:让AI拥有核心价值观从而实现快速学习​zhuanlan.zhihu.com

那么在这篇博文中,我打算更深入的谈谈我对Meta Learning的理解,也算是全新的视角。

2 到底什么是Meta的?

我不知道是谁最先把Meta Learning翻译成元学习的,但从中文的角度问你“元学习是什么?” 你要怎么回答?老实说我也是懵逼的。特意查一下元在字典中的意思,主要是有初始,根源的意思。但Meta Learning不是初始呀,这里的Meta更应该是指更高level的东西。Learning to Learn这个词看起来应该更好理解,直接翻译就对了:学会学习。所以Meta Learning可以理解为要学习一种学习能力。但是什么是学习能力呢?如何描述?一般我们说某个学神学习能力强大概是说学神记忆力好,理解能力快之类的东西。但是什么是理解能力呢?依然非常难以描述。

实际上这里我们遇到了和高维空间一样的问题。我们很难去想象高维空间,我们也很难去想象meta的东西到底是什么。更何况,还有meta-meta,meta-meta-meta...的东西。也许这就是大概被称为智能的东西吧。

以前,我们只是不知道Deep Learning是怎么学的,但至少知道是在学习下棋还是学习图像识别,现在对于Meta Learning,我们连学什么都不太清楚了。

那么Meta到底如何定义?我们只能回归到Machine Learning本身来考虑这个概念。这里我给出一个我对Meta的定义:

任何超出学习(Learning/Training)内部的东西都是Meta的!

什么是学习内部呢?

有两个视角,一个是深度学习技术上的学习,一般我们也称为训练,另一种是人类角度看的学习。

2.1 深度学习技术视角的Meta

现在大家都在自嘲自己是炼金术士,我们每天调的参数就是Meta的,也就是在学习外部!所谓的学习就是这个训练过程,也可以说是反向传播过程。超出这个“学习的”都是学习外部,都是Meta的。

这包含了以下这些类别:

  1. 训练超参数Hyper Parameters:包括Learning rate,Batch Size,input size等等目前要人为设定的参数
  2. 神经网络的结构
  3. 神经网络的初始化
  4. 优化器Optimizer的选择。比如SGD,Adam,RMSProp
  5. 神经网络参数
  6. 损失函数的定义。那么多gan的文章基本上就是改改损失函数。
  7. 反向传播Back-propagation。 对,这个也是Meta的,我们通过梯度下降的公式固定了参数的更新方式。神经网络傻傻只能按照这个公式来更新参数。

我发现要区别是不是Meta的就是把“学习”当做一个小孩,你叫他怎么做怎么做的东西都是Meta的。那么所谓的“学习”就是沿着你设定的方向实际移动的过程,比如梯度下降中参数实际变化过程叫学习。而学会学习就是使用神经网络自己去构造上面的任意设定。

也因此,我们可以把目前meta learning的一些研究工作排排坐了。比如说

[1611.01578] Neural Architecture Search with Reinforcement Learning​arxiv.org

这就属于神经网络结构的,很明显。

[1703.03400] Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks​arxiv.org

MAML就属于参数的初始化。

[1606.04474] Learning to learn by gradient descent by gradient descent​arxiv.org

这篇则是构造一个神经网络的优化器来替代Adam,SGD。

Meta-Critic Networks for Sample Efficient Learning​arxiv.org

这篇则是考虑学习一个更好的loss。

还有

Optimization as a Model for Few-Shot Learning​openreview.net

这篇则既学习一个好的初始化,也学习网络的更新。

那么看到这里大家显然就可以看出来了,我们可以切入其中的某一个角度来做文章。

这里面可能最最困难的就是直接取代反向传播。如果能用一个神经网络来代替目前的反向传播,那就牛大了。

2.2 人类视角下的Meta:Meta Knowledge

说完深度学习技术角度的Meta,我们再来看看人类视角下的Meta。所谓人类视角下的Meta,就是从真正的学习知识的角度来看什么是Meta的。

比如说目前Reinforcement Learning上一个大量被用来测试的实验是3D Maze Navigation。让agent去导航到一个目标。实验中,目标要不断变化。这意味着要使Agent在下一个episode中快速的找到目标,需要Agent在每一次episode中不断的获取Maze的结构和目标的位置,从而在新的episode能够直接去寻找的这个目标。那么,从Meta Learning的角度看,Maze的结构和目标的位置就是所谓的Meta知识。那么这种知识在RL下只使用state,action的数据是无法得知的,还需要reward才能在顶层进行判断。因此,meta RL的基本思想非常简单,就是在输入增加上一次的reward,或者用之前的(state,action,reward)来推断Meta知识。虽然说Meta-RL是通用的,按照原作者的意思,是学习一个rl算法,但是在具体的比如这里的3d navigation问题上,推断目标位置和记忆Maze形状是最主要的。

而在监督学习上,Meta知识又完全不一样了。人类很神奇的天生具备meta知识不用学。比如人视觉具有的one shot learning能力。看一个新东西就能分辨。这个实际上是天然的具备比较不同视觉物体相似情况的能力。再有比如视觉跟踪,之前大家都只是把它当做一个计算机视觉的问题在看待,但是实际上视觉跟踪是人类的一种Meta能力,也是不用学的,就直接可以跟踪任何新的没见到的物体。如果有人看到一个全新的东西眼球就不会转了,那么这个世界的规律大概就不一样了。

从一定程度上说,Meta Learning的本意就是要学习Meta Knowledge。Meta knowledge可以具体如视觉的跟踪比较,也可以抽象的就是某一个学习算法。但是,显而易见的,越具体的东西越容易去研究,越抽象的东西就越难去学习。

这里举最新的一篇Robot Learning的文章为例,来自Fei-Fei Li:

https://arxiv.org/abs/1710.01813​arxiv.org

这篇文章采用Neural Program Induction这个很酷的方法来做few shot imitation learning,取得了很不错的效果。但是,我们要深究一下原理,实际上这篇文章是把一个机器人的manipulation通过人为的方式分解成多步动作,神经网络只需要学习如何组成这些动作,然后执行。这一定程度上大幅度简化了问题的难度。为了实现few shot imitation learning,则让神经网络能够meta的根据已有的demo去构建动作的顺序。所以,这里的meta知识就是去组织动作。这个在人为的分解下变得简单了。如果没有人为分解,要求神经网络自己去发现步骤,并组织这些步骤,难度就大太多了。

Meta knowledge又天然的和Hierarchical Reinforcement Learning(HRL)联系起来。我们知道HRL最难的部分就是去自主的学习一个好的Hierarchy,好的Option。但是实际上仅靠单一任务是很难做的,因为没有对比,就是我们人也不知道哪些是顶层的,哪些是底层的。但是Meta Learning的设定则提供了这样的实现机会。我们可以通过多个类似的任务来学习一个meta knowledge,这个meta knowledge就是hierarchy,就是高层的知识。在OpenAI之前很火的高中生的那篇paper中对这个进行了验证并取得了不错的效果:

https://arxiv.org/abs/1710.09767​arxiv.org

3 未来的Meta Learning将会如何发展?

2018年马上就要到来了,这里也大胆预测一下Meta Learning未来的发展。可以说,当前的Meta Learning和2015年的Deep Reinforcement Learning非常像,刚刚起步,开始有一些很酷的应用效果(特别是Pieter Abbeel团队的One shot Visual Imitation Learning工作),目前的工作也就是几十篇文章。因此,明年,Meta Learning必将会有一波爆发,将体现在以下两个大的方面:

(1)理论算法研究。目前的Meta Learning还是百花齐放的情况,当然从我们前面对Meta的分析可以看到Meta不同角度可以看到完全不同的东西。因此,接下来还会有很多工作会基于不同的视角提出不同的算法。我们依然期待一个大一统的框架。然而目前的情况是越视角单一,越可能做的效果好,毕竟视角的选择等价于人类的知识赋予,约等于简化了神经网络的学习难度。完全通用的Meta Learning比如MAML这种要打败专门设计的算法会有难度,这其实也给了大家很多机会(现在Chelsea Finn 在MAML上疯狂的灌)

(2)具体应用研究。目前监督学习主要是image recognition。这显然是很局限的。Meta Learning,或者few shot learning可以应用到视觉语音等各种方面。因此,新的应用研究也是很值得做的。从今年few shot visual recognition研究中已经可以看到迹象,小实验像omniglot这种已经基本解决,开始向large scale的数据发起进攻。从这里也看出few shot learning开始从很不可能变成可能了。然后另一块很重要的当然是Robot Learning了。本来研究Meta Learning就不是为了区区的视觉图像,而是机器人的快速学习,这个有很强的现实意义,是大幅度推进机器人革命的关键一步。因此,明年如果没有超越MAML的算法出现,会是难以想象的。更强的few shot imitation learning感觉会彻底的改变imitation learning这个领域。然后HRL结合Meta Learning也是必然的趋势,高中生那篇文章还是稍显简单了,更通用更强大的Meta HRL算法恐怕也要问世,而这显然可以应用在星际2上,所以DeepMind不研究也不行呀。

期待2018年成为Meta Learning真正爆发的一年!

Meta Learning/Learning to Learn, 到底我们要学会学习什么?||介绍了几篇元学习文章相关推荐

  1. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  2. coursera课程learning how to learn的主要内容-学会学习(一)

    本篇为听课之后,看着英文写的,如果翻译不对,麻烦指出,我尽可能的把最重要的内容整理出来,方便其他人学习以及自己复习. 目录 1. focused mode 和diffused mode(集中模式与发散 ...

  3. Meta Learning 元学习

    来源:火炉课堂 | 元学习(meta-learning)到底是什么鬼?bilibili 文章目录 1. 元学习概述 Meta 的含义 从 Machine Learning 到 Meta-Learnin ...

  4. 元学习Meta learning深入理解

    目录 基本理解 元学习与传统的机器学习不同在哪里? 基本思想 MAML MAML与pre-training有什么区别呢? 1. 损失函数不同 2. 优化思想不同 MAML的优点及特点 MAML工作机理 ...

  5. Learning to Learn:图神经网络上的元学习

    © 作者|田长鑫 机构|中国人民大学信息学院 研究方向 | 图表示学习和推荐系统 来源 | RUC AI Box 图神经网络(GNN)在实际应用中往往会受到可用样本数量太少的限制,而元学习(meta- ...

  6. 【李宏毅】元学习(Meta learning)的概念与步骤

    [李宏毅]元学习(Meta learning)的概念与步骤 1 概念 2 元学习步骤 2.1 定义一组学习算法 2.2 评价一个学习算法 F F F 的好坏 只讲了元学习概念和步骤,简单做了解,稍微复 ...

  7. Learning What to Learn for Video Object Segmentation

    Learning What to Learn for Video Object Segmentation 摘要 引言 现有方法 特征匹配技术 我们的方法 网络结构 网络创新点 相关工作 VOS中的目标 ...

  8. 元学习—Meta Learning的兴起

    来源:专知 [导读]元学习描述了训练深度神经网络相关的更高级别的元素.在深度学习文献中,"元学习"一词经常表示神经网络架构的自动化设计,经常引用" AutoML" ...

  9. (转)Paper list of Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning

    Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning 2018-08-03 19:16:56 本文转自:http ...

最新文章

  1. 5折交叉验证_交叉验证:评估模型表现
  2. c++ class struct同名_C/C++面向对象编程之封装
  3. c# 智能升级程序代码(1)
  4. Vue源码后记-vFor列表渲染(3)
  5. 四级过了,我却高兴不起来!
  6. Barrage 弹幕实现原理
  7. i3能装Linux虚拟机,使用i3wm重新安装Ubuntu
  8. IDL 读取葵花8(Himawari-8)HSD数据
  9. 一个独特的简历生成器,开源了!
  10. WinSnap 截图工具绿色中文特别版
  11. unity VR中制作小地图的方法
  12. 三维重建方法--激光or视觉
  13. 焊接摆动与不摆动的区别
  14. 2019年第十届蓝桥杯[Java]
  15. 浅谈JAVA程序破解(原创)
  16. SimpleMind Pro(电脑版思维导图软件)官方中文版V1.30.0.6068下载 | 电脑版思维导图软件哪个好用?
  17. excel图文教程:应用PQ工具进行数据整理
  18. 2019年中国大数据BI(商业智能)行业预测报告
  19. 如何查看高清卫星地图
  20. 跨专业考研必须要了解的5个常识!

热门文章

  1. Intel Xeon E5-4650 VS AMD Opteron 6380
  2. C 语言常量pi,如何在C中使用PI常数
  3. DNA存储大数据,峰哥身价暴涨10个亿
  4. 第三次作业 软件产品同质化问题
  5. boss直聘python_python分析BOSS直聘的某个招聘岗位数据
  6. 我的世界服务器没有显示物品ID,我的世界物品ID不显示怎么办
  7. 大数分解Pollard_rho模板
  8. c++之 std::tie
  9. Java练手项目2:基于Java的坦克大战游戏(学习Java必备!!!)
  10. 在线沙盒(恶意软件行为分析工具)整理介绍