A3C 笔记

Asynchronous Methods for Deep Reinforcement Learning

论文提出了一种在deep neural network控制器的优化中,使用异步梯度下降来训练的方法。

异步RL框架

论文中,作者展示了one-step Sarsa, one-step Q-learning, n-step Q-learning和actor-critic的多线程异步版本。目的是为了寻找RL算法来训练深度的神经网络,同时保证可靠性和降低对资源的需要。
总体思路就是在一台机器上使用多个learner来异步学习,这些不同的learner能够探索环境的不同部分,也可以通过使用不同的探索的策略来最大化这种差异。同时,使用不同的策略使得每一个leaner对参数的梯度的相关性也大大下降。所以也就不需要replay memory(DQN)

异步one-step Q-learning

算法伪代码

目标网络参数


repeat
根据选取a
得到新的状态和reward
计算
梯度汇聚(不更新参数)
更新状态,时间
每过一段时间更新目标网络参数
每过一段时间异步更新参数
until

要点:

  • 类似于DQN,在一段时间后,将当前的网络参数复制到目标网络中国呢
  • 在一段时间后,将梯度求和用于更新网络参数,这样就模仿了minibatch
  • 每一个learner对当前网络的参数的更新是异步的
    diversity to exploration

异步one-step Sarsa

类似于异步one-step Q-learning,只是Q-learning使用来作为target value的估计值,而Sarsa使用

异步n-step Q-learning

与one-step不同,首先算法会根据exploration policy来选择action,知道次或者达到terminal state,因此我们会得到个reward,接着算法会根据这些action, reward二元组,计算相应的梯度,最终进行一次参数的更新,算法伪代码在论文的附录中。

A3C

A3C,全称:asynchronous advantage actor-critic,算法维护了一个policy 和一个value function的估计值 ,与n-step Q-learning类似,该算法同样采用了forward view,同样适用了n-step returns的组合来更新policy 和 value function。

Screen Shot 2018-08-15 at 11.34.45 PM.png

优化算法

对于异步算法,optimization的方法非常重要,论文在附录材料中讨论了momentum SGD和RMSProp
对于 momentum SGD,每一个线程单独维护了 梯度,momentum,用于更新参数
对于RMSProp,作者对比了线程单独维护各自的和共同维护一个,更perfer线程各自维护一个,有些版本也会让所有线程共享一个,但是异步更新它,并且不加锁

你可能感兴趣的:(A3C 笔记)