《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch9 策略梯度方法 9.4- Monte Carlo policy gradient (REINFORCE)

⭐ 9.4 Monte Carlo policy gradient (REINFORCE)

如何用基于梯度的方法来 优化指标 以获得最优策略?

最大化 J ( θ ) J(\theta) J(θ) 的梯度上升算法

θ t + 1 = θ t + α ∇ θ J ( θ t ) = θ t + α E [ ∇ θ ln ⁡ π ( A ∣ S , θ t ) q π ( S , A ) ]            ( 9.31 ) \begin{aligned}\theta_{t+1}&=\theta_t+\alpha\nabla_\theta J(\theta_t)\\ &=\theta_t+\alpha{\mathbb E}\Big[\nabla_\theta \ln\pi(A|S,\theta_t)q_\pi(S,A)\Big]~~~~~~~~~~(9.31)\end{aligned} θt+1=θt+αθJ(θt)=θt+αE[θlnπ(AS,θt)qπ(S,A)]          (9.31)

其中 α > 0 \alpha>0 α>0 是一个常数学习率。

由于式 (9.31) 的真实梯度是未知的 〔 环境模型无法获知 〕,我们可以用 通过以下算法得到的随机梯度 代替。

θ t + 1 = θ t + α ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) q t ( s t , a t )            ( 9.32 ) \theta_{t+1}=\theta_t+\alpha\nabla_\theta \ln\pi(a_t|s_t,\theta_t)q_t(s_t,a_t)~~~~~~~~~~(9.32) θt+1=θt+αθlnπ(atst,θt)qt(st,at)          (9.32)

  • 其中 q t ( s t , a t ) q_t(s_t,a_t) qt(st,at) q π ( s t , a t ) q_\pi(s_t,a_t) qπ(st,at) 的近似

因为 ∇ θ ln ⁡ π ( a t ∣ s t , θ t ) = ∇ θ π ( a t ∣ s t , θ t ) π ( a t ∣ s t , θ t ) \nabla_\theta\ln\pi(a_t|s_t,\theta_t)=\frac{\nabla_\theta \pi(a_t|s_t,\theta_t)}{\pi(a_t|s_t,\theta_t)} θlnπ(atst,θt)=π(atst,θt)θπ(atst,θt)

将 式 (9.32) 重写为

θ t + 1 = θ t + α ∇ θ π ( a t ∣ s t , θ t ) π ( a t ∣ s t , θ t ) q t ( s t , a t ) = θ t + α q t ( s t , a t ) π ( a t ∣ s t , θ t ) ⏟ 定义为  β t ∇ θ π ( a t ∣ s t , θ t ) = θ t + α β t ∇ θ π ( a t ∣ s t , θ t )            ( 9.33 ) \begin{aligned}\theta_{t+1}&=\theta_t+\alpha\frac{\nabla_\theta \pi(a_t|s_t,\theta_t)}{\pi(a_t|s_t,\theta_t)}q_t(s_t,a_t)\\ &=\theta_t+\alpha\underbrace{\frac{q_t(s_t,a_t)}{\pi(a_t|s_t,\theta_t)}}_{定义为 ~\beta_t}\nabla_\theta \pi(a_t|s_t,\theta_t)\\ &=\theta_t+\alpha\beta_t\nabla_\theta \pi(a_t|s_t,\theta_t)~~~~~~~~~~(9.33)\end{aligned} θt+1=θt+απ(atst,θt)θπ(atst,θt)qt(st,at)=θt+α定义为 βt π(atst,θt)qt(st,at)θπ(atst,θt)=θt+αβtθπ(atst,θt)          (9.33)

  • 〔 通过改变 θ \theta θ 优化 π ( a t ∣ s t ) \pi(a_t|s_t) π(atst) 的值 〕

