Meta Learing

而人类之因此可以快速学习的关键是人类具有学会学习的能力,可以充分的利用以往的知识经验来指导新任务的学习,所以Meta Learning成为新的攻克的方向。 网络

可是Meta Learning由于具有学会学习的能力,或许也能够学会思考学习

 

学会学习最主要的能力是在面对相似的任务时可以利用历史经验,加速网络的训练学习编码

 

如今的meta learning方式主要分为一下几类:spa

基于记忆Memory的方法 
  基本思路:既然要经过以往的经验来学习,那么是否是能够经过在神经网络上添加Memory来实现呢
code

 

基于预测梯度的方法 
  基本思路:既然Meta Learning的目的是实现快速学习,而快速学习的关键一点是神经网络的梯度降低要准,要快,那么是否是可让神经网络利用以往的任务学习如何预测梯度,这样面对新的任务,只要梯度预测得准,那么学习得就会更快了? blog

 

利用Attention注意力机制的方法 图片

  基本思路:人的注意力是能够利用以往的经验来实现提高的,好比咱们看一个性感图片,咱们会很天然的把注意力集中在关键位置。那么,能不能利用以往的任务来训练一个Attention模型,从而面对新的任务,可以直接关注最重要的部分。 it

 

借鉴LSTM的方法 
  基本思路:LSTM内部的更新很是相似于梯度降低的更新,那么,可否利用LSTM的结构训练出一个神经网络的更新机制,输入当前网络参数,直接输出新的更新参数?io

 

面向RL的Meta Learning方法 
  基本思路:既然Meta Learning能够用在监督学习,那么加强学习上又能够怎么作呢?可否经过增长一些外部信息的输入好比reward,以前的action来实现? 配置

 

经过训练一个好的base model的方法,而且同时应用到监督学习和加强学习 
  基本思路:以前的方法都只能局限在或者监督学习或者加强学习上,能不能搞个更通用的呢?是否是相比finetune学习一个更好的base model就能work?

 

利用WaveNet的方法 
  基本思路:WaveNet的网络每次都利用了以前的数据,那么是否能够照搬WaveNet的方式来实现Meta Learning呢?就是充分利用以往的数据呀? 

 

预测Loss的方法 
  基本思路:要让学习的速度更快,除了更好的梯度,若是有更好的loss,那么学习的速度也会更快,所以,是否是能够构造一个模型利用以往的任务来学习如何预测Loss呢? 

 

 

如今所了解的两种meta learning 方式:

1.先构建出一个初始化网络,后面在根据新任务的需求微调初始化网络,从而实现加速学习的能力

 

2.让AI在学习各类任务后造成一个核心的价值网络,从而面对新的任务时,能够利用已有的核心价值网络来加速AI的学习速度!

上图为Meta-Critic Network的基本示意图。咱们以CartPole这个让杆保持平衡的任务来作分析。在咱们这里,杆的长度是任意的,咱们但愿AI在学习了各类长度的杆的任务后,面对一个新的长度的杆,可以快速学习,掌握让杆保持平衡的诀窍。

怎么作呢?

每个训练任务咱们都构造一个行动网络(Actor Network),可是咱们只有一个核心指导网络(Meta-Critic Network),这个网络包含两部分:一个是核心价值网络(Meta Value Network),另外一个则是任务行为编码器(Task-Actor Encoder)。

咱们用多个任务同时训练这个Meta Critic Network。训练方式能够是常见的Actor-Critic。训练时最关键的就是Task-Actor Encoder,咱们输入任务的历史经验(包括状态state,动做action,和回馈reward),而后获得一个任务的表示信息z,将

z和通常价值网络的输入(状态state和动做action)链接起来,输入到Meta Value Network中。

经过这种方式,咱们能够训练出一个Meta Critic Network。面对新的任务(也就是杆的长度变化了),咱们新建一个行动网络Actor Network,可是却保持Meta Critic Network不变,而后一样使用Actor-Critic方法进行训练。这个时候,效果就出来了,

咱们能够学的很是快:

看第一个图的紫色学习曲线,reward的上升速度很是快,standard是彻底的Actor-Critic训练,基本就仍是平的(通常对于CartPole任务须要训练几千次才能收敛到195的得分经过任务)。而后看右边第三个图,在仅仅玩100个杆训练后,Meta-Critic方法就

可以达到25%经过任务的成功率,而其余方法都还早着呢。实际上paper也没有显示的一个结果是基于Meta Critic Network训练300步可让任务经过率基本达到100%。这种结果很是的promising!那么咱们会关心任务行为编码器(Task-Actor Encoder)学

到了什么?因而咱们把不一样任务的z提取出来用t-SNE显示如中间那个图所示。而后咱们惊讶的发现z的分布和CartPole杆的长度是直接相关的,这意味着任务行为编码器确实能够利用以往的经验来理解一个任务的配置信息。

相关文章
相关标签/搜索