【强化学习】Asynchronous Methods for Deep Reinforcement Learning论文笔记

论文链接:[1602.01783] Asynchronous Methods for Deep Reinforcement Learning (arxiv.org)

[Submitted on 4 Feb 2016 (v1), last revised 16 Jun 2016 (this version, v2)]

hello大家好,这里是喵一只电子喵,今天来读强化学习的论文~

摘要

本篇论文使用异步梯度下降优化深度神经网络控制器,主要提出了四种标准强化学习算法的异步变体:异步单步Q-learning,异步单步Sarsa, 异步n步Q-learning和A3C。性能最好的方法是actor-critic的异步变体,在单多核CPU而不是GPU上训练一半时间的同时,超过了目前Atari领域的最先进技术。此外,我们还展示了A2C成功地解决了一系列连续的电机控制问题,以及使用视觉输入导航随机3D迷宫的新任务。

一.introduction

我们在环境的多个实例上,实行异步并行多个agent,而不是经验回放。这种并行性还将agent的数据剥离到一个更平稳的过程中,因为在任何给定的时间步长( time-step),并行agent将经历各种不同的状态。这个简单的想法使得更广泛的on-policy RL算法成为可能,如Sarsa n步方法,和AC方法,以及off-policy RL算法,如Q-learning,能够被使用深度神经网络稳健而有效地应用。

---------------------------------------------------------------------------------------------------------------------------------

  • 异步并行多个代理侧重于通过并行化多个代理的探索来加快数据收集和提高数据多样性。
  • 经验回放侧重于通过重用和随机采样过去的经历来提高数据使用效率和训练的稳定性。

 二.Related work

早期工作并行性用于加速大矩阵运算,而不是用于并行化经验的收集或稳定学习。

三.Background

  1. policy-based

  2. value-based

  3. actor-critic

四.Asynchronous RL Framework

我们现在提出单步Sarsa,单步Q-learning,n步Q−learning,和advantage actor-critic 的多线程异步变体。设计这些方法的目的是找到能够可靠地训练深度神经网络策略且不需要大量资源的RL算法。虽然底层的RL方法是非常不同的,actor-critic是一个on−policy 的策略搜索方法,而Q-learning是一个基于价值的 off−policy 方法,我们使用两个主要思想来使所有四种算法在我们的设计目标下都是实用的。

On-Policy

  1. 定义

    • On-policy方法在学习策略时,使用的是当前策略(即正在执行的策略)。也就是说,代理在环境中执行的动作和用于学习的经验是基于同一个策略。
  2. 特点

    • 策略一致性:数据收集和策略更新使用的是相同的策略。
    • 稳定性:由于策略一致,更新过程较为平滑,适用于策略迭代。
  3. 典型算法

    • SARSA(State-Action-Reward-State-Action):这是一个典型的on-policy算法。在每一步更新中,使用当前策略选择的动作来更新Q值。
    • Policy Gradient Methods:这些方法通过梯度上升来直接优化策略,包括REINFORCE算法和Actor-Critic方法中的A2C(Advantage Actor-Critic)。
  4. 优缺点

    • 优点:更具稳定性,因为策略更新时不需要考虑策略变化。
    • 缺点:可能会陷入局部最优,因为只探索当前策略。

Off-Policy

  1. 定义

    • Off-policy方法在学习策略时,使用的是不同于当前策略的策略。也就是说,代理在环境中执行的动作可能是基于一个行为策略(behavior policy),而更新策略是基于一个目标策略(target policy)。
  2. 特点

    • 策略不一致性:数据收集和策略更新使用的是不同的策略。
    • 灵活性:允许在策略更新时使用其他策略收集的数据。
  3. 典型算法

    • Q-learning:这是一个典型的off-policy算法。它使用ε-greedy策略来收集数据,但更新时使用的是greedy策略。
    • DQN(Deep Q-Network):在深度学习和Q-learning结合的基础上,通过经验回放和目标网络来稳定训练过程。
  4. 优缺点

    • 优点:可以利用更多的数据(包括历史数据和其他策略的数据),更高效地学习。
    • 缺点:由于策略不一致,可能会导致训练过程中的不稳定性,需要更多的技巧(如经验回放、目标网络)来稳定训练。

 1.异步单步Q-learning-伪代码

