策略梯度的推导:
策略梯度中的Baseline:
策略梯度中常用Baseline方法来降低方差,可以使得收敛更快。Baseline可以是一个函数b,该函数是什么都可以,但就是不能依赖于动作A。
下面是Baseline的一个重要等式推导,灰色部分是用链式法则展开,
添加Baseline后的策略梯度:
引入b既然等于0为什么要引入呢?原因是神经网络中的策略梯度并不是按照这个公式计算,而是这个公式的蒙特卡洛近似,如果选取的b合适,那么就会使得蒙特卡洛的方差变小,使得收敛的更快。
添加Baseline后的蒙特卡洛近似:
直接计算这个期望比较困难,我们用蒙特卡洛近似来算这个期望,期望里面的记作
,它依赖于随机变量
,期望是关于随机变量
求的,
的概率密度函数是策略网络π,我们可以对策略函数做随机抽样,得到一个
。得到的
即为蒙特卡洛近似,
是策略梯度的一个无偏估计,
其实是一个随机梯度,它是对策略梯度的蒙特卡洛近似。真正训练网络的时候,都是用的
,而不是真正的策略梯度。
实际训练策略网络的时候,我们用随机梯度上升来更新参数θ,β是学习率,用随机梯度上升就意味着能让策略更好。
b只要与
无关,那么策略梯度的期望就会保持不变,但是b却影响
,一个好的b,即非常接近
,那么就会使得方差很小,收敛更快。
常见的Baseline:
(1)b=0时,就得到了标准的策略梯度函数。
(2)b=
,因为
是先于
被观测到的,所以与
无关。