Policy Gradient

  • Post author:
  • Post category:其他


本文档记录了一些国内外大学关于 policy gradient 相关内容的介绍及个人总结

*

http://home.deib.polimi.it/restelli/MyWebSite/pdf/rl7.pdf


*

http://www0.cs.ucl.ac.uk/staff/D.Silver/web/Teaching_files/pg.pdf


*

http://lamda.nju.edu.cn/yuy/GetFile.aspx?File=adl-rl/ADL-RL.pdf


*

http://mi.eng.cam.ac.uk/~mg436/LectureSlides/MLSALT7/L5.pdf


*

https://www.scss.tcd.ie/~luzs/t/cs7032/td-notes.pdf


*

http://incompleteideas.net/book/bookdraft2017nov5.pdf

方法 值函数 策略
Value-based 对值函数进行估计 隐含的
Policy-based 无值函数 对策略进行估计
Actor-critic 对值函数进行估计 对策略进行估计

简介

  • 值函数估计,如 Q-Learning、Sarsa 等,可以学到一个近似确定的策略,但是收敛速度会比较慢。
  • policy gradient 是自然语言处理领域应用较多的一种强化学习方法,它的优化目标为给定策略











    π








    θ









    (


    a




    |




    s


    )











    ,找出最合适的








    θ













    • 评价策略











      π








      θ

























      J




      (


      θ




      )


      =














      S









      μ


      (


      s


      )





      V










      π




      (


      θ




      )









      (


      s


      )


      d




      s


      =














      S












      d













      π








      θ
















      (


      s


      )














      A







      π




      (


      a




      |




      s


      )


      R


      (


      s


      ,


      a


      )


      d




      a


      d




      s









      其中











      d










      π




      (


      θ




      )


















      为策略








      π




      (


      θ




      )











      平稳分布。

    • 参数更新:











      θ













      π























      =





      θ








      π









      +


      α






      d




      J




      (


      θ




      )








      d




      θ





















      |










      θ




      =





      θ










      π

























  • 与理论上可以达到最优策略的值函数估计相比,policy gradient 常常得到的是

    局部极小值

Policy Gradient Methods

Finite Difference Methods (FD)

  • 特点

    • black-box
    • 简单
    • 易受噪音干扰
    • 效率较低
    • 即使策略不可微分也适用
  • 主要思想:对目标函数参数








    θ













    各个维度分别求偏导












    • u






      k


















      :第








      k













      维为 1 的单位向量









    • ϵ












      :步长
    • 更新策略:








      Δ





      θ








      k









      =


      ϵ





      u






      k























      Δ





      J








      k









      =









      J




      (


      θ




      )










      θ








      k



























      J




      (


      θ




      +


      ϵ





      u






      k









      )





      J




      (


      θ




      )







      ϵ






























      g








      F




      D









      =


      (


      Δ





      Θ














      Δ


      Θ





      )











      1









      Δ





      Θ














      Δ


      J











