Asynchronous Methods for Deep Reinforcement Learning
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!
ICML 2016
Abstract
我们提出了一个概念上简单且轻量级的深度强化学习框架,该框架使用异步梯度下降来优化深度神经网络控制器。我们提出了四种标准强化学习算法的异步变体,并表明并行参与者学习器对训练具有稳定作用,允许所有四种方法成功训练神经网络控制器。性能最佳的方法是actor-critic的异步变体,它超越了Atari领域的当前最先进技术,同时在单个多核CPU而不是GPU上训练了一半的时间。此外,我们展示了异步actor-critic在各种连续电机控制问题以及使用视觉输入导航随机3D迷宫的新任务上取得了成功。
1. Introduction
2. Related Work
3. Reinforcement Learning Background
4. Asynchronous RL Framework
我们现在介绍单步Sarsa、单步Q-learning、n步Q-learning和优势actor-critic的多线程异步变体。设计这些方法的目的是找到能够可靠地训练深度神经网络策略且无需大量资源的RL算法。虽然底层的RL方法完全不同,actor-critic是一种同策的策略搜索方法,而Q-learning是一种基于异策价值的方法,但鉴于我们的设计目标,我们使用两个主要思想来使所有四种算法都实用。
首先,我们使用异步actor学习者,类似于Gorila框架(Nair et al., 2015),但我们没有使用单独的机器和参数服务器,而是在单台机器上使用多个CPU线程。将学习器保持在一台机器上消除了发送梯度和参数的通信成本,并使我们能够使用Hogwild! (Recht et al., 2011)训练的风格更新。
其次,我们观察到并行运行的多个actor学习者可能正在探索环境的不同部分。此外,可以在每个actorx学习者中明确使用不同的探索策略来最大化这种多样性。通过在不同的线程中运行不同的探索策略,多个actor学习者并行应用在线更新对参数所做的整体更改可能比单个智能体应用在线更新在时间上的相关性更小。因此,我们不使用回放缓存,而是依靠采用不同探索策略的并行actor来执行DQN训练算法中经验回放所承担的稳定角色。
除了稳定学习之外,使用多个并行的actor学习者还具有多种实际好处。首先,我们获得了训练时间的减少,这与并行actor学习者的数量大致呈线性关系。其次,由于我们不再依赖经验回放来稳定学习,我们能够使用诸如Sarsa和actor-critic之类的策略强化学习方法以稳定的方式训练神经网络。我们现在描述我们的单步Q-learning、单步Sarsa、n步Q-learning和优势actor-critic的变体。
Asynchronous one-step Q-learning:
Asynchronous one-step Sarsa:
Asynchronous n-step Q-learning:
Asynchronous advantage actor-critic: 该算法,我们称之为异步优势actor-critic (A3C),维护一个策略π(at|st; θ)和价值函数的估计V(st; θv)。与我们的n步Q-learning变体一样,我们的actor-critic变体也在前向视图中运行,并使用相同的n步回报组合来更新策略和价值函数。策略和价值函数在每tmax个动作后或达到终端状态时更新。算法执行的更新可以看作其中A(st, at, θ, θv)是由
给出的对优势函数的估计,其中 k 可以因状态而异,其上限为tmax。该算法的伪代码在补充算法S3中给出。
与基于价值的方法一样,我们依靠并行的actor学习者和累积更新来提高训练稳定性。请注意,虽然策略的参数和价值函数的 v 为一般性显示为分开的,但在实践中我们总是共享一些参数。我们通常使用卷积神经网络,该网络具有一个用于策略的 softmax 输出 (atjst; ) 和一个用于值函数 V (st; v) 的线性输出,所有非输出层共享。
我们还发现,将策略的熵添加到目标函数可以通过阻止过早收敛到次优确定性策略来改进探索。这种技术最初是由 (Williams & Peng, 1991) 提出的,他发现它对需要分层行为的任务特别有用。 包括熵正则化项关于策略参数的完整目标函数的梯度形式为 r 0 log (atjst; 0)(Rt V (st; v)) + r 0H( ( st; 0)),其中 H 是熵。 超参数控制熵正则化项的强度。
Optimization:
5. Experiments
Asynchronous Methods for Deep Reinforcement Learning的更多相关文章
- 论文笔记之:Asynchronous Methods for Deep Reinforcement Learning
Asynchronous Methods for Deep Reinforcement Learning ICML 2016 深度强化学习最近被人发现貌似不太稳定,有人提出很多改善的方法,这些方法有很 ...
- Asynchronous Methods for Deep Reinforcement Learning(A3C)
Mnih, Volodymyr, et al. "Asynchronous methods for deep reinforcement learning." Internatio ...
- (zhuan) Deep Reinforcement Learning Papers
Deep Reinforcement Learning Papers A list of recent papers regarding deep reinforcement learning. Th ...
- 【资料总结】| Deep Reinforcement Learning 深度强化学习
在机器学习中,我们经常会分类为有监督学习和无监督学习,但是尝尝会忽略一个重要的分支,强化学习.有监督学习和无监督学习非常好去区分,学习的目标,有无标签等都是区分标准.如果说监督学习的目标是预测,那么强 ...
- [DQN] What is Deep Reinforcement Learning
已经成为DL中专门的一派,高大上的样子 Intro: MIT 6.S191 Lecture 6: Deep Reinforcement Learning Course: CS 294: Deep Re ...
- 18 Issues in Current Deep Reinforcement Learning from ZhiHu
深度强化学习的18个关键问题 from: https://zhuanlan.zhihu.com/p/32153603 85 人赞了该文章 深度强化学习的问题在哪里?未来怎么走?哪些方面可以突破? 这两 ...
- 深度强化学习(Deep Reinforcement Learning)入门:RL base & DQN-DDPG-A3C introduction
转自https://zhuanlan.zhihu.com/p/25239682 过去的一段时间在深度强化学习领域投入了不少精力,工作中也在应用DRL解决业务问题.子曰:温故而知新,在进一步深入研究和应 ...
- (转) Playing FPS games with deep reinforcement learning
Playing FPS games with deep reinforcement learning 博文转自:https://blog.acolyer.org/2016/11/23/playing- ...
- (转) Deep Reinforcement Learning: Playing a Racing Game
Byte Tank Posts Archive Deep Reinforcement Learning: Playing a Racing Game OCT 6TH, 2016 Agent playi ...
随机推荐
- web服务器-nginx反向代理
web服务器-nginx反向代理 一. 代理介绍 代理是网络中使用比较常见的, 比如我们说的最多的就是FQ软件, 比如ss, 蓝灯等这些大家常用的软件,他们就是能改代理大家访问的国内无法访问的一些国外 ...
- 爬虫简介与requests模块
爬虫简介与requests模块 一 爬虫简介 概述 网络爬虫是一种按照一定规则,通过网页的链接地址来寻找网页的,从网站某一个页面(通常是首页)开始,读取网页的内容,找到网页中的其他链接地址,然后通过这 ...
- sqlserver下载地址及密匙
SqlServer 2017 下载地址及密钥 下载地址: ed2k://|file|cn_sql_server_2017_developer_x64_dvd_11296175.iso|17697771 ...
- 全网最硬核 Java 新内存模型解析与实验单篇版(不断更新QA中)
个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判.如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 i ...
- ACM - 最短路 - CodeForces 295B Greg and Graph
CodeForces 295B Greg and Graph 题解 \(Floyd\) 算法是一种基于动态规划的算法,以此题为例介绍最短路算法中的 \(Floyd\) 算法. 我们考虑给定一个图,要找 ...
- 10分钟go crawler colly从入门到精通
Introduction 本文对colly如何使用,整个代码架构设计,以及一些使用实例的收集. Colly是Go语言开发的Crawler Framework,并不是一个完整的产品,Colly提供了类似 ...
- C++函数声明的时候后面加const
非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,任意修改该类中成员的操作都是不允许的(因为隐含了 ...
- Creating a File Mapping Object
创建一个文件映射对象 映射一个文件的第一步是通过调用CreateFile函数来打开一个文件.为了确保其他的进程不能对文件已经被映射的那一部分进行写操作,你应该以唯一访问(exclusive acces ...
- 开发一个自己的 CSS 框架(四)
这一节,我们来讲规矩,谈网格,做人可以不要脸,不讲规矩,不讲道理(特指傲娇兽),但底线还是要有的,如同网格一样,不能超出. jeet 这里我们别人封装好的模块,不过呢,我们也会详细介绍一下原理.首先我 ...
- 对Flex布局的总结与思考
阅读本文之前最好对flex布局有基本了解,可以通过"参考资料"中列举的资源来学习. flex布局规范的设计目标 一维布局模型(one-dimensional layout mode ...