zoukankan      html  css  js  c++  java
  • 文献笔记:Deterministic Policy Gradient Algorithms

    为什么需要引入决定性策略梯度?

    决定性策略梯度算法对于策略函数的更新形式比较简单,就是action-value函数的期望,这种简单的形式能够在估计policy时变得更有效。

     

    作为随机策略,在相同的策略,在同一个状态处,采用的动作是基于一个概率分布的,即是不确定的。而确定性策略则决定简单点,虽然在同一个状态处,采用的动作概率不同,但是最大概率只有一个,如果我们只取最大概率的动作,去掉这个概率分布,那么就简单多了。即作为确定性策略,相同的策略,在同一个状态处,动作是唯一确定的,即策略变成

    [pi _ { heta } ( s ) = a]

    论文首先回顾了随机策略Policy Gradiet算法以及其函数逼近理论,指出如果满足:

    (1) $Q ^ { w } ( s , a ) = abla _ { heta } log pi _ { heta } ( a | s ) ^ { op } w$。(2)$w$可以最小化MSE损失函数$epsilon ^ { 2 } ( w ) = mathbb { E } _ { s sim ho ^ { pi } , a sim pi _ { heta } } left[ left( Q ^ { w } ( s , a ) - Q ^ { pi } ( s , a ) ight) ^ { 2 } ight]$。则函数估计$Q ^ { w } ( s , a ) approx Q ^ { pi } ( s , a )$是无偏的

     

    对于决定性策略,本文首先给出了策略函数的更新方式,其中$mu_{ heta}(s)$为策略函数

    [ heta ^ { k + 1 } = heta ^ { k } + alpha mathbb { E } _ { s sim ho ^ { mu ^ { k } } } left[ abla _ { heta } Q ^ { mu ^ { k } } left( s , mu _ { heta } ( s ) ight) ight]]

    运用链式法则,上式可以改写成:

    [ heta ^ { k + 1 } = heta ^ { k } + alpha mathbb { E } _ { s sim ho ^ { mu ^ { k } } } left[ abla _ { heta } mu _ { heta } ( s ) abla _ { a } Q ^ { mu ^ { k } } left. ( s , a ) ight| _ { a = mu _ { heta } ( s ) } ight]]

    随后论文3.2部分给出了上述策略函数更新的理论证明,记$ ho_{mu}(s)$表示由策略$mu_{theta}(s)$生成的平稳分布,则优化目标可以写为:

    egin{aligned} J left( mu _ { heta } ight) & = int _ { mathcal { S } } ho ^ { mu } ( s ) r left( s , mu _ { heta } ( s ) ight) mathrm { d } s \ & = mathbb { E } _ { s sim ho ^ { mu } } left[ r left( s , mu _ { heta } ( s ) ight) ight] end{aligned}

    (上式的个人理解表示平均一步回报)

    该证明与策略梯度函数逼近论文Policy Gradient Methods for Reinforcement Learning with Function Approximation证明类似,表明了目标函数梯度不涉及平稳分布函数导数的计算。具体的定理形式为: 

    作者首先给出了On policy的DPG算法:

     egin{aligned} delta _ { t } & = r _ { t } + gamma Q ^ { w } left( s _ { t + 1 } , a _ { t + 1 } ight) - Q ^ { w } left( s _ { t } , a _ { t } ight) \ w _ { t + 1 } & = w _ { t } + alpha _ { w } delta _ { t } abla _ { w } Q ^ { w } left( s _ { t } , a _ { t } ight) \ heta _ { t + 1 } & = heta _ { t } + alpha _ { heta } abla _ { heta } mu _ { heta } left( s _ { t } ight) abla _ { a } Q ^ { w } left. left( s _ { t } , a _ { t } ight) ight| _ { a = mu _ { heta } ( s ) } end{aligned}

    其中$w$是针对$Q$的估计函数$Q^w$的参数,其更新的准则是根据MSE计算出来的。$ heta$是策略函数$mu_{ heta}$的参数。

    其后论文又给出了off-policy的DPG算法,其中我们所希望评估的策略函数为$mu_{ heta}$,为了进行探索而实际采用的策略函数为$eta$,记$ ho^{eta}(s)$表示由策略$eta$生成的平稳分布,则准则函数可以写成:

    egin{aligned} abla _ { heta } J _ { eta } left( mu _ { heta } ight) & approx int _ { mathcal { S } } ho ^ { eta } ( s ) abla _ { heta } mu _ { heta } ( a | s ) Q ^ { mu } ( s , a ) mathrm { d } s \ & = mathbb { E } _ { s sim ho ^ { eta } } left[ abla _ { heta } mu _ { heta } ( s ) abla _ { a } Q ^ { mu } left. ( s , a ) ight| _ { a = mu _ { heta } ( s ) } ight] end{aligned}

     注意到对于决定性策略,不存在选择策略的概率这一表达,因此,在更新过程中可以避免传统的基于概率的重要性采样计算,所以算法可以表述成下面形式:

    egin{aligned} delta _ { t } & = r _ { t } + gamma Q ^ { w } left( s _ { t + 1 } , mu _ { heta } left( s _ { t + 1 } ight) ight) - Q ^ { w } left( s _ { t } , a _ { t } ight) \ w _ { t + 1 } & = w _ { t } + alpha _ { w } delta _ { t } abla _ { w } Q ^ { w } left( s _ { t } , a _ { t } ight) \ heta _ { t + 1 } & = heta _ { t } + alpha _ { heta } abla _ { heta } mu _ { heta } left( s _ { t } ight) abla _ { a } Q ^ { w } left. left( s _ { t } , a _ { t } ight) ight| _ { a = mu _ { heta } ( s ) } end{aligned}

    最后,论文给出了DPG的采用线性函数逼近定理,以及在线性逼近下加入baseline的更新算法,以及拓展到MSPBE(即采用二次损失函数,梯度时序差分算法)的更新算法。

  • 相关阅读:
    子查询
    多表连接
    类型转换和其他函数
    亲测!Jquery2.0不支持IE8-了
    Sass结合Modernizr的使用方法
    子元素绝对定位撑不开父元素的解决方法
    ajax withCredentials在firefox下问题的解释
    记录遇到的IE8兼容性问题汇总
    对于requirejs AMD模块加载的理解
    requirejs 小结
  • 原文地址:https://www.cnblogs.com/statruidong/p/10765579.html
Copyright © 2011-2022 走看看