Likelihood Ratio Methods

  • 特点

    • white-box
    • 加入探索(随机因素)的策略
    • 充分利用策略的相关知识
    • 假设策略梯度已知
  • 主要思想:基于已知的策略梯度进行计算









    τ













    是什么???一条采样轨迹???

    • 策略的目标函数(评价策略):








      J




      (


      θ




      )


      =


















      ?
















      p






      θ









      (


      τ






      |




      π




      )


      R


      (


      τ




      )


      d




      τ











    • 目标函数的梯度:


















      θ









      J




      (


      θ




      )


      =












      θ

























      ?
















      p






      θ









      (


      τ






      |




      π




      )


      R


      (


      τ




      )


      d




      τ




      =


















      ?























      θ












      p






      θ









      (


      τ






      |




      π




      )


      R


      (


      τ




      )


      d




      τ











      其中:


















      θ












      p






      θ









      (


      τ






      |




      π




      )


      =





      p






      θ









      (


      τ






      |




      π




      )












      θ









      log







      p






      θ









      (


      τ






      |




      π




      )









      代入,有:




















      θ









      J




      (


      θ




      )


      =


















      ?
















      p






      θ









      (


      τ






      |




      π




      )












      θ









      log







      p






      θ









      (


      τ






      |




      π




      )


      R


      (


      τ




      )


      d




      τ




      =




      ?




      [












      θ









      log







      p






      θ









      (


      τ






      |




      π




      )


      R


      (


      τ




      )


      ]








      1






      K



























      k




      =


      1








      K



















      θ









      log











      p






      θ









      (





      τ








      k











      |




      π




      )


      R


      (





      τ








      k









      )













      得到上式,可以发现只要通过采样就能够计算出目标函数的梯度了。对于采样得到的轨迹








      τ













      的概率











      p






      θ









      (


      τ




      )











      ,有:











      p






      θ









      (


      τ




      )


      =


      μ


      (





      s






      1







      )














      t




      =


      1








      T









      P


      (





      s








      t




      +


      1











      |







      s






      t









      ,





      a






      t









      )





      π








      θ









      (





      a






      t











      |







      s






      t









      )









      对上式取对数,由于








      μ


      (





      s






      1







      )




















      P


      (





      s








      t




      +


      1











      |







      s






      t









      ,





      a






      t









      )











      是确定的,可以得到:








      log







      p






      θ









      (


      τ




      )


      =














      t




      =


      1








      T









      log







      π








      θ









      (





      a






      t











      |







      s






      t









      )


      +


      const









      求导可得:


















      θ









      log







      p






      θ









      (


      τ




      )


      =














      t




      =


      1








      T



















      θ









      log







      π








      θ









      (





      a






      t











      |







      s






      t









      )









  • Characteristics Eligibility:在之前采样轨迹的梯度的基础上形式化定义如下:


















    θ









    log







    π








    θ









    (


    a




    |




    s


    )









    • Softmax Policy

      对状态-动作对定义了特征向量








      ϕ


      (


      s


      ,


      a


      )











      ,对应的策略为











      π








      θ









      (


      s


      ,


      a


      )








      e








      ϕ


      (


      s


      ,


      a





      )














      θ




















      ,有:


















      θ









      log







      π








      θ









      (


      a




      |




      s


      )


      =


      ϕ


      (


      s


      ,


      a


      )










      ?













      π








      θ
















      [


      ϕ


      (


      s


      ,





      )


      ]









    • 高斯策略

      用于

      连续动作空间

      ,定义了状态的特征向量








      ϕ


      (


      s


      )











      ,方差可以是固定值也可以是参数化的,如固定为











      σ








      2
















      ,则动作满足所定义的高斯分布








      a














      (


      μ


      (


      s


      )


      ,


      σ




      )











      ,有:


















      θ









      log







      π








      θ









      (


      a




      |




      s


      )


      =






      (


      a





      μ


      (


      s


      )


      )


      ϕ


      (


      s


      )










      σ








      2

























  • Policy Gradients Theorem

    • One-Step MDPs

      回到最初定义如何评价策略











      π








      θ


















      的地方,将其从连续动作、连续状态空间替换为离散的,并加入约束条件:









      • s





        d




        (





        )











        :初始状态即为稳态
      • 在一个 time-step 之后结束,奖励为:








        r




        =


        R


        (


        s


        ,


        a


        )










      在这样的 One-Step MDPs 中,策略的目标函数为:








      J




      (


      θ




      )


      =







      ?













      π








      θ
















      [


      r




      ]


      =












      S









      d




      (


      s


      )












      A












      π








      θ











      (


      a




      |




      s


      )


      R


      (


      s


      ,


      a


      )









      与之前求导方式类似,能够得到 One-Steps MDPs 目标函数的梯度:


















      θ









      J




      (


      θ




      )


      =




      ?




      [












      θ









      log







      π








      θ









      (


      a




      |




      s


      )


      r




      ]









    • Multi-Steps MDPs

      将 One-Step MDPs 中立即反馈的奖赏更改为长期的值函数











      Q






      π









      (


      s


      ,


      a


      )










    • Policy Gradients Theorem

      对于任何

      可微分

      策略











      π








      θ









      (


      a


      ,


      s


      )











      ,其任何目标函数








      J





















      • J




        =





        J








        1
























      • J




        =





        J










        a


        v


        R


















        ???








      • J




        =





        1







        1





        γ



















        J










        a


        v


        V




















        ???

      对应的策略梯度为:


















      θ









      J




      (


      θ




      )


      =







      ?













      π








      θ
















      [












      θ









      log







      π








      θ









      (


      a




      |




      s


      )





      Q











      π








      θ
















      (


      s


      ,


      a


      )


      ]









    Monte-Carlo Policy Gradient












    • v






      t


















      :对











      Q











      π








      θ

























      的无偏

      采样

    算法

    def REINFORCE():
        theta.init_random()
        for all episodes {s[1],a[1],r[2],...,s[T-1],a[T-1],r[T]~pi}:
            for t in range(1,T):
                theta.update(alpha,pi,a[t],s[t],v[t])
        return theta

    根据如下公式对参数进行更新:








    θ







    θ




    +


    α












    θ









    log







    π








    θ









    (





    a






    t











    |







    s






    t









    )





    v






    t
















    存在问题

    • 不稳定,方差过大

    Actor-Critic Policy Gradient

    • 特点

      为了解决 MCPG 中方差过大的问题,引入 critic 对状态-动作对值函数进行近似估计











      Q






      w







      (


      s


      ,


      a


      )








      Q











      π








      θ















      w







      (


      s


      ,


      a


      )









    • 参数集合

      • critic 评估:更新状态-动作值函数参数








        w










      • actor (所选的)效果提升:在 critic 建议的方向上更新策略参数









        θ













    基于状态-动作对 critic 的 actor-critic 算法

    • 主要思想:借助时序差分的思想,状态-动作对值函数为特征向量的线性组合(与 softmax policy 类似)











      Q






      w







      (


      s


      ,


      a


      )


      =


      ϕ


      (


      s


      ,


      a





      )














      w










    • 算法:

      个人感觉比较像值函数估计中的异策略算法 Q-Learning,发现国内版本(ref:俞扬)和国外的版本不太一样,而且感觉国外版本的有点问题,所以这里参考俞扬老师的版本

      def QAC():
          theta.init()
          state.init()
          for all step: # 什么时候停止???
              action = pi_epsilon.sample(state)
              state_dot, reward = action.do()
              action_dot = pi.sample(state_dot)
              delta.update(w,reward,state_dot,action_dot,state,action)
              theta.update(w,state,action) # 此步更新的是 pi,不是 pi_epsilon
              w.update(alpha,delta,state,action)
              state = state_dot
              action = action_dot









      δ




















      θ






















      w











      的更新函数分别如下:









      δ


      =


      r




      +


      γ







      Q






      w







      (





      s














      ,





      a














      )








      Q






      w







      (


      s


      ,


      a


      )

















      θ




      =


      θ




      +


      α












      θ









      log







      π








      θ









      (


      s


      ,


      a


      )





      Q






      w







      (


      s


      ,


      a


      )
















      w


      =


      w


      +


      α


      δ


      π




      (


      s


      ,


      a


      )









    Compatible Function Approximation

    Action-Critic 算法虽然能够解决 MCPG 方差过大的问题,但对策略的估计依然是有偏的,需要借助于

    准确的

    policy gradient 选择合适的

    动作值函数

    来解决这一问题。

    • Compatible Function Approximation Theorem

      • 约束条件 1:值函数的近似与策略

        兼容

        (???梯度相等叫兼容)


















        w










        Q






        w







        (


        s


        ,


        a


        )


        =












        θ









        log







        π








        θ









        (


        a




        |




        s


        )









      • 约束条件 2:借助于参数








        w











        能够最小化近似值函数与策略对应真实的值函数之间的均方误差









        ϵ


        =







        ?













        π








        θ
















        [


        (





        Q











        π








        θ
















        (


        s


        ,


        a


        )








        Q






        w







        (


        s


        ,


        a


        )





        )






        2







        ]










      满足以上两个约束条件时,通过对








      ϵ











      求导在极值点可得 Action-Critic 的策略梯度为:


















      θ

















      ?













      π








      θ
















      [












      θ









      log







      π








      θ









      (


      a




      |




      s


      )





      Q






      w







      (


      s


      ,


      a


      )


      ]









    Advantage Function Critic

    Action-Critic 中另一种解决方差过大的方法是引入 baseline function,该函数不改变原目标函数梯度,即:













    ?













    π








    θ
















    [












    θ









    log







    π








    θ









    (


    s


    ,


    a


    )


    B


    (


    s


    )


    ]


    =














    s





    S














    d













    π








    θ









    (


    s


    )



















    a

















    θ












    π








    θ









    (


    s


    ,


    a


    )


    B


    (


    s


    )


    =














    s





    S














    d













    π








    θ









    (


    s


    )









    B


    (


    s


    )












    a

















    θ












    π








    θ









    (


    s


    ,


    a


    )


    =


    0









    可以将状态值函数











    V













    π








    θ
















    (


    s


    )











    作为 baseline function,则策略梯度改写为:


















    θ









    J




    (


    θ




    )


    =







    ?













    π








    θ
















    [












    θ









    log







    π








    θ









    (


    a




    |




    s


    )


    (





    Q











    π








    θ
















    (


    s


    ,


    a


    )








    V













    π








    θ
















    (


    s


    )


    )


    ]









    其中











    A











    π








    θ
















    (


    s


    ,


    a


    )


    =





    Q











    π








    θ
















    (


    s


    ,


    a


    )








    V













    π








    θ
















    (


    s


    )











    称为 Advantage Function,此时如果希望能够得到准确的策略梯度,不仅需要对状态-动作对值函数











    Q











    π








    θ
















    (


    s


    ,


    a


    )











    进行指导,同时需要引入对状态值函数的指导参数








    v











    ,可以得到 Advantage Function 的近似估计:









    A


    (


    s


    ,


    a


    )


    =





    Q






    w







    (


    s


    ,


    a


    )








    V








    v







    (


    s


    )










    类似于之前仅依赖于








    Q











    的模型一样借助

    时序差分学习

    的思想对两个值函数进行更新,对应的误差为:












    δ











    π








    θ
















    =


    r




    +


    γ







    V













    π








    θ
















    (





    s














    )








    V













    π








    θ
















    (


    s


    )










    该误差的期望为:













    ?













    π








    θ
















    [





    δ











    π








    θ


















    |




    s


    ,


    a


    ]


    =







    ?













    π








    θ
















    [


    r




    +


    γ







    V













    π








    θ
















    (





    s














    )


    ]








    V













    π








    θ
















    (


    s


    )


    =





    Q











    π








    θ
















    (


    s


    ,


    a


    )








    V













    π








    θ
















    (


    s


    )









    可以看出在时序差分学习中误差的期望即为 Advantage Function,所以也可以将策略梯度写为


















    θ









    J




    (


    θ




    )


    =







    ?













    π








    θ
















    [












    θ









    log







    π








    θ









    (


    a




    |




    s


    )





    δ











    π








    θ
















    ]











    ,由于











    δ











    π








    θ

























    仅与状态值函数











    V













    π








    θ

























    相关,所以实际上只要对通过








    v











    进行指导即可。

    原文中认为可以直接将时序差分学习误差作为策略梯度

    不同时间范围内各种 Critic 方法的参数更新

    • Monte-Carlo 采样:利用对












      Q











      π








      θ


























      的无偏

      采样












      v






      t
























      Δ


      θ




      =


      α


      (





      v






      t















      V








      v







      (





      s






      t









      )


      )












      θ









      log







      π








      θ









      (





      a






      t











      |







      s






      t









      )









      • TD(0),即 One-Step MDPs:依赖时序差分的中下一时刻的状态











        s








        t




        +


        1
























        Δ


        θ




        =


        α


        (


        r




        +


        γ







        V








        v







        (





        s








        t




        +


        1









        )








        V








        v







        (





        s






        t









        )


        )












        θ









        log







        π








        θ









        (





        a






        t











        |







        s






        t









        )










      • 《Reinforcement Learning: An Introduction》

        中指出 forward-view 和 backward-view TD(








        λ











        ) 本质是相同的

        • forward-view TD(








          λ











          ):Multi-Steps MDPs,








          λ





          [


          0


          ,


          1


          ]























          v






          λ






          t









          =


          (


          1





          λ


          )





















          n


          =


          1












          λ








          n





          1












          v






          n






          t
























          Δ


          θ




          =


          α


          (





          v






          λ






          t















          V








          v







          (





          s






          t









          )


          )












          θ









          log







          π








          θ









          (





          a






          t











          |







          s






          t









          )









        • backward-view TD(








          λ











          )








          Δ


          θ




          =


          α


          δ





          e






          t
















          其中:

          • Eligibility traces:











            e








            t




            +


            1









            =


            λ





            e






            t









            +












            θ









            log







            π








            θ









            (


            a




            |




            s


            )


















          • δ


            =


            r




            +


            γ







            V








            v







            (





            s








            t




            +


            1









            )








            V








            v







            (





            s






            t









            )










        与 forward-view 相比,backward-view 不需要用到完整的轨迹信息,所以感觉在序列生成任务上比较适用。

        Natural Policy Gradient

        Natural Policy Gradient 通过一个微小的固定量改变策略,找到最接近 vanilla gradient 的梯度方向(文中特指了梯度上升方向)。

























        ̃

















        θ









        J




        (


        θ




        )


        =





        G











        1









        (


        θ




        )












        θ









        J




        (


        θ




        )









        其中








        G


        (


        θ




        )











        为 Fisher 信息矩阵:








        G


        (


        θ




        )


        =







        ?













        π








        θ
















        [












        θ









        log







        π








        θ









        (


        a




        |




        s


        )












        θ









        log







        π








        θ









        (


        a




        |




        s





        )














        ]









        基于 Compatible Function Approximation,可以设近似状态-动作值函数











        Q






        w







        (


        s


        ,


        a


        )











        ,有:


















        w










        Q






        w







        (


        s


        ,


        a


        )


        =












        θ









        log







        π








        θ









        (


        a




        |




        s


        )









        策略梯度的目标函数可表示为:


















        θ









        J




        (


        θ




        )


        =







        ?













        π








        θ
















        [












        θ









        log







        π








        θ









        (


        a




        |




        s


        )





        Q











        π








        θ
















        (


        s


        ,


        a


        )


        ]


        =




        ?




        [












        θ









        log







        π








        θ









        (


        a




        |




        s


        )












        θ









        log







        π








        θ









        (


        a




        |




        s





        )














        w


        ]


        =


        G


        (


        θ




        )


        w









        对应的 Natural Policy Gradient 即为








        w











        ,这样参数更新就简化为了仅依赖于指导参数:












        θ










        t




        +


        1









        =





        θ








        t









        +





        α






        t












        w






        t

















        总结

        本文包含了各种 Policy Gradient 算法策略梯度更新的公式,整理如下:

        • REINFORCE:













          ?













          π








          θ
















          [












          θ









          log







          π








          θ









          (


          a




          |




          s


          )





          v






          t

















        • Q Actor-Critic:













          ?













          π








          θ
















          [












          θ









          log







          π








          θ









          (


          a




          |




          s


          )





          Q






          w







          (


          s


          ,


          a


          )










        • Advantage Actor-Critic:













          ?













          π








          θ
















          [












          θ









          log







          π








          θ









          (


          a




          |




          s


          )





          A






          w







          (


          s


          ,


          a


          )










        • TD Actor-Critic:













          ?













          π








          θ
















          [












          θ









          log







          π








          θ









          (


          a




          |




          s


          )


          δ










        • TD(








          λ











          ) Actor-Critic:













          ?













          π








          θ
















          [












          θ









          log







          π








          θ









          (


          a




          |




          s


          )


          δ


          e










        • Natural Actor-Critic:











          G











          1









          (


          θ




          )












          θ









          J




          (


          θ




          )












版权声明:本文为CristianoJason原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。