zoukankan      html  css  js  c++  java
  • Asynchronous Methods for Deep Reinforcement Learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!

    Arxiv 2016

    Abstract

      我们为深度强化学习提出了一个概念上简单轻巧的框架,该框架使用异步梯度下降来优化深度神经网络控制器。我们提出了四种标准强化学习算法的异步变体,并表明并行actor学习器对训练具有稳定作用,允许所有四种方法成功地训练神经网络控制器。性能最优的方法是actor-critic的异步变体,它在单个多核CPU(而不是GPU)上以一半的时间进行训练,超越了Atari域上的当前技术水平。此外,我们证明了异步actor-critic在各种连续电机控制问题以及使用视觉输入导航随机3D迷宫的新任务中取得了成功。

    1. Introduction

      深度神经网络提供了丰富的表征,可以使RL算法有效执行。但是,以前认为简单的在线RL算法与深度神经网络的组合从根本上来说是不稳定的。取而代之的是,已经提出了多种解决方案来稳定算法 (Riedmiller, 2005; Mnih et al., 2013; 2015; Van Hasselt et al., 2015; Schulman et al., 2015a)。这些方法有一个共同的想法:在线RL智能体遇到的观测数据的序列是不稳定的,并且在线RL更新是高度相关的。通过将智能体的数据存储在经验回放内存中,可以对数据进行批处理 (Riedmiller, 2005; Schulman et al., 2015a)或从不同的时间步骤随机采样 (Mnih et al., 2013; 2015; Van Hasselt et al., 2015)。以这种方式在内存上进行汇聚可减少非稳定性并去除更新相关性,但同时将方法限制为异策强化学习算法。

      基于经验回放的深度RL算法在诸如Atari 2600这样具有挑战性的领域中取得了空前的成功。但是,经验回放有几个缺点:每次真正的交互都会使用更多的内存和计算量;并且需要异策学习算法,该算法可以从较旧的策略生成的数据中进行更新。

      在本文中,我们为深度强化学习提供了非常不同的范例。代替经验回放,我们在环境的多个实例上异步并行执行多个智能体。这种并行性还将智能体的数据去相关到一个更平稳的过程中,因为在任何给定的时间步骤,并行智能体将经历各种不同的状态。这个简单的想法可以使用深度神经网络来鲁棒且有效地应用更多种类的基本同策RL算法,例如Sarsa,n步方法和actor-critic方法,以及异策RL算法 (例如Q学习)。

      我们的并行强化学习范例也提供了实际的好处。以往的深度强化学习方法严重依赖于专用硬件,例如GPU(Mnih et al., 2015; Van Hasselt et al., 2015; Schaul et al., 2015)或大规模分布式架构 (Nair et al., 2015),我们的实验在一台带有标准多核CPU的计算机上运行。当将其应用于各种Atari 2600域时,在许多游戏中,异步强化学习可在比先前基于GPU的算法更少的时间内获得更好的结果,并且所使用的资源比大规模分布的方法少得多。我们所提出的最优方法,异步优势actor-critic(A3C),还掌握了各种连续的电机控制任务,并学会了仅从视觉输入中探索3D迷宫的一般策略。我们相信,A3C在2D和3D游戏,离散和连续动作空间上的成功以及对前馈和循环智能体进行训练的能力使其成为迄今为止最通用且最成功的强化学习智能体。

    2. Related Work

    3. Reinforcement Learning Background

      我们考虑标准的强化学习设置,其中智能体在多个离散时间步骤上与环境ε交互。在每个时间步骤 t,智能体接收状态st并根据其策略π从一组可能的动作A中选择一个动作at,其中π是从状态st到动作at的映射。作为回报,智能体接收下一个状态st+1并接收标量奖励rt。该过程继续进行,直到智能体达到终止状态,然后该过程重新启动。回报是带折扣因子γ ∈ (0, 1]的时间步骤 t 的总累积回报,智能体的目标是使每个状态st的期望回报最大化。

      动作价值Qπ(s, a) = E[Rt|st = s, a]是在状态s和后续策略π中选择动作a的期望回报。最优价值函数Q*(s, a) = maxπ Qπ(s, a)给出状态s和任何策略均可得到的动作a的最大动作价值。类似地,策略π下状态s的价值被定义为V*(s) = E[Rt|st = s],并且仅仅是从状态s遵循后续策略π的期望回报。

      在基于价值的无模型强化学习方法中,使用函数近似(例如神经网络)来表示动作价值函数。令Q(s, a; θ)是带有参数θ的近似动作-价值函数。θ的更新可以从各种强化学习算法中得出。这种算法的一个示例是Q学习,其目的是直接近似最优动作价值函数:Q*(s, a) ≈ Q(s, a; θ)。在单步Q学习中,通过迭代最小化一系列损失函数来学习动作价值函数Q(s, a; θ)的参数θ,其中第 i 个损失函数定义为

    其中s'是状态s之后遇到的状态。

      我们将上述方法称为单步Q学习,因为它向单步回报r + γ maxa' Q(s', a'; θ)更新动作价值Q(s, a)。使用单步方法的一个缺点是,获得奖励 r 仅直接影响状态动作对s, a的价值,这导致奖励。其他状态动作对的价值仅通过更新后的价值Q(s, a)间接影响。这可能会使学习过程变慢,因为需要进行许多更新才能将奖励传播到相关的先前状态和动作。

      一种更快地传播奖励的方法是使用n步回报(Watkins, 1989; Peng&Williams, 1996)。在n步Q学习中,朝定义为rt + γrt+1 + … + γn-1rt+n-1 + maxa γnQ(st+n, a)的n步回报更新Q(s, a)。这导致单个奖励 r 直接影响n个先前状态动作对的价值。这使得将奖励传播到相关状态-动作对的过程可能会更加有效。

      与基于价值的方法相反,基于策略的无模型方法直接对策略π(a|s; θ)进行参数化,并通过对E[Rt]执行(通常是近似的)梯度上升来更新参数。这种方法的一个例子是由Williams (1992)提出的REINFORCE算法族。标准REINFORCE在方向上更新策略参数θ,这是的无偏估计。通过从回报中减去状态bt(st)的已知函数(被称为基准),可以减少此估计的方差,同时保持其无偏。所得的梯度为

      通常将学到的价值函数估计用作基准bt(st) ≈ Vπ(st),从而导致更低的策略梯度的方差估计。当近似价值函数用作基准时,用于缩放策略梯度的量Rt - bt可以视为状态st时动作at的优势估计,或者A(at, st) = Q(at, st) - V(st),因为Rt是对Qπ(at, st)的估计,而bt是对Vπ(st)的估计。可以将这种方法视为一种actor-critic结构,其中策略π是actor,基准bt是critic (Sutton&Barto, 1998; Degris et al., 2012)。

    4. Asynchronous RL Framework

      现在,我们介​​绍单步Sarsa,单步Q学习,n步Q学习和A2C的多线程异步变体。设计这些方法的目的是找到能够可靠地训练深度神经网络策略且无需大量资源的RL算法。尽管底层的RL方法有很大的不同,actor-critic是一种同策的策略搜索方法,而Q学习是一种异策的基于价值的方法,但根据我们的设计目标,我们使用两个主要思想使这四种算法切实可行。

      首先,我们使用异步actor学习器,类似于Gorila框架 (Nair et al., 2015),但不是在使用单独的机器和参数服务器,而是在单个机器上使用多个CPU线程。将学习器放在一台机器上可以消除发送梯度和参数的通信成本,并使我们能够使用Hogwild! (Recht et al., 2011)样式更新进行训练。

      其次,我们观察到,并行运行的多个actor学习器可能正在探索环境的不同部分。此外,可以在每个actor学习器中明确使用不同的探索策略,以最大化这种多样性。通过在不同的线程中运行不同的探索策略,并行应用在线更新的多个actor学习器对参数进行的总体改进在时间上的相关性可能比单个智能体在线应用的更新少。因此,我们不使用回放内存,而是依靠采用不同探索策略的并行actor来执行DQN训练算法中由经验回放承担的稳定角色。

      除了稳定学习之外,使用多个并行的actor学习器具有多个实际好处。首先,我们减少了训练时间,训练时间大致与并行actor学习器数量成线性关系。其次,由于我们不再依赖经验回放来稳定学习,因此我们能够使用诸如Sarsa和actor-critic之类的策略强化学习方法来稳定地训练神经网络。现在,我们描述单步Q学习,单步Sarsa,n步Q学习和A2C的变体。

    Asynchronous one-step Q-learning: 算法1中显示了我们的Q学习变体的伪代码(我们称之为异步单步Q学习),每个线程都与自己的环境副本交互,并在每一步计算Q学习损失的梯度。正如DQN训练方法中所提出的,我们使用共享且变化缓慢的目标网络来计算Q学习损失。在应用梯度之前,我们还会在多个时间步骤上累积梯度,这与使用小批量处理类似。这样可以减少多个actor学习器覆盖彼此更新的可能性。在几个步骤上累积更新还提供了一些权衡计算效率与数据效率的能力。

      最后,我们发现为每个线程提供不同的探索策略有助于提高鲁棒性。以这种方式在探索中增加多样性通常也会通过更好的探索来提高性能。尽管有许多可能的方法可以使探索策略有所不同,但我们尝试使用ε-贪婪探索,并通过每个线程定期从某些分布中采样。

    Asynchronous one-step Sarsa: 异步单步Sarsa算法与算法1中给出的异步单步Q学习相同,只是它对Q(s, a)使用不同的目标价值。单步Sarsa使用的目标价值为r + Q(s', a'; θ-),其中a'是在状态s'下采取的动作(Rummery & Niranjan, 1994; Sutton & Barto, 1998)。我们再次使用目标网络,并在多个时间步骤上累积更新以稳定学习。

    Asynchronous n-step Q-learning: 补充算法S2中显示了用于多步Q学习的变体的伪代码。该算法有些不寻常,因为它通过显式计算n步回报而在前向视图中运行,与资格迹等技术所使用的更常见的后向视图相反(Sutton&Barto, 1998)。我们发现,在使用基于动量的方法和时间反向传播训练神经网络时,使用前向视图更容易。为了计算单个更新,该算法首先使用其探索策略选择动作(最多tmax个步骤或直到达到终止状态)。自从上次更新以来,此过程导致智能体从环境中接收最多tmax奖励。然后,该算法为自上次更新以来遇到的每个状态-动作对计算n步Q学习更新的梯度。每个n步更新都使用可能的最长n步回报,从而对最近的状态进行一步更新,对第二近的状态进行两步更新,依此类推,总共进行tmax次更新。累积的更新将在单个梯度步骤中应用。

    Asynchronous advantage actor-critic: 该算法(我们称之为A3C)维护策略π(at|st; θ)和价值函数V(st; θv)的估计。就像我们的n步Q学习的变体一样,我们的actor-critic的变体也在前向视图中运行,并且使用n步回报的相同组合来更新策略和价值函数。策略和价值函数在每tmax个动作之后或达到终止状态时更新。该算法执行的更新可以看作是,其中A(st, at; θ, θv)是对优势函数的估计,其中k可能因状态而异,且以tmax为上限。该算法的伪代码在补充算法S3中提供。

      与基于价值的方法一样,我们依靠并行的actor学习器和积累的更新来提高训练稳定性。请注意,尽管出于一般性考虑,策略的参数θ和价值函数的θv单独显示,但实际上我们总是共享某些参数。我们通常使用卷积神经网络,该神经网络对于策略π(at|st; θ)具有一个softmax输出,对于价值函数V(st; θv)具有一个线性输出,并且共享所有非输出层。

      我们还发现,通过阻止过早收敛到次优确定性策略,可以将策略π的熵添加到目标函数中,从而改进了探索。该技术最初是由(Williams&Peng, 1991)提出的,他发现该技术在需要分层行为的任务中特别有用。包含熵正则项的完整目标函数相对于策略参数的梯度采用,其中H是熵。超参数控制熵正则项的强度。

    Optimization: 我们在异步框架中研究了三种不同的优化算法——具有动量的SGD,没有共享统计信息的RMSProp(Tieleman&Hinton, 2012)和具有共享统计信息的RMSProp。我们使用由下式提供的标准非中心RMSProp更新

    其中所有操作均按元素执行。对Atari 2600游戏的子集进行的比较表明,在不同线程之间共享统计信息g的RMSProp变体比其他两种方法更鲁棒。有关方法和比较的全部详细信息,请参见补充第7节。

    5. Experiments

    5.1. Atari 2600 Games

    5.2. TORCS Car Racing Simulator

    5.3. Continuous Action Control Using the MuJoCo Physics Simulator

    5.4. Labyrinth

    5.5. Scalability and Data Efficiency

    5.6. Robustness and Stability

    6. Conclusions and Discussion

      我们介绍了四种标准强化学习算法的异步版本,并表明它们能够以稳定的方式在各种域上训练神经网络控制器。我们的结果表明,在我们提出的框架中,通过基于价值和基于策略的方法,异策和同策的方法以及离散域和连续域,可以通过强化学习对神经网络进行稳定的训练。当使用16个CPU内核在Atari域上进行训练时,与在Nvidia K40 GPU上进行训练的DQN相比,所提出的异步算法的训练速度更快,其中A3C在一半的训练时间内超过了当前的最新水平。

      我们的主要发现之一是,使用并行actor学习器更新共享模型对我们考虑的三种基于价值的方法的学习过程具有稳定作用。尽管这表明可以在没有经验回放的情况下进行稳定的在线Q学习,这在DQN中已用于此目的,但这并不意味着经验回放没有用。通过将经验回放结合到异步强化学习框架中,可以通过重用旧数据来大大提高这些方法的数据效率。反过来,这可能会导致在TORCS之类的领域中更快的训练时间,在该领域中与环境的交互比为我们使用的结构更新模型要昂贵得多。

      将其他现有的强化学习方法或深度强化学习的最新进展与我们的异步框架结合在一起,可以为我们所提出的方法提供立即改进的许多可能性。虽然我们的n步方法通过直接使用校正的n步回报作为目标而在前向视图中起作用(Sutton&Barto, 1998),但更常见的是使用后向视图通过资格迹来隐式组合不同的回报(Watkins, 1989; Sutton&Barto, 1998; Peng&Williams, 1996)。A3C方法可以通过使用其他优势函数的估计方式(例如Schulman et al., 2015b的广义优势估算)进行改进。我们研究的所有基于价值的方法都可能受益于减少Q值高估偏差的不同方法(Van Hasselt et al., 2015; Bellemare et al., 2016)。另一个更具投机性的方向是尝试将最近在真正的在线TD方法上的工作(van Seijen et al., 2015)与非线性函数近似相结合。

      除了这些算法改进之外,对神经网络结构的许多补充改进也是可能的。(Wang et al., 2015)的对偶架构通过在网络中包含状态价值和优势的独立流,可以产生更精确的Q值估计。(Levine et al., 2015)提出的空间softmax可以通过使网络更容易表示特征坐标来改进基于价值和基于策略的方法。

  • 相关阅读:
    Java内部类
    sql几种连接的区别
    常见的十大算法
    使用yml文件配置数据库数据时的问题
    SpringBoot整合Mybatis
    不是书评 :《我是一只IT小小鸟》
    考试考完了·
    MSSQL站库分离情况的渗透思路
    VENOM cve-2015-3456 Qemu 虚拟机逃逸漏洞POC
    Python 实现指定目录下 删除指定大小的文件
  • 原文地址:https://www.cnblogs.com/lucifer1997/p/13837140.html
Copyright © 2011-2022 走看看