Key

元学习系统(监督+从属)扩展于RL设置

LSTM用强化学习算法进行训练,可以使agent获得一定的学习适应能力

解决的主要问题

  • DRL受限于特定的领域
  • DRL训练需要大量的数据

作者参考了Hochreiter在2001年发表的Learning to Learn Using Gradient Descent论文的方法:(1)元学习系统由从属系统和监督系统两部分组成(2)循环网络可以在完全监督的环境下支持元学习


文章内容

  • Introduction

    使用标准的深度RL技术来训练递归神经网络,以使递归网络实现其自己的独立RL过程

    • 一个使用RL算法训练的系统,但它的递归动力学实现了另一个完全独立的RL过程
    • 在适当的情况下,二级学习的RL程序可以显示出原始RL程序所缺乏的适应性和样本效率
  • Methods

    • 元学习结合神经网络(Hochreiter等人的相关方法)

    • DEEP META-RL

      Meta-Learning的输入变成RL设置

      • agent接收到的输入指示了上一步的动作输出 和 该动作所产生的奖励(critical),而不是将目标输出作为辅助输入。
      • 同样的奖励信息被平行地提供给一个DRL程序,该程序调整循环网络的权值。

      文章中强调的一个关键点:这个学习到的RL过程可能与用于训练网络权值的算法截然不同。特别是,它的策略更新过程(包括该过程的有效学习率等特性)可能与调整网络权值所涉及的过程有显著差异,并且学习到的RL过程可以实现自己的探索方法。关键的是,在监督的情况下,学习到的RL过程将适合跨多任务环境的统计,使其能够快速适应。(这里递归网络实现的过程本身是一个成熟的强化学习算法,它协商探索-利用权衡,并基于奖励结果改进代理的策略)

    • formalism

      • 一个适当结构的agent嵌入一个循环神经网络,通过与序列的交互来训练MDP环境(也称为任务)。

      • 在一个新的episode开始时,采样一个新的MDP任务m ~ D和该任务的初始状态,并重置agent的内部状态(即,在其循环单位上的激活模式)。然后,代理在此环境中针对一定数量的离散时间步长执行其动作选择策略。在每一步t上,作为当前的整个历史轨迹episode的的函数执行动作a(从episode开始,循环单元被重置)。训练网络权重使所有步骤和片段的观察奖励总和最大化。

      • 训练后,agent的策略是固定的(即权重是固定的,但由于环境的输入和循环层的隐藏状态,激活是变化的),并对一组mdp进行评估,这些mdp要么来自相同的分布D,要么是对该分布稍加修改(以测试代理的泛化能力)。内部状态在任何新episode的评估开始时被重置。

      • 由于代理学习到的策略是依赖于历史的(因为它使用了一个循环网络),所以当暴露于任何新的MDP环境时,它能够适应和部署一个策略,以优化该任务的回报

  • Experiments

    • 研究问题

      • meta-RL是否符合完全成熟的RL,可以在exploration and exploitation tradeoff
      • meta-RL是否可以提高学习效率
    • 实验设置
      • 赌博机实验
      • MARKOV DECISION PROBLEMS
  • Conclusion

    Deep Meta-RL包含三个成分的组合:

    (1)使用深度RL算法训练递归神经网络

    (2)包括一系列相互关联的任务的训练集

    (3)网络输入,包括选择的动作和在前一个时间点收到的奖励

    Meta-RL关键:产生了一种利用任务结构中的不变性的学习认知学习算法


文章方法的优缺点

  • 优点

    • 元学习思想使得RL利用之前的经验信息
    • 能够快速适应新任务
  • 缺点
    • 基于上下文的,RL中在处理的时候需要一个完整episode
    • 泛化性适用范围是在众多MDP具有某种相似性的时候

Summary

 这篇论文主要是利用了2001年提出的元学习系统idea,把输入换成了RL设置的输入。目的是想要最优动作,标准RL的policy函数的输入只有当前s,即根据当前状态来选择动作。由于RNN的存在,即需要之前的信息,输入就变成了上一次a,r,和 当前s,来选择动作a

论文链接

版权归原作者 Lee_ing 所有

