立flag什么的简直是打脸,回来这个周末过得简直不要太开心,又是吃饭又是打麻将的又是打球的。。。这两天要抓紧看文章了,毕竟我带回来25篇论文。。。看看能不能补上前两天的空白。。。
当然啦,也祝大家有个愉快的假期
下面开始今天的分享,Meta Networks,这篇文章由ICML 2017接收。
我也没有接触过Meta Learning,我们先学习一下基础知识。
(本文这部分的内容引自知乎)
Meta Learning 元学习或者叫做 Learning to Learn 学会学习 已经成为继Reinforcement Learning 增强学习之后又一个重要的研究分支(以后仅称为Meta Learning)。对于人工智能的理论研究,呈现出了
Artificial Intelligence --> Machine Learning --> Deep Learning --> Deep Reinforcement Learning --> Deep Meta Learning
这样的趋势。
之所以会这样发展完全取决于当前人工智能的发展。在Machine Learning时代,复杂一点的分类问题效果就不好了,Deep Learning深度学习的出现基本上解决了一对一映射的问题,比如说图像分类,一个输入对一个输出,因此出现了AlexNet这样的里程碑式的成果。但如果输出对下一个输入还有影响呢?也就是sequential decision making的问题,单一的深度学习就解决不了了,这个时候Reinforcement Learning增强学习就出来了,Deep Learning + Reinforcement Learning = Deep Reinforcement Learning深度增强学习。
有了深度增强学习,序列决策初步取得成效,因此,出现了AlphaGo这样的里程碑式的成果。但是,新的问题又出来了,深度增强学习太依赖于巨量的训练,并且需要精确的Reward,对于现实世界的很多问题,比如机器人学习,没有好的reward,也没办法无限量训练,怎么办?这就需要能够快速学习。而人类之所以能够快速学习的关键是人类具备学会学习的能力,能够充分的利用以往的知识经验来指导新任务的学习,因此Meta Learning成为新的攻克的方向。
以此同时,星际2 DeepMind使用现有深度增强学习算法失效说明了目前的深度增强学习算法很难应对过于复杂的动作空间的情况,特别是需要真正意义的战略战术思考的问题。这引到了通用人工智能中极其核心的一个问题就是要让人工智能自己学会思考,学会推理。AlphaGo在我看来在棋盘特征输入到神经网络的过程中完成了思考,但是围棋的动作空间毕竟非常有限,也就是几百个选择,这和星际2几乎无穷的选择对比就差太多了(按屏幕分辨率*鼠标加键盘的按键 = 1920*1080*10 约等于20,000,000种选择)。然而在如此巨量选择的情况下,人类依然没问题,关键是人类通过确定的战略战术大幅度降低了选择范围(比如当前目标就是造人,挖矿)因此如何使人工智能能够学会思考,构造战术非常关键。这个问题甚至比快速学习还要困难,但是Meta Learning因为具备学会学习的能力,或许也可以学会思考。因此,Meta Learning依然是学会思考这种高难度问题的潜在解决方法之一。
经过以上的分析,不过是为了得出下面的结论:
Meta Learning是实现通用人工智能的关键!
而Meta Learning百花齐放的研究思路呈现百家争鸣的趋势
为什么说Meta Learning的研究是百家争鸣呢?因为每一家的研究思路都完全不同,真的是各种方法各种试,呈现出一种智慧大爆发的阶段。
这里主要分析一下最近一两年来的发展情况,先作个分类,然后做一下简要的分析。
2.1 基于记忆Memory的方法
基本思路:既然要通过以往的经验来学习,那么是不是可以通过在神经网络上添加Memory来实现呢?
2.2 基于预测梯度的方法
基本思路:既然Meta Learning的目的是实现快速学习,而快速学习的关键一点是神经网络的梯度下降要准,要快,那么是不是可以让神经网络利用以往的任务学习如何预测梯度,这样面对新的任务,只要梯度预测得准,那么学习得就会更快了?
2.3 利用Attention注意力机制的方法
基本思路:人的注意力是可以利用以往的经验来实现提升的,比如我们看一个性感图片,我们会很自然的把注意力集中在关键位置。那么,能不能利用以往的任务来训练一个Attention模型,从而面对新的任务,能够直接关注最重要的部分。
2.4 借鉴LSTM的方法
基本思路:LSTM内部的更新非常类似于梯度下降的更新,那么,能否利用LSTM的结构训练出一个神经网络的更新机制,输入当前网络参数,直接输出新的更新参数?这个想法非常巧妙。
2.5 面向RL的Meta Learning方法
基本思路:既然Meta Learning可以用在监督学习,那么增强学习上又可以怎么做呢?能否通过增加一些外部信息的输入比如reward,之前的action来实现?
2.6 通过训练一个好的base model的方法,并且同时应用到监督学习和增强学习
基本思路:之前的方法都只能局限在或者监督学习或者增强学习上,能不能搞个更通用的呢?是不是相比finetune学习一个更好的base model就能work?
2.7 利用WaveNet的方法
基本思路:WaveNet的网络每次都利用了之前的数据,那么是否可以照搬WaveNet的方式来实现Meta Learning呢?就是充分利用以往的数据呀?
2.8 预测Loss的方法
基本思路:要让学习的速度更快,除了更好的梯度,如果有更好的loss,那么学习的速度也会更快,因此,是不是可以构造一个模型利用以往的任务来学习如何预测Loss呢?
我们今天要介绍的这篇文章采用的是基于记忆Memory的方法
首先,看一下这篇文章的摘要部分:
摘要部分主要说了三个内容:
第一部分提出了现阶段Neural Networks仍然存在的问题,how to preserve performance with small training data
第二部分介绍了一下本文的工作:introduce a novel meta learning method
第三部分介绍了实验部分的工作
我们主要介绍第二部分的内容,也就是本文提出的meta learning method。首先我们来看一下本文介绍的网络的整体结构:
可以看出,MetaNet主要由Meta Learner 和Base Learner两个部分构成同时添加了memory这样一个模块。而文中的创新点如我们之前介绍的那样,主要就是添加了memory这样一个部分,使得之前学习到的内容有可能作用在之后的学习上。而这两个Learner之间的信息传递就如图上给出的那样。
哎,这篇论文我目前看的也有些云里雾里,但是前两天看Lecun 在2018年IJCAI上面的发言,自监督学习也是未来AI的发展方向,因此对于时序网络的学习也是有必要的。假期也考虑多看看这方面的文章。
领取专属 10元无门槛券
私享最新 技术干货