首先,单步Q-learning是一种基于价值的方法,它通过迭代更新来逼近最优的动作价值函数 Q∗(s,a)Q∗(s,a)。在每一步中,单步Q-learning使用当前状态 s和动作 a以及从环境中获得的即时奖励 r 和下一个状态 s′来更新 Q(s,a)的估计值。更新规则通常如下所示: Q(s,a)←Q(s,a)+α[r+γmax⁡a′Q(s′,a′)−Q(s,a)]其中,α 是学习率,γ 是折扣因子。这种方法的一个缺点是,它仅使用一步的回报来更新当前的状态-动作对,这可能导致学习过程较慢,因为奖励信号需要很多步骤才能传播到序列中较早的状态-动作对。相对于单步Q-learning,异步单步Q-learning则是一种并行化的Q学习算法,它允许多个智能体(或actor-learners)同时与环境交互,并更新共享的Q网络。每个智能体在自己的环境中执行动作,并根据获得的奖励和观察到的状态来计算梯度,然后异步地更新全局的Q网络。这种方法的优势在于可以利用多个CPU核心来加速学习过程,同时通过并行化的探索来提高学习效率和稳定性 。

每个线程与它自己的环境副本交互,并在每一步计算Q-learning损失的梯度。我们使用共享且变化缓慢的目标网络来计算Q-learning损失,正如 DQN 训练方法中提出的那样。我们还在应用梯度之前在多个时间步上累积梯度,这与使用小批量类似。最后,我们发现给每个线程一个不同的探索策略有助于提高鲁棒性。以这种方式增加探索的多样性通常也会通过更好的探索方式提高性能。

2.异步单步Sarsa-伪代码

异步单步Sarsa算法与算法1中给出的异步单步Q-learning相同,只是对 Q(s,a) 使用了不同的目标值。单步Sarsa使用的目标值为r+\gamma Q(s{}',a{}';\theta-)

下图是Q-learing和Sarsa区别:(图来自莫烦老师的视频)

3. 异步n步Q-learning-伪代码

n步Q-learning是一种基于价值的方法,它通过迭代更新来逼近最优的动作价值函数 Q∗(s,a)。在n步Q-learning中,更新 Q(s,a)的估计不是基于单步回报,而是基于n步回报。这意味着它会收集并使用一系列的奖励和下一个n步状态的值来更新当前状态的动作价值函数。更新规则可以表示为 Q(st,at)←Q(st,at)+α[Gt(n)−Q(st,at)],其中 Gt(n)​ 表示从时间步t开始的n步回报 。

为了计算一次更新,算法首先使用它的探索策略选择至多tmax步的动作,或者直到到达一个终端状态。这个过程的结果是,自上次更新以来,agent 从环境中获得最多 tmax步的回报。自上次更新以来,该算法计算n步Q-learning的梯度来更新遇到的每个状态-动作对。每一个n步更新尽可能地使用最长的n步回报,导致最后的状态进行一个单步的更新,最后第二个状态进行两步更新,依此类推,直到总数达到tmax步的更新累积的更新应用在一个独立的梯度步。

4.A3C-伪代码

具体步骤总结:

  1. 每个worker从global network复制参数
  2. 不同的worker与环境去做互动
  3. 不同的worker计算出各自的gradient
  4. 不同的worker把各自的gradient传回给global network
  5. global network接收到gradient后进行参数更新

五、conclusion and discussion

我们的结果表明,在我们提出的框架中,通过强化学习对神经网络进行稳定训练是可能的,包括基于价值和基于策略的方法,off-policy和on-policy的方法,以及在离散和连续领域。在Atari领域使用16个CPU核进行训练时,提出的异步算法的训练速度比在Nvidia K40 GPU上训练的DQN快,而A3C仅用一半的训练时间就超过了目前最先进的算法。将经验回放整合到异步强化学习框架中,可以通过重用旧数据大大提高这些方法的数据效率。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值