zoukankan      html  css  js  c++  java
  • 文献笔记:Policy Gradient Methods for Reinforcement Learning with Function Approximation

    本篇论文讨论了策略梯度方法的函数逼近问题。首先明确策略梯度的目标函数:最大化策略$pi$下的累计回报$ ho(pi)$

    [ ho ( pi ) = E left{ sum _ { t = 1 } ^ { infty } gamma ^ { t - 1 } r _ { t } | s _ { 0 } , pi ight}]

    上式是初始状态为$s_0$的累计回报表达式,事实上,还可以利用策略生成的平稳状态分布$d^pi(s)$对$ ho(pi)$进行加权:

    [ ho ( pi ) = lim _ { n ightarrow infty } frac { 1 } { n } E left{ r _ { 1 } + r _ { 2 } + cdots + r _ { n } | pi ight} = sum _ { s } d ^ { pi } ( s ) sum _ { a } pi ( s , a ) mathcal { R } _ { s } ^ { a }]

    为了改进策略,我们希望能够按照$ ho(pi)$的正梯度方向对$pi$函数进行更新。假设$ heta$是策略函数$pi$的参数,本文的第一个基本结论为,无论上面哪种形式的$ ho(pi)$,其梯度都可以被表示为:

    [frac { partial ho } { partial heta } = sum _ { s } d ^ { pi } ( s ) sum _ { a } frac { partial pi ( s , a ) } { partial heta } Q ^ { pi } ( s , a )]

    该结论表明$ ho(pi)$的梯度不涉及$frac { partial d ^ { pi } ( s ) } { partial heta }$项,而$d ^ { pi } ( s )$是可以通过蒙特卡洛模拟得到的,这将为策略梯度方法的计算提供了极大的便利。

    本文的结论2则解决了针对策略梯度的实际计算问题。假设$f_w$是$Q^pi(s,a)$的一个估计,w是逼近器$f_w$的参数,则w的更新方向为:

    [Delta w _ { t } propto frac { partial } { partial w } left[ hat { Q } ^ { pi } left( s _ { t } , a _ { t } ight) - ight.f _ { w } left( s _ { t } , a _ { t } ight) ] ^ { 2 } propto left[ hat { Q } ^ { pi } left( s _ { t } , a _ { t } ight) - f _ { w } left( s _ { t } , a _ { t } ight) ight] frac { partial f _ { w } left( s _ { t } , a _ { t } ight) } { partial w }]

    当$f_w$达到局部最优时,应该有:

    [sum _ { s } d ^ { pi } ( s ) sum _ { a } frac { partial pi ( s , a ) } { partial heta } left[ Q ^ { pi } ( s , a ) - f _ { w } ( s , a ) ight] = 0]

    结论2表明如果满足:

    [frac { partial f _ { w } ( s , a ) } { partial w } = frac { partial pi ( s , a ) } { partial heta } frac { 1 } { pi ( s , a ) }]

    则有:

    [frac { partial ho } { partial heta } = sum _ { s } d ^ { pi } ( s ) sum _ { a } frac { partial pi ( s , a ) } { partial heta } f _ { w } ( s , a )]

    这样就通过一个对$Q^pi(s,a)$的估计函数$f_w$实现了策略梯度的实际计算。

    为了满足$frac { partial f _ { w } ( s , a ) } { partial w } = frac { partial pi ( s , a ) } { partial heta } frac { 1 } { pi ( s , a ) }$,本文说明可以通过对$pi(s,a)$与$f_w(s,a)$的合理构造进行保证,如:

    [pi ( s , a ) = frac { e ^ { heta ^ { T } phi _ { s a } } } { sum _ { b } e ^ { heta ^ { T } phi _ { s b } } }]

    [frac { partial f _ { w } ( s , a ) } { partial w } = frac { partial pi ( s , a ) } { partial heta } frac { 1 } { pi ( s , a ) } = phi _ { s a } - sum _ { b } pi ( s , b ) phi _ { s b }]

    [f _ { w } ( s , a ) = w ^ { T } left[ phi _ { s a } - sum _ { b } pi ( s , b ) phi _ { s b } ight]]

    上面的构造表明了,本文的算法是$f_w(s,a)$关于针对状态s特征函数的线性逼),但是$pi(s,a)$函数的选取则可以是多种多样的,可以采用复杂的非线性形式,只要根据上面的式子重新推导即可。

     

    最后,本文给出了结论3,表明算法的收敛性,即:

    [lim _ { k ightarrow infty } frac { partial ho left( pi _ { k } ight) } { partial heta } = 0]

     

  • 相关阅读:
    mybatis公用代码抽取到单独的mapper.xml文件
    mysql与oracle常用函数及数据类型对比00持续补充
    人民币在岸 离岸 中间价的含义与关系
    mysql hang and srv_error_monitor_thread using 100% cpu(已解决)
    long和BigDecimal引发的管理思考
    mybatis 3的TypeHandler深入解析(及null值的处理)
    mysql 5.7.17发布
    rabbitmq connection/channel/consumer/queue的数量关系详细分析
    rabbitMQ publish丢包分析
    INFO: task java:27465 blocked for more than 120 seconds不一定是cache太大的问题
  • 原文地址:https://www.cnblogs.com/statruidong/p/10663988.html
Copyright © 2011-2022 走看看