美文网首页
A3C 笔记

A3C 笔记

作者: Junr_0926 | 来源:发表于2018-08-15 23:47 被阅读0次

    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

    算法伪代码
    t_0=0
    目标网络参数\theta_0
    d\theta=0
    s_0=0
    repeat
    根据Q(s, a; \theta)选取a
    得到新的状态s'和reward r
    计算y
    梯度汇聚(不更新参数)
    更新状态,时间
    每过一段时间更新目标网络参数
    每过一段时间异步更新参数
    until T>T_{max}

    要点:

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

    异步one-step Sarsa

    类似于异步one-step Q-learning,只是Q-learning使用r + \lambda max_{a'}Q(s', a'; \theta)来作为target value的估计值,而Sarsa使用r + \lambda Q(s', a'; \theta)

    异步n-step Q-learning

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

    A3C

    A3C,全称:asynchronous advantage actor-critic,算法维护了一个policy \pi (a_t|s_t;\theta) 和一个value function的估计值 V(s_t; \theta_v),与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,作者对比了线程单独维护各自的g和共同维护一个g,更perfer线程各自维护一个g,有些版本也会让所有线程共享一个g,但是异步更新它,并且不加锁

    相关文章

      网友评论

          本文标题:A3C 笔记

          本文链接:https://www.haomeiwen.com/subject/htsgbftx.html