策略搜索方法相对于值函数法有如下优缺点
优点:
- 直接策略搜索方法是对策略 π \pi π进行参数化表示,与值函数方中对值函数进行参数化表示相比,策略参数化更简单,有更好的收敛性。
- 利用值函数方法求解最优策略时,策略改进需要求解 a r g m a x a Q θ ( s , a ) argmax_a Q_\theta(s,a) argmaxaQθ(s,a),当要解决的问题动作空间很大或者动作为连续集时,该式无法有效求解。
- 直接策略搜索方法经常采用的随机策略,能够学习随机策略。可以将探索直接集成到策略之中。
缺点:
- 策略搜索的方法容易收敛到局部最小值。
- 评估单个策略时并不充分,方差较大。
一、基础算法推导
本文主要从重要性采样角度进行分析。
策略梯度的目标依旧是最大化累积回报,定义一个参数化策略 π θ \pi_\theta πθ的期望累积回报如下所示
J ( θ ) = E τ ∼ p ( τ ; θ ) = ∫ τ ∼ p ( τ ; θ ) p ( τ ; θ ) r ( τ ) d τ \begin{aligned} J(\theta) = E_{\tau \sim p(\tau;\theta)}&=\int_{\tau\sim p(\tau;\theta)}p(\tau;\theta)r(\tau)d\tau\\ \end{aligned} J(θ)=Eτ∼p(τ;θ)=∫τ∼p(τ;θ)p(τ;θ)r(τ)dτ
p ( τ ; θ ) p(\tau;\theta) p(τ;θ)表示在策略 π θ \pi_\theta πθ的情况下轨迹 τ \tau τ出现的概率,在计算时无法通过一个不确定参数的分布 p ( τ ; θ ) p(\tau;\theta) p(τ;θ)进行采样,因此通过重要性采样的方式,推导如下所示。
J ( θ ) = ∫ τ p ( τ ; θ o l d ) p ( τ ; θ o l d ) p ( τ ; θ ) r ( τ ) d τ = ∫ τ p ( τ ; θ o l d ) p ( τ ; θ ) p ( τ ; θ o l d ) r ( τ ) d τ = E τ ∼ p ( τ ; θ o l d ) [ p ( τ ; θ ) p ( τ ; θ o l d ) r ( τ ) ] \begin{aligned} J(\theta)&=\int_{\tau}\frac{p(\tau;\theta_{old})}{p(\tau;\theta_{old})}p(\tau;\theta)r(\tau)d\tau\\ &=\int_{\tau}p(\tau;\theta_{old})\frac{p(\tau;\theta)}{p(\tau;\theta_{old})}r(\tau)d\tau\\ &=E_{\tau\sim p(\tau;\theta_{old})}[\frac{p(\tau;\theta)}{p(\tau;\theta_{old})}r(\tau)] \end{aligned} J(θ)=∫τp(τ;θold)p(τ;θold)p(τ;θ)r(τ)dτ=∫τp(τ;θold)p(τ;θold)p(τ;θ)r(τ)dτ=Eτ∼p(τ;θold)[p(τ;θold)p(τ;θ)r(τ)]
对上述公式求导,由于策略函数通常是连续可微的良好函数,因此求导和积分符号可以互换。
∇ θ J ( θ ) = ∫ τ ∇ θ p ( τ ; θ ) r ( τ ) d τ = ∫ τ p ( τ ; θ ) p ( τ ; θ ) ∇ θ p ( τ ; θ ) r ( τ ) d τ = ∫ τ p ( τ ; θ ) ∇ θ log p ( τ ; θ ) r ( τ ) d τ = E τ ∼ p ( τ ; θ ) [ ∇ θ log p ( τ ; θ ) r ( τ ) ] \begin{aligned} \nabla_{\theta}J(\theta)&=\int_{\tau}\nabla_{\theta}p(\tau;\theta)r(\tau)d\tau\\ &=\int_{\tau}\frac{p(\tau;\theta)}{p(\tau;\theta)}\nabla_{\theta}p(\tau;\theta)r(\tau)d\tau\\ &=\int_{\tau}p(\tau;\theta)\nabla_{\theta}\log{p(\tau;\theta)}r(\tau)d\tau\\ &=E_{\tau\sim p(\tau;\theta)}[\nabla_{\theta}\log{p(\tau;\theta)}r(\tau)] \end{aligned} ∇θJ(θ)=∫τ∇θp(τ;θ)r(τ)dτ=∫τp(τ;θ)p(τ;θ)∇θp(τ;θ)r(τ)dτ=∫τp(τ;θ)∇θlogp(τ;θ)r(τ)dτ=Eτ∼p(τ;