深度强化学习系列(14): A3C算法原理及Tensorflow实现

在DQN、DDPG算法中均用到了一个非常重要的思想经验回放,而使用经验回放的一个重要原因就是打乱数据之间的相关性,使得强化学习的序列满足独立同分布。

本文首先从Google于ICML2016顶会上发的论文《Asynchronous Methods for Deep Reinforcement Learning》解读开始,点击查看原始论文,里面的其中一大牛作者是David Sliver(看他的课入坑的),先放个论文照片!
这里写图片描述

从论文title中就可以看出是关于Asynchronous method的内容,而且文章开头摘要中提出了一种轻量级的异步学习框架,这种框架使用了异步梯度下降来最优化神经网络。原文是:“asynchronously execute multiple agents in parallel,” 的意思,在四中不同的算法使用了多个acotr-learner ,最终能够稳定的收敛。另外在Atar、TORCS游戏以及连续性动作空间的Mujoco上均取得不错的效果。这里面最大的功劳在于他们使用了CPU多核属性,也可以说高效率的使用了计算资源。

先说第一个问题:

DQN、DDPG算法使用的experience replay(经验重放),可以说是解决了强化学习满足独立同分布的问题,然而有优点点的背后也是有代价的,就是它使用了更多的资源和每次交互过程的计算,并且他需要一个off-policy学习算法去更新由旧策略产生的数据(experience replay has several drawbacks: it uses more memory and computation per real interaction; and it requires off-policy learning algorithms that can update from data generated by an older policy.)

于是作者就提出了“在多个环境实例上并行地异步执行多个智能体(asynchronously execute multiple agents in parallel, on multiple instances of the environment)”的概念,它的优点在于不像传统方法使用GPU或者大规模的分布式(massively distributed architectures)进行计算,而是运行在一个**“多核CPU单机”上,这为普通玩家(我)带来的更多的福利。让我们更震惊的就是处理同样的任务,异步的A3C**算法(后文讲解)取得了同样甚至超越的效果,而且代价就是训练的时间更短…

至于related work部分不详述,感兴趣的请自行阅读原文。

基于值函数的无模型强化学习中,通常使用神经网络作为一个逼近器来近似值函数
Q ( s , a ) ≈ Q ( s , a , θ ) Q(s,a) \approx Q(s,a,\theta) Q(s,a)Q(s,a,θ)
在one-step Q-learning 中,朝着 one-step return 的方向去更新 Q(s, a)。但是利用 one-step 方法的缺陷在于:得到一个奖励 r 仅仅直接影响了得到该奖励的状态动作对 (s, a) 的值(obtain a reward r only directly affects the value of the state action pairs s, a that led to the reward)。其他 state action pairs的值仅仅间接的通过更新 value Q(s, a) 来影响。这就使得学习过程缓慢(耗时的原因啊),因为许多更新都需要传播一个 reward 给相关进行的 states 和 actions。一种快速的传播奖赏的方法是利用 n-step returns。 在 n-step Q-learning 中,Q(s, a) 是朝向 n-step return 进行更新。这样就使得一个奖赏 r 直接地影响了 n 个正在进行的 state action pairs 的值。这也使得给相关 state-action pairs 的奖赏传播更加有效。在 n-step Q-learning 过程中,Q(s, a) 是朝向 n-step return 定义为:
r t + γ r t + 1 + . . . + γ ( n − 1 ) r t + n − 1 + max ⁡ a γ n Q ( s t + n , a ) r_{t}+\gamma r_{t+1}+...+\gamma^{(n-1)}r_{t+n−1}+\max_{a}\gamma ^{n}Q(s_{t+n},a) rt+γrt+1+...+γ(n1)rt+n1+amaxγnQ(st+n,a)
这个结果在一次奖赏 r 直接影响了 n 个后续状态动作对(n proceding state action pairs).这就使得传递奖赏的过程变得非常有效。对比 value-based methods, policy-based model-free methods 直接参数化策略 π ( a ∣ s ; θ ) \pi(a|s;\theta) π(as;θ) 并通过执行 $E[R_{t}] $梯度下降来更新参数。

通常情况标准的强化学习更新策略参数 θ \theta θ的时候通常是在其策略梯度的方向 ∇ θ log ⁡ π ( a t ∣ s t ; θ ) R t \nabla_{\theta}\log \pi(a_{t}|s_{t};\theta)R_{t} θlogπ(atst;θ)Rt,并且 ∇ θ E [ R t ] \nabla_{\theta}E[R_{t}] θE[Rt] 是无偏估计,通过从return减去被称为基线状态 b t ( s t ) b_{t}(s_{t}) bt(st的学习函数,可以减小该估计的方差,同时保持其无偏。 得到的梯度是 ∇ θ log ⁡ π ( a t ∣ s t ; θ ) ( R t − b t ) \nabla_{\theta}\log \pi(a_{t}|s_{t};\theta)(R_{t}-b_{t}) θlo

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@RichardWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值