为什么 A2C 中减去 Baseline 函数可以减小方差
在 PPO × Family 课程第一讲中,已经介绍了策略梯度(policy gradient)的基本原理。但是如果直接使用最朴素的策略梯度方法,会发现实际训练中梯度的方差很大,进而导致训练效果不佳。为了解决这一问题,需要引入基线(baseline)函数来尽可能减小梯度的方差,从而提升算法性能。首先回顾一下 policy gradient 中标准的优化公式:
在算法实践中,我们使用采样来获得
可以看出,上式将期望改成了对
在实践中,网络的训练会因为
Baseline 函数正是为了解决这个问题而提出的。具体来说,将上述公式改写为包含 baseline 的版本:
其中
接下来我们要论证:
- 为什么添加了 baseline 函数之后,仍然能够保持估计的无偏性;
- 为什么添加了合适的 baseline 函数之后,可以减小方差。
1. 为什么添加 baseline 函数之后仍然能够保持梯度估计的无偏性
要证明这一点,本质上是要证明:
移项化简,即证:
考虑到对于任意
因此对于整体轨迹而言,自然对每个时刻
至此,就证明了添加 baseline 函数之后,梯度的无偏性仍然能够得以保持。
2. 为什么添加 baseline 函数之后梯度估计的方差会降低
严格来说,并不是添加任何一种形式的 baseline 函数都能够减小方差;相反,不合适的 baseline 函数甚至会增大方差。因此这里要说明的是:
- 为什么添加合适的 baseline 函数可以减小方差;
- 为什么通常选用
作为实践中的 baseline 函数。
为简化分析,考虑单个时间步
由于 baseline 的引入不改变期望,即
直观上,因为
因此,选取合适的 baseline 函数可以减小对梯度的估计方差;而价值函数