强化学习策略梯度梳理-SOTA上
强化学习策略梯度梳理-SOTA
这个部分主要参考周博磊老师的第六节的顺序
主要参考课程 Intro to Reinforcement Learning,Bolei Zhou
相关文中代码 https://github.com/ThousandOfWind/RL-basic-alg.git
进阶方向1
PG
首先策略的优化目标是
J ( θ ) = E τ ∼ π θ [ R ( τ ) ] J(\theta)=\mathbb{E}_{\tau \sim \pi_{\theta}}[R(\tau)] J(θ)=Eτ∼πθ[R(τ)]
策略梯度的计算方法
∇ θ J ( θ ) = E π θ [ G t ∇ θ log π θ ( s , a ) ] ≈ 1 N ∑ i = 1 N G t i ∇ θ log π θ ( s i , a i ) \begin{aligned} \nabla_{\theta} J(\theta) &=\mathbb{E}_{\pi_{\theta}}\left[G_{t} \nabla_{\theta} \log \pi_{\theta}(s, a)\right] \\ & \approx \frac{1}{N} \sum_{i=1}^{N} G_{t}^{i} \nabla_{\theta} \log \pi_{\theta}\left(s_{i}, a_{i}\right) \end{aligned} ∇θJ(θ)=Eπθ[Gt∇θlogπθ(s,a)]≈N1i=1∑NGti∇θlogπθ(si,ai)
通过引入baseline我们可以削减方差
A π ( s , a ) = Q π ( s , a ) − V π ( s ) A^{\pi}(s, a)=Q^{\pi}(s, a)-V^{\pi}(s) Aπ(s,a)=Qπ(s,a)−Vπ(s)
这里我还有个不太明白的地方, 为什么baseline可以用state value替代,因为我们期待的baseline应该是与策略无关吧, 但是V多多少少还是和策略有关呀,也可能我理解错了
总结
好精辟,这我不得背下来!
∇ θ J ( θ ) = E π θ [ ∇ θ log π θ ( s , a ) G t ] − REINFORCE = E π θ [ ∇ θ log π θ ( s , a ) Q w ( s , a ) ] − Q Actor-Critic = E π θ [ ∇ θ log π θ ( s , a ) A w ( s , a ) ] − Advantage Actor-Critic = E π θ [ ∇ θ log π θ ( s , a ) δ ] − TD Actor-Critic \begin{aligned} \nabla_{\theta} J(\theta) &=\mathbb{E}_{\pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(s, a) G_{t}\right]-\text { REINFORCE } \\ &=\mathbb{E}_{\pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(s, a) Q^{\mathrm{w}}(s, a)\right]-\text { Q Actor-Critic } \\ &=\mathbb{E}_{\pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(s, a) A^{\mathrm{w}}(s, a)\right]-\text { Advantage Actor-Critic } \\ &=\mathbb{E}_{\pi_{\theta}}\left[\nabla_{\theta} \log \pi_{\theta}(s, a) \delta\right]-\text { TD Actor-Critic } \end{aligned} ∇θJ(θ)=Eπθ[∇θlogπθ(s,a)Gt]− REINFORCE =Eπθ[∇θlogπθ(s