2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Meta Learning/Learning to Learn 到底我们要学会学习什么?||介绍了几篇元学习文章

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

时间:2023-12-27 17:29:31

相关推荐

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

/question/62482926/answer/625352436

转载:/p/32270990

1 前言

马上就要过去了,在这一年中,肯定很多搞深度学习的知友都会看到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 Deep Learning for Robotics Keynote​Flood Sung:最前沿:百家争鸣的Meta Learning/Learning to learn​Flood Sung:机器人革命与学会学习Learning to Learn​Flood Sung:学会学习Learning to Learn:让AI拥有核心价值观从而实现快速学习​

那么在这篇博文中,我打算更深入的谈谈我对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的。

这包含了以下这些类别:

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

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

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

[1611.01578] Neural Architecture Search with Reinforcement Learning​

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

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

MAML就属于参数的初始化。

[1606.04474] Learning to learn by gradient descent by gradient descent​

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

Meta-Critic Networks for Sample Efficient Learning​

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

还有

Optimization as a Model for Few-Shot Learning​

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

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

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

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:

/abs/1710.01813​

这篇文章采用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中对这个进行了验证并取得了不错的效果:

/abs/1710.09767​

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

马上就要到来了,这里也大胆预测一下Meta Learning未来的发展。可以说,当前的Meta Learning和的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不研究也不行呀。

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。