1 利用一个评论家(critic)来提升策略梯度法的性能
1.1 策略梯度法
在介绍actor-critic算法之前,我们首先回顾一下策略梯度法,最简单的策略梯度法就是REINFOECE算法,其由三个步骤组成:首先便是根据当前的策略采样众多的轨迹,然后根据当前的采样值计算策略网络的梯度,最后利用梯度上升法更新策略函数.其基本步骤如下
其中第二步梯度估计项我们常常写做
其中我们常常记
为我们在当前状态
采取动作
后将要获得的奖励(reward-to-go).考虑到过去状态所获得的奖励不会对未来的策略产生影响,因此我们可以将过去的奖励值进行舍弃来得到一个更为准确的估计值
.更进一步来考虑,在当前时刻采取特定的动作可能会产生不同的后续轨迹,这往往与环境的动态性(dynamic)有关,因此对未来奖励的准确估计值应该是所有可能的后续轨迹所获得的期望值
.这一真实的期望奖励值我们不能得到,但是如果我们确实能够得到该值的化,我们可以将其放入策略梯度法的梯度估计表达式中来获得更好的梯度估计值,这时我们的策略梯度的估计值如下所示
1.2 加入基准值(baseline)的策略梯度法
我们可以在上述的策略梯度公式中加入baseline来减少方差,从而得到
其中
可以认为是当前的状态下所有可能动作的后续奖励值的期望,即状态值函数
,于是又有了如下形式的策略梯度估计表达式
这一表达式中的
常被称为优势(advantage)函数,记
,于是有
1.3 值函数小结
首先状态-动作值函数
指的是在当前状态
下,采取动作
所能获得好后续累积奖励,状态值函数
值得是在当前状态