0
点赞
收藏
分享

微信扫一扫

深度强化学习-带基线的策略梯度算法原理

引言

本文主要介绍策略梯度算法的一种改进——带基线的策略梯度算法(Reinforce with baseline)。通过引入基线,有效降低了学习过程中的方差,从而提升训练过程的稳定性。

1 基线

基线函数B(s)可以是任意随机函数或确定函数,它可以与状态s有关,但是不能和动作a有关。满足这样的条件后,基线函数自然满足

 证明:

由于B(s)和动作a无关,所以

\sum_{a}^{}B\left ( S_{t} \right )\triangledown \pi _{\theta }(a\mid S_{t})=B\left ( S_{t} \right )\triangledown \sum_{a}^{}\pi _{\theta }(a\mid S_{t})=B\left ( S_{t} \right )\triangledown 1=0

进而

 E\left [ \gamma ^{t}\left ( G_{t}-B\left ( S_{t} \right ) \right )\triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right ) \right ]

得证。

2 如何选择基线

选择基线时,应当参照一下两个思想:

一个能有效降低方差的基线是状态价值函数的估计,如Reinfoece_with_baseline算法所示。

3 Reinfoece_with_baseline算法伪代码 

 4 最佳基线的确定

接下来,我们来分析什么样的基线函数能最大程度地减小方差。根据方差与期望之间的联系:

E\left [\left [ \gamma ^{t}\left ( G_{t}-B\left ( S_{t} \right ) \right ) \triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right ) \right ]^{2} \right ]-\left [ E\left [ \gamma ^{t}\left ( G_{t}-B\left ( S_{t} \right ) \right ) \triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right ) \right ]\right ]^{2}

上式关于B\left ( S_{t} \right )求偏导,得到

E\left [ -2\gamma ^{t}\left ( G_{t}-B\left ( S_{t} \right ) \right )\left [ \triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right ) \right ]^{2} \right ]

 其中求导时存在,

令上面求得的偏导数为0,并假设B\left ( S_{t} \right )\left [ \triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right ) \right ]^{2}相互独立

E\left [B\left ( S_{t} \right )\left [ \triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right ) \right ]^{2} \right ]=E\left [ B\left ( S_{t} \right )\right ]E\left [\left [ \triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right ) \right ]^{2} \right ]

可知

这意味着,最佳的基线函数应当接近回报G_{t}以梯度\left [ \triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right ) \right ]^{2}为权重加权平均的结果。不过,由于梯度\triangledown ln\pi _{\theta }\left ( A_{t}\mid S_{t} \right )并不会预先知道,所以实际应用时无法使用这样的基线函数。

举报

相关推荐

强化学习算法

0 条评论