强化学习策略梯度梳理1 - REINFORCE(附代码)

本文介绍了策略梯度方法,特别是REINFORCE算法及其改进版REINFORCE-baseline,通过代码实践展示了在CartPole-v1环境中应用的效果,并与DQN进行对比,探讨了可能存在的问题及解决方案。
摘要由CSDN通过智能技术生成

主要参考文献 Reinforcement Learning: An introduction,Sutton
主要参考课程 Intro to Reinforcement Learning,Bolei Zhou
相关文中代码
https://github.com/ThousandOfWind/RL-basic-alg.git

策略梯度(PG)

首先定义遵从一般约定
s ∈ S , a ∈ A ( s ) , θ ∈ R d ′ s \in \mathcal{S}, a \in \mathcal{A}(s), \boldsymbol{\theta} \in \mathbb{R}^{d'} sS,aA(s),θRd

既然策略是 π ( a ∣ s , θ ) = Pr ⁡ { A t = a ∣ S t = s , θ t = θ } \pi(a \mid s, \boldsymbol{\theta})=\operatorname{Pr}\left\{A_{t}=a \mid S_{t}=s, \boldsymbol{\theta}_{t}=\boldsymbol{\theta}\right\} π(as,θ)=Pr{ At=aSt=s,θt=θ}
我们假设这个策略有表现 J ( θ ) J\left(\boldsymbol{\theta}\right) J(θ)
我们希望能够根据 J J J的梯度更新策略 θ t + 1 = θ t + α ∇ J ( θ t ) ^ \boldsymbol{\theta}_{t+1}=\boldsymbol{\theta}_{t}+\alpha \widehat{\nabla J\left(\boldsymbol{\theta}_{t}\right)} θt+1=θt+αJ(θt)

方向导数本质上研究的是函数在某点处沿某特定方向上的变化率问题,梯度反映的是空间变量变化趋势的最大值和方向。方向导数与梯度在微分学中有重要的运用。
具体等我把相关算法搞定再去看高数

这样问题就变成了怎么把表现和策略联合起来
然后sutton就说了,既然如此
J ( θ ) ≐ v π θ ( s 0 ) J(\boldsymbol{\theta}) \doteq v_{\pi_{\boldsymbol{\theta}}}\left(s_{0}\right) J(θ)vπθ(s0)
v π ( s ) = [ ∑ a π ( a ∣ s ) q π ( s , a ) ] v_{\pi}(s)=\left[\sum_{a} \pi(a \mid s) q_{\pi}(s, a)\right] vπ(s)=[aπ(as)qπ(s,a)]
⚠️用状态 s 0 s_0 s0的价值是因为他还假设了条件 γ = 1 \gamma = 1 γ=1,所以 v π θ ( s 0 ) v_{\pi_{\boldsymbol{\theta}}}\left(s_{0}\right) vπθ(s0) 实际上能够代表轨迹上的收益和
因此 J J J的梯度可以参考状态值的梯度

∇ v π ( s ) = ∇ [ ∑ a π ( a ∣ s ) q π ( s , a ) ] ,  for all  s ∈ S = ∑ a [ ∇ π ( a ∣ s ) q π ( s , a ) + π ( a ∣ s ) ∇ q π ( s , a ) ] = ∑ a [ ∇ π ( a ∣ s ) q π ( s , a ) + π ( a ∣ s ) ∇ ∑ s ′ , r p ( s ′ , r ∣ s , a ) ( r + v π ( s ′ ) ) ] = ∑ a [ ∇ π ( a ∣ s ) q π ( s

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值