1、 如果 β t ≥ 0 \beta_t\geq 0 βt0, 选择 ( s t , a t ) (s_t,a_t) (st,at) 的概率增大。即 π ( a t ∣ s t , θ t + 1 ) ≥ π ( a t ∣ s t , θ t ) \pi(a_t|s_t,\theta_{\textcolor{blue}{t+1}})\geq\pi(a_t|s_t,\theta_{\textcolor{blue}{t}}) π(atst,θt+1)π(atst,θt)〔 梯度上升 〕

  • 如果 β t < 0 \beta_t< 0 βt<0, 选择 ( s t , a t ) (s_t,a_t) (st,at) 的概率减小。即 π ( a t ∣ s t , θ t + 1 ) < π ( a t ∣ s t , θ t ) \pi(a_t|s_t,\theta_{\textcolor{blue}{t+1}})<\pi(a_t|s_t,\theta_{\textcolor{blue}{t}}) π(atst,θt+1)<π(atst,θt)〔 梯度下降 〕

证明上面的 直觉 ——> 数学表示
θ t + 1 − θ t \theta_{t+1}-\theta_t θt+1θt 足够小,进行泰勒展开,有
  ~  
π ( a t ∣ s t , θ t + 1 ) ≈ π ( a t ∣ s t , θ t ) + ( ∇ θ π ( a t ∣ s t , θ t ) ) T ( θ t + 1 − θ t ) = π ( a t ∣ s t , θ t ) + ( ∇ θ π ( a t ∣ s t , θ t ) ) T ⋅ α β t ∇ θ π ( a t ∣ s t , θ t )       将式  ( 9.33 )  代入 = π ( a t ∣ s t , θ t ) + α β t ∥ ∇ θ π ( a t ∣ s t , θ t ) ∥ 2 2 \begin{aligned}\pi(a_t|s_t,\theta_{t+1})&\approx \pi(a_t|s_t,\theta_t)+(\nabla_\theta \pi(a_t|s_t,\theta_t))^T(\theta_{t+1}-\theta_t)\\ &=\pi(a_t|s_t,\theta_t)+(\nabla_\theta \pi(a_t|s_t,\theta_t))^T·\alpha\beta_t\nabla_\theta \pi(a_t|s_t,\theta_t)~~~~~\textcolor{blue}{将 式~ (9.33)~代入} \\ &=\pi(a_t|s_t,\theta_t)+\alpha\beta_t\Vert\nabla_\theta \pi(a_t|s_t,\theta_t)\Vert_2^2\end{aligned} π(atst,θt+1)π(atst,θt)+(θπ(atst,θt))T(θt+1θt)=π(atst,θt)+(θπ(atst,θt))Tαβtθπ(atst,θt)     将式 (9.33) 代入=π(atst,θt)+αβtθπ(atst,θt)22
显然,当 β t ≥ 0 \beta_t \geq 0 βt0 时, π ( a t ∣ s t , θ t + 1 ) ≥ π ( a t ∣ s t , θ t ) \pi(a_t|s_t,\theta_{\textcolor{blue}{t+1}})\geq\pi(a_t|s_t,\theta_{\textcolor{blue}{t}}) π(atst,θt+1)π(atst,θt)
β t < 0 \beta_t < 0 βt<0 时, π ( a t ∣ s t , θ t + 1 ) < π ( a t ∣ s t , θ t ) \pi(a_t|s_t,\theta_{\textcolor{blue}{t+1}})<\pi(a_t|s_t,\theta_{\textcolor{blue}{t}}) π(atst,θt+1)<π(atst,θt)

探索与利用 的折衷