CogSci 2017-Learning to reinforcement learn的更多相关文章

  1. Learning How to Learn, Part 1

    Jan 8, 2015 • vancexu Learning How to Learn: Powerful mental tools to help you master tough subjects ...

  2. Cousera课程Learning How to Learn学习报告

    花了三天完成了Cousera上的Learning how to learn的课程,由于未完成批阅他人作业,所以分不是很高,但是老师讲的课程非常的好,值得一听: 课程的笔记: 我们的一生是一个不断接触和 ...

  3. Learning How to Learn学习笔记(转)

    add by zhj: 工作中提高自己水平的最重要的一点是——快速的学习能力.这篇文章就是探讨这个问题的,掌握了快速学习能力的规律,你自然就有了快速学习能力了. 原文:Learning How to ...

  4. Learning How to Learn 学习如何学习

    Introduction 这是 UCSD 开设在 Coursera 上的课程 Learning How to Learn 的课程笔记.这门课程主要基于神经科学和认知心理学的一些研究成果讲述高效学习的理 ...

  5. Learning How To Learn

    1.Practice 2.memory every week for from working memory to long tern memory 3.sleep 4.running promote ...

  6. <Learning How to Learn>Week One: Focused versus Diffuse Thinking

    1-1 Introduction to the focused and diffuse modes (4:40) 两种思考的模式:focused mode以及diffuse mode focused ...

  7. 集成算法(chapter 7 - Hands on machine learning with scikit learn and tensorflow)

    Voting classifier 多种分类器分别训练,然后分别对输入(新数据)预测/分类,各个分类器的结果视为投票,投出最终结果: 训练: 投票: 为什么三个臭皮匠顶一个诸葛亮.通过大数定律直观地解 ...

  8. (转)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 ...

  9. 18 Issues in Current Deep Reinforcement Learning from ZhiHu

    深度强化学习的18个关键问题 from: https://zhuanlan.zhihu.com/p/32153603 85 人赞了该文章 深度强化学习的问题在哪里?未来怎么走?哪些方面可以突破? 这两 ...

  10. (转) AI突破性论文及代码实现汇总

    本文转自:https://zhuanlan.zhihu.com/p/25191377 AI突破性论文及代码实现汇总 极视角 · 2 天前 What Can AI Do For You? “The bu ...

随机推荐

  1. celery 使用

    celery 1.celery介绍 celery能用来做什么: 1.异步任务 2.定时任务 3.延迟任务 1.1 理解celery的运行原理 1.可以不依赖任何服务器 通过自身命令 启动服务 2.ce ...

  2. find和filter有什么区别

    JavaScript 在 ES6 上有很多数组方法,每种方法都有独特的用途和好处. 在开发应用程序时,大多使用数组方法来获取特定的值列表并获取单个或多个匹配项. 在列出这两种方法的区别之前,我们先来一 ...

  3. 最大流基础(Maximum Flow Basis)

    1. 最大流问题定义 1.1 流网络(Flow network) Def. A flow network is a tuple \(G = (V, E, s, t, c)\): Digraph \(( ...

  4. C#多线程开发-了解C#5.0 05

    前面一篇文章,了解了任务并行库.这是异步编程基础设施,它允许我们以模块化的方式设计程序,来组合不同的异步操作.解决了以往线程之间传递消息难等问题,但是我们在阅读和编写此类程序时还是会觉得非常难理解程序 ...

  5. C++ 猜数字

    #include <iostream> #include <random> #include <limits> namespace random { std::ra ...

  6. Linux理论知识

    Linux理论知识   理论知识 1.1文件名后缀 1 作用是说明和注释一个文件的性质. 2 与文件类型无关. 1.2常见的压缩文件后缀名 1.gz 2.bz2 3.xz 4.zip 5.tar 6. ...

  7. git命令的学习和基本使用

    初始化 git init (your_project) 配置 --local 只对当前仓库有效 --global 对当前用户所有仓库有效 --system 对系统登录的所有用户有效 git confi ...

  8. 【原理揭秘】Vite 是怎么兼容老旧浏览器的?你以为仅仅依靠 Babel?

    作者:京东科技 孙凯 一.前言 对前端开发者来说,Vite 应该不算陌生了,它是一款基于 nobundle 和 bundleless 思想诞生的前端开发与构建工具,官网对它的概括和期待只有一句话:&q ...

  9. MySQL--索引的数据结构

    1.为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教科书的目录部分,通过目录中找到对应文章的页面,便可以快速定位到需要的文章,mysql中也是一样的道理,进行数据查找时, ...

  10. Kubernetes(k8s)集群安装JupyterHub以及Lab

    背景 JupyterHub 为用户组带来了笔记本的强大功能.它使用户能够访问计算环境和资源,而不会给用户带来安装和维护任务的负担.用户--包括学生.研究人员和数据科学家--可以在他们自己的工作空间中完 ...