策略梯度方法

策略梯度方法

数学背景

给定一个标量函数 J ( θ ) J\left(\theta\right) J(θ),利用梯度上升法,使其最大化,此时的 π θ \pi_\theta πθ就是最优策略。
θ t + 1 = θ t + α ∇ θ J ( θ t ) \theta_{t+1}=\theta_t+\alpha \nabla_\theta J(\theta_t) θt+1=θt+αθJ(θt)

标量函数 J ( θ ) J(\theta) J(θ)

就是上面提到的最优指标 J J J,一般有以下几种定义:

  1. 平均状态价值
    v ˉ π = ∑ s ∈ S d π ( s ) v π ( s ) = E [ v π ( S ) ] \bar v_\pi =\sum_{s\in\mathcal{S}}d_\pi(s)v_\pi(s) =\mathbb{E}\left[ v_\pi(S) \right] vˉπ=sSdπ(s)vπ(s)=E[vπ(S)]
    如果 d d d π \pi π无关,那么记 d π = d 0 d_\pi=d_0 dπ=d0,就Grid World问题,由于状态价值 v v v是回报的期望,考虑两种具体情况:

    • 起始在随机位置,均匀考虑每个状态价值: d 0 = 1 / ∣ S ∣ d_0=1/|\mathcal{S}| d0=1/∣S
    • 起始在固定位置,只考虑 s 0 s_0 s0状态价值即可: d 0 ( s 0 ) = 1 ,   d 0 ( s ≠ s 0 ) d_0(s_0)=1,\ d_0(s\neq s_0) d0(s0)=1, d0(s=s0)

    如果 d d d π \pi π有关,求解 d π T P π = d π T d_\pi^TP_\pi=d_\pi^T dπTPπ=dπT得到 d π d_\pi dπ,其中 P π P_\pi Pπ是在策略 π \pi π下的状态转移矩阵。此时,如果一个状态经常出现,对应的 d ( s ) d(s) d(s)就会变大。

  2. 平均瞬时奖励
    r ˉ π = ∑ s ∈ S d π ( s ) r π ( s ) = E [ r π ( S ) ] \bar r_\pi=\sum_{s\in \mathcal{S}}d_\pi(s)r_\pi(s)=\mathbb{E}\left[r_\pi(S)\right] rˉπ=sSdπ(s)rπ(s)=E[rπ(S)]

    其中 r π ( s ) r_\pi(s) rπ(s)是agent在某状态按策略 π \pi π在动作空间中采取动作的瞬时奖励
    r π ( s ) = ∑ a ∈ A π ( s ∣ a ) r ( s , a ) r_\pi(s)=\sum_{a\in \mathcal{A}}\pi(s\mid a)r(s,a) rπ(s)=aAπ(sa)r(s,a)

    此定义与episode reward等价,即当episode长度无限大时, s s s d π d_\pi dπ分布,即
    lim ⁡ n → ∞ 1 n E [ ∑ k = 1 n R t + k ]    ⟺    r ˉ π \lim_{n\to\infty}\frac{1}{n}\mathbb{E}[\sum_{k=1}^{n}R_{t+k}] \iff \bar r_\pi nlimn1E[k=1nRt+k]rˉπ

J ( θ ) J(\theta) J(θ)的梯度

上面两类指标函数的梯度都可以写成:
∇ θ J ( θ ) = ∑ s ∈ S η ( s ) ∑ a ∈ A ∇ θ π ( a ∣ s , θ ) q π ( s , a ) = ∑ s ∈ S η ( s ) ∑ a ∈ A π ( a ∣ s , θ ) ∇ θ log ⁡ π ( a ∣ s , θ ) q π ( s , a ) = E [ ∇ θ log ⁡ π ( A ∣ S , θ ) q π ( S , A ) ] \begin{aligned} \nabla_\theta J(\theta) &=\sum_{s\in \mathcal{S}}\eta(s)\sum_{a\in \mathcal{A}} \nabla_\theta \pi(a|s,\theta)q_\pi(s,a)\\ &=\sum_{s\in \mathcal{S}}\eta(s)\sum_{a\in \mathcal{A}} \pi(a|s,\theta)\nabla_\theta \log\pi(a|s,\theta)q_\pi(s,a)\\ &=\mathbb{E}[\nabla_\theta \log\pi(A|S,\theta)q_\pi(S,A)] \end{aligned} θJ(θ)=sSη(s)aAθπ(as,θ)qπ(s,a)=sSη(s)aAπ(as,θ)θlogπ(as,θ)qπ(s,a)=E[θlogπ(AS,θ)qπ(S,A)]
其中, S ∼ η S\sim \eta Sη A ∼ π ( a ∣ s , θ ) A\sim \pi(a|s,\theta) Aπ(as,θ)

训练时,使用随机近似的梯度:
∇ θ J ≈ ∇ θ log ⁡ π ( a ∣ s , θ ) q π ( s , a ) \nabla_\theta J\approx\nabla_\theta \log\pi(a|s,\theta)q_\pi(s,a) θJθlogπ(as,θ)qπ(s,a)

REINFORCE伪代码

image-20230818220237197

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值