zoukankan      html  css  js  c++  java
  • 增强学习笔记 第十三章 策略梯度方法

    我们通过参数θ定义偏好函数$h(s,a, heta)$,通过h的softmax表示$pi(a|s)$,然后根据$pi(a,s)$计算优劣度$eta( heta)=v_{pi_{ heta}}(s_0)$,最后,通过计算$eta$对$ heta$的梯度,来实现$ heta$的更新。

    13.1 策略梯度定理

    定义策略优劣度:$eta( heta)=v_{pi_{ heta}}(s_0)$

    可以证明:

    注意上面证明过程中$d_{pi}(s)=displaystylesum_{k=0}^{infty}gamma^k Pr(s_0 o s,k,pi)$,表示按照策略π从起始状态$s_0$到达状态s的总可能性,并且根据步数作了折扣。这个值非常地不直观,也不利于下面的推导。因此我不用d这个变量。

    13.3 MC的策略梯度方法

    书中推导过程有些晦涩,这里我用更直观的方式来表达:

    $ ablaeta( heta)=displaystylesum_ssum_{k=0}^{infty}gamma^k Pr(s_0 o s,k|pi)sum_a ablapi(a|s)q_{pi}(s,a)$

    $=displaystylesum_ssum_{k=0}^{infty}sum_a Pr(s_0 o s,k|pi)pi(a|s)frac{ ablapi(a|s)}{pi(a|s)}gamma^k q_{pi}(s,a)$

    $=displaystylesum_ssum_{k=0}^{infty}sum_a Pr(s_0 o s,a,k|pi)pi(a|s)frac{ ablapi(a|s)}{pi(a|s)}gamma^k q_{pi}(s,a)$

    其中$Pr(s_0 o s,a,k|pi)$表示在策略π下,k步达到s且采取a的概率。

    而$G_k$恰好是$q(s,a)$的采样,表示从k往后平均能获得多少总奖励

    $=E_{pi}[frac{ ablapi(a|s)}{pi(a|s)}gamma^k G_k]$ (这里表达不严格,因为k是积分变量)

    梯度算出来之后,就有了迭代更新式(梯度上升):

     对线性模型+softmax的偏好函数来说,我们有:

    13.4 基线

    为了减少学习的方差,我们引入基线函数$b(s)$

    $b(s)$可以取任何值,任何函数,只要不和a相关,就不影响上面式子的结果。因为:

    但是,对于随机梯度下降来说,因为我们是根据一个一个取样来实现梯度上升,引入基函数可以极大地减少更新时的波动。更精确地,当

    $b(s)=E_a[q_{pi}(s,a)]=v(s)$时,方差将最小。

    因此,我们在改进η的同时,我们也要设法计算$v(s)$,因此我们引入一个新的参数w来计算$v(s)$

    θ的迭代更新式为:

    13.5 Actor-Critic方法

    上面使用MC方法,为了改善学习性能,我们介绍TD方法。这时候,value函数不仅用来当baseline,还要用来backup。下面是TD(0)的迭代更新式:

    结合前一章资格迹,TD(λ)的算法如下:

     

     13.6 连续问题的策略梯度方法

    连续问题中,η定义为每一步的平均收益:

    其中$d_{pi}(s)$为状态$s$出现的比例

  • 相关阅读:
    怀念
    红颜知己
    我的孩子们
    10月22日
    Movies
    vue返回上一页效果(this.$router.go、)
    Java随笔
    Java随笔
    java随笔
    java随笔
  • 原文地址:https://www.cnblogs.com/milaohu/p/7638934.html
Copyright © 2011-2022 走看看