对于DQN来说使用一个网络直接逼近了值函数,最后取得了非常不错的效果, 但是对于一些连续性控制或者动作空间特别大的环境来说,很难全部计算所有的值函数来得到最好的策略,那么直接计算策略的方法就别提出来了。
回顾一下前面几篇,所谓的策略,其实就是状态到动作的映射数学表达为 π : s → a \pi : s \to a π:s→a,
我们用 τ \tau τ 表示状态s到最后一个状态的一个序列,表示为:
τ : s t , s t + 1 . . . . s T \tau : s_{t},s_{t+1}....s_{T} τ:st,st+1....sT
那么奖励 R ( τ ) R(\tau) R(τ) 是一个随机变量,没法直接作为目标函数被优化,因此采用了随机变量的期望作为目标函数:
J = ∫ r ( τ ) P π ( τ ) d τ (1) J= \int r(\tau)P_{\pi}(\tau)d\tau \tag{1} J=∫r(τ)Pπ(τ)dτ(1)
因此强化学习的目标是找到最好的 max π ∫ R ( τ ) P π ( τ ) d τ \max\limits_{\pi} \int R(\tau)P_{\pi}(\tau)d\tau πmax∫R(τ)Pπ(τ)dτ,从最优策略的角度来说,对于序列$ s_{t},s_{t+1}…s_{T} , 最 优 的 策 略 序 列 为 : , 最优的策略序列为: ,最优的策略序列为:u_{0}^{
} \to u_{1}^{
} \to u_{2}^{
} \to…u_{T}^{
}$,总结为:找到最优策略: π ∗ : s → u ∗ \pi^{*}:s \to u^{*} π∗:s→u∗。
继续从目标函数说起, 由于要用神经网络来计算策略梯度,需要用一个网络结构去逼近策略,在此处我们假设神经网络的结构参数为 θ \theta θ,将目标函数由公式-1变为:
J ( θ ) = E τ ∼ π θ ( τ ) [ r ( τ ) ] = ∫ τ ∼ π θ ( τ ) π θ ( τ ) r ( τ ) d τ (2) J(\theta) = E_{\tau \sim \pi_{\theta}(\tau)}[r(\tau)] = \int _{\tau \sim \pi_{\theta}(\tau)}\pi_{\theta}(\tau)r(\tau)d\tau \tag{2} J(θ)=Eτ∼πθ(τ)[r(τ)]=∫τ∼πθ(τ)πθ(τ)r(τ)dτ(2)
推导原因: f ( x ) f(x) f(x) 关于某分布 P ( x ) P(x) P(x)的期望,对于连续性变量,期望通过积分求得:
E x ∼ P [ f ( x ) ] = ∫ p ( x ) f ( x ) d x