简介

强化学习的目标是学习到一个策略πθ\pi_{\theta}​来最大化期望回报。一种直接的方法是在策略空间直接搜索来得到最佳策略,称为策略搜索(Policy Search)。

策略搜索本质是一个优化问题,可以分为基于梯度的优化和无梯度优化。策略搜索和基于值函数的方法相比,策略搜索可以不需要值函数,直接优化策略。参数化的策略能够处理连续状态和动作,可以直接学出随机性策略。

策略梯度(Policy Gradient)

策略梯度(Policy Gradient)是一种基于梯度的强化学习方法。

假设πθ\pi_{\theta}是一个关于θ\theta的连续可微函数,我们可以用梯度上升的方法来优化参数θ\theta使得目标函数J(θ)\mathcal{J}(\theta)最大。

目标函数定义如下,表示执行某策略所能得到的平均回报:

J(θ)=Eτpθ(τ)[G(τ)]=Eτpθ(τ)[t=0T1γtrt+1]\mathcal{J}(\theta)=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}[G(\tau)]=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\sum_{t=0}^{T-1} \gamma^{t} r_{t+1}\right]

由此,我们首先求得目标函数对于策略参数θ\theta的导数:

J(θ)θ=θpθ(τ)G(τ)dτ=(θpθ(τ))G(τ)dτ=pθ(τ)(1pθ(τ)θpθ(τ))G(τ)dτ=pθ(τ)(θlogpθ(τ))G(τ)dτ=Eτpθ(τ)[θlogpθ(τ)G(τ)]\begin{aligned} \frac{\partial \mathcal{J}(\theta)}{\partial \theta} &=\frac{\partial}{\partial \theta} \int p_{\theta}(\tau) G(\tau) d \tau \\ &=\int\left(\frac{\partial}{\partial \theta} p_{\theta}(\tau)\right) G(\tau) d \tau \\ &=\int p_{\theta}(\tau)\left(\frac{1}{p_{\theta}(\tau)} \frac{\partial}{\partial \theta} p_{\theta}(\tau)\right) G(\tau) d \tau \\ &=\int p_{\theta}(\tau)\left(\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)\right) G(\tau) d \tau \\ &=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\frac{\partial}{\partial \theta} \log p_{\theta}(\tau) G(\tau)\right] \end{aligned}

其中,θlogpθ(τ)\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)可以进一步分解为

θlogpθ(τ)=θlog(p(s0)t=0T1πθ(atst)p(st+1st,at))=θ(logp(s0)+t=0T1logπθ(atst)+logp(st+1st,at))=t=0T1θlogπθ(atst)\begin{aligned} \frac{\partial}{\partial \theta} \log p_{\theta}(\tau) &=\frac{\partial}{\partial \theta} \log \left(p\left(s_{0}\right) \prod_{t=0}^{T-1} \pi_{\theta}\left(a_{t} | s_{t}\right) p\left(s_{t+1} | s_{t}, a_{t}\right)\right) \\ &=\frac{\partial}{\partial \theta}\left(\log p\left(s_{0}\right)+\sum_{t=0}^{T-1} \log \pi_{\theta}\left(a_{t} | s_{t}\right)+\log p\left(s_{t+1} | s_{t}, a_{t}\right)\right) \\ &=\sum_{t=0}^{T-1} \frac{\partial}{\partial \theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) \end{aligned}

其中,第一步将每一个轨迹分成了若干了部分,即一个轨迹出现的概率等于初始状态出现的概率p(s0)×p(s_{0})\times通过策略πθ\pi_{\theta}下一步选择动作ata_{t}的概率×\times选择该动作后状态转移至sts_{t}的概率。

第二步根据对数函数的性质,括号内的所有乘号变为加号。

第三步将括号内的前后两项剔除(对于参数θ\theta来说是常数),得到最后的和公式。可以看出,θlogpθ(τ)\frac{\partial}{\partial \theta} \log p_{\theta}(\tau)是和状态转移概率无关,只和策略函数相关。

因此,策略梯度J(θ)θ\frac{\partial \mathcal{J}(\theta)}{\partial \theta}可以再写为:

J(θ)θ=Eτpθ(τ)[(t=0T1θlogπθ(atst))G(τ)]G(τ)]=Eτpθ(τ)[(t=0T1θlogπθ(atst))(G(τ1:t1)+γtG(τt:T))]=Eτpθ(τ)[t=0T1(θlogπθ(atst)γtG(τt:T))]\begin{aligned} \frac{\partial \mathcal{J}(\theta)}{\partial \theta} &=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\left(\sum_{t=0}^{T-1} \frac{\partial}{\partial \theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right)\right) G(\tau)\right] G(\tau) ] \\ &=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\left(\sum_{t=0}^{T-1} \frac{\partial}{\partial \theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right)\right)\left(G\left(\tau_{1 : t-1}\right)+\gamma^{t} G\left(\tau_{t : T}\right)\right)\right] \\ &=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\sum_{t=0}^{T-1}\left(\frac{\partial}{\partial \theta} \log \pi_{\theta}\left(a_{t} | s_{t}\right) \gamma^{t} G\left(\tau_{t : T}\right)\right)\right] \end{aligned}