元强化学习系列(1)之:元学习入门基础

元强化学习三境界

统计学是人工智能开始发展的一个基础,古老的人们从大量的数据中发现七所存在的规律,在以统计学为基础的 机器学习(machine learning)时代,复杂一点的分类问题效果就不好了, 深度学习(Deep Learning)的出现基本上解决了一对一映射的问题,比如说图像分类,一个输入对一个输出,因此出现了AlexNet这样的里程碑式的成果。但如果输出对下一个输入还有影响呢?也就是序列决策(sequential decision making) 的问题,单一的深度学习就解决不了了。强化学习(Reinforcement Learning)的出现让该问题得到了新的发展,深度强化学习(Deep Learning + Reinforcement Learning = Deep Reinforcement Learning)通过使用神经网络对强化学习的学习数据利用神经网络进行逼近得到了快速的发展,让序列决策初步取得成效,最典型的例子就是Google DeepMind公司的AlphaGo。

但是,新的问题又出来了,深度强化学习 过度依赖于巨量的训练,并且需要精确的Reward,对于现实世界的很多问题,比如机器人学习,没有好的reward,也没办法无限量训练,怎么办?这就需要能够快速学习。


相比之下,人类能够更快、更有效地学习新的概念和技能。只看过几次猫和鸟的孩子可以很快分辨出来。知道如何骑自行车的人可能很快就会发现骑摩托车的方式。那么是否有可能设计出具有类似属性的机器学习模型 ,答案是“有的”,这也是本文即将讨论的 元学习(Meta-Learning)

第一部分:元学习


我们期望一个良好的模型能够很好地适应或推广到在训练期间从未遇到过的新任务和新环境。适应过程,实质上是一个小型学习会话,在测试期间发生,但对新任务配置的接触有限。最终,改编的模型可以完成新任务。这就是为什么元学习也被称为学习学习(Learning to learn)的原因。

元学习最初由Donald B. Maudsley(1979)描述为“学习者意识到并且越来越多地控制他们已经内化的感知,探究、学习和成长习惯的过程(the process by which learners become aware of and increasingly in control of habits of perception, inquiry, learning, and growth that they have internalized)”。 Maudsely将他的理论的概念基础设定为在假设、结构、变革过程下的解释。阐述了五个原则以促进元学习。学习者一般满足:

  • 有一个理论,无论多么原始;
  • 在安全的支持性社会和物质环境中工作;
  • 发现其规则和假设;
  • 重新与环境中的现实信息联系起来;
  • 通过改变其规则/假设来重组自己。

John Biggs(1985)后来使用元学习的概念来描述“意识到并控制自己的学习”的状,可以将元学习定义为对学习本身现象的认识和理解,而不是学科知识。这个定义隐含着学习者对学习环境的看法,包括了解学科的期望是什么,更简单地说,是对特定学习任务的要求。在这种背景下,元学习取决于学习者的学习观念,认识论信念,学习过程和学术技能,在此总结为一种学习方法。具有高水平元学习意识的学生能够评估自身的学习方法的有效性,并根据学习任务的要求对其进行管理。相反,元学习意识低的学生将无法反思自身的学习方法或学习任务集的性质。因此,当学习变得更加困难和苛刻时,自身将无法成功适应。

1. Meta-Learning理论方法

元学习系统的定义一般需要考虑以下三个要求:

  • The system must include a learning subsystem.(系统必须包括学习子系统。)
  • Experience is gained by exploiting meta knowledge extracted(通过利用提取的元知识获得经验)

    (1). in a previous learning episode on a single dataset(在单个数据集的先前学习情节中)

    (2). from different domains.(来自不同的领域)
  • Learning bias must be chosen dynamically.(必须动态选择学习偏差)

偏差是指影响解释性假设选择的假设[6],而不是偏差 - 方差困境中所表示的偏见概念。 元学习涉及学习偏见的两个方面。

  • 声明性偏差指定假设空间的表示,并且影响搜索空间的大小(例如,仅表示使用线性函数的假设)。
  • 程序性偏差对归纳假设的排序施加约束(即,更喜欢较小的假设)。

2. Meta-Learning核心要素

3. Meta-Learning的tensorflow代码实现

第二部分:高级元学习方法


MAML(Model-Agnostic Meta-Learning)

Meta Networks


目前Meta-learning的分类

1、基于记忆Memory的方法。
基本思路:因为要通过以往的经验来学习,那就可以通过在神经网络中添加Memory来实验。

2、基于预测梯度的方法。
基本思路:Meta Learning的目的是实现快速学习,而实现快速学习的关键点是神经网络的梯度下降要准和快,那么就可以让神经网络利用以往的任务学习如何预测梯度,这样面对新的任务,只要梯度预测的准,那么学习就会快。

3、利用Attention注意力机制
基本思路:训练一个Attention模型,在面对新任务时,能够直接的关注最重要部分。

4、借鉴LSTM的方法
基本思路:LSTM内部的更新非常类似于梯度下降的更新,那么能否利用LSTM的结构训练处一个神经网络的更新机制,输入当前网络参数,直接输出新的更新参数

5、面向RL的Meta Learning方法
基本思路:既然Meta Learning可以用在监督学习,那么增强学习上又可以怎么做呢?能否通过增加一些外部信息的输入比如reward,和之前的action来实验。

6、通过训练一个base model的方法,能同时应用到监督学习和增强学习上
基本思路:之前的方法只能局限在监督学习或增强学习上,能否做出一个更通用的模型。

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

8、预测Loss的方法
基本思路:要让学习的速度更快,除了更好的梯度,如果有更好的Loss,那么学习的速度也会更快,因此,可以构建一个模型利用以往的任务来学习如何预测Loss

继续更新中…

参考文献:

  • [1]. https://zhuanlan.zhihu.com/p/27696130
  • [2]. https://www.jiqizhixin.com/articles/meta-learning-intro
  • [3]. https://medium.com/huggingface/from-zero-to-research-an-introduction-to-meta-learning-8e16e677f78a
  • [4].https://lilianweng.github.io/lil-log/2018/11/30/meta-learning.html
  • [5]. https://blog.csdn.net/langb2014/article/details/84953307
  • [6]. https://coladrill.github.io/2018/10/24/%E5%85%83%E5%AD%A6%E4%B9%A0%E6%80%BB%E8%A7%88/
  • [7]. https://my.oschina.net/taogang/blog/3011686
  • [8]. https://huangwang.github.io/2019/01/27/%E5%85%83%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E7%A0%94%E7%A9%B6%E7%AC%94%E8%AE%B0/

你可能感兴趣的:(元学习,元强化学习,Meta,Learning)