2、由于 β t = q t ( s t , a t ) π ( a t ∣ s t , θ t ) \beta_t=\frac{q_t(s_t,a_t)}{\pi(a_t|s_t,\theta_t)} βt=π(atst,θt)qt(st,at), 该算法在某种程度上权衡了探索和利用。

  • 一方面 β t \beta_t βt q t ( s t , a t ) q_t(s_t,a_t) qt(st,at) 成正比,如果 ( s t , a t ) (s_t,a_t) (st,at) 的动作价值很大,则 β t ↑ = q t ( s t , a t ) ↑ π ( a t ∣ s t , θ t ) \textcolor{blue}{\beta_t↑}=\frac{q_t(s_t,a_t)↑}{\pi(a_t|s_t,\theta_t)} βt=π(atst,θt)qt(st,at),更新后的策略将增大选择 a t a_t at 的概率。即 π ( a t ∣ s t , θ t + 1 ) ↑ = π ( a t ∣ s t , θ t ) + α β t ↑ ∥ ∇ θ π ( a t ∣ s t , θ t ) ∥ 2 2 \textcolor{blue}{\pi(a_t|s_t,\theta_{t+1})↑}=\pi(a_t|s_t,\theta_t)+\alpha\beta_t↑\Vert\nabla_\theta \pi(a_t|s_t,\theta_t)\Vert_2^2 π(atst,θt+1)=π(atst,θt)+αβtθπ(atst,θt)22
    即 该算法倾向于 利用 具有更大价值的动作。
  • q t ( s t , a t ) > 0 q_t(s_t,a_t)>0 qt(st,at)>0, 如果选择 a t a_t at 的概率很小,即 π ( a t ∣ s t , θ t ) \pi(a_t|s_t,\theta_t) π(atst,θt) 很小,将会使得 β t \beta_t βt 变大 〔 β t ↑ = q t ( s t , a t ) π ( a t ∣ s t , θ t ) ↓ \textcolor{blue}{\beta_t↑}=\frac{q_t(s_t,a_t)}{\pi(a_t|s_t,\theta_t)↓} βt=π(atst,θt)qt(st,at)〕,更新后的策略会增大这个动作的选择概率。类似地, π ( a t ∣ s t , θ t + 1 ) ↑ \pi(a_t|s_t,\theta_{t+1})↑ π(atst,θt+1)
    即该算法倾向于探索具有低概率的动作。

————————

梯度近似需要的样本 如何获取?

采样 S S S S ∼ η S\sim\eta Sη。不是 d π d_\pi dπ 就是 ρ π \rho_\pi ρπ,表示策略 π \pi π 下的长期行为。

采样 A A A: 遵循 π ( a ∣ s t , θ t ) \pi(a|s_t,\theta_t) π(ast,θt) 选择 a t a_t at
on-policy 同策略。

实际代码实现中:首先通过 遵循 π ( θ ) \pi(\theta) π(θ) 生成一个回合。然后,使用回合中的每个经验样本多次更新 θ \theta θ

伪码

在这里插入图片描述

算法 9.1:REINFORCE
初始化: 策略网络权重参数 θ \theta θ;折扣因子 γ ∈ ( 0 , 1 ) \gamma \in (0,1) γ(0,1); 优化学习率 α > 0 \alpha>0 α>0
目标: 学习可将 J ( θ ) J(\theta) J(θ) 最大化的最优策略
对每个回合, d o \bf do do
        ~~~~~~~        遵循策略 π ( θ ) \pi(\theta) π(θ) 生成一个回合 { s 0 , a 0 , r 1 , ⋯   , s T − 1 , a T − 1 , r T } \{\textcolor{blue}{s_0,a_0,r_1},\cdots,\textcolor{blue}{s_{T-1},a_{T-1},r_T}\} {s0,a0,r1,,sT1,aT1,rT}
        ~~~~~~~        对于 t = 0 , 1 , ⋯   , T − 1 : t=0,1,\cdots,T-1: t=0,1,,T1:
               ~~~~~~~~~~~~~~               价值更新: q t ( s t , a t ) = ∑ k = t + 1 T γ k − t − 1 r k = r t + 1 + γ r t + 2 + γ 2 r t + 3 + ⋯ q_t(s_t,a_t)=\sum\limits_{k=t+1}^T\gamma^{k-t-1}r_k=r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+3}+\cdots qt(st,at)=k=t+1Tγkt1rk=rt+1+γrt+2+γ2rt+3+
               ~~~~~~~~~~~~~~               策略更新: θ ← θ + α ∇ θ ln ⁡ π ( a t ∣ s t , θ ) q t ( s t , a t ) \theta\leftarrow\theta+\alpha\nabla_\theta\ln\pi(a_t|s_t,\theta)q_t(s_t,a_t) θθ+αθlnπ(atst,θ)qt(st,at)

在这里插入图片描述

9.5 总结

梯度在不同情况下的表达式是相似的

9.6 Q & A

策略梯度方法的基本思想: 即定义合适的标量指标,推导其梯度,然后使用梯度上升方法对指标进行优化

策略梯度方法常见指标: v ˉ π \bar v_\pi vˉπ v ˉ π 0 \bar v_\pi^0 vˉπ0 r ˉ π \bar r_\pi rˉπ

策略梯度里包含自然对数的原因: 引入自然对数函数,将梯度表示为期望值。通过这种方式,我们可以用随机梯度近似真实的梯度。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值