REINFORCE算法是一种基本的蒙特卡洛策略梯度方法。理解其策略参数 (parameter)θ的更新规则是有效实施方差减少基线的基础。
θ←θ+αGt∇θlnπθ(at∣st)
这里,Gt是从时间步 t 开始的总折扣回报。尽管此更新规则能正确地将参数朝向预期回报增加的方向推动,但它常有一个显著的缺点:高方差。
高方差问题
回报 Gt 是根据当前策略 πθ 采样出的单一完整轨迹来计算的。沿着这条轨迹收到的奖励会因为环境和策略本身的随机性而发生很大变化。早期行动的微小变化可能导致完全不同的状态和奖励序列,从而产生截然不同的 Gt。
Gt 的这种高方差直接导致梯度估计 ∇θlnπθ(at∣st) 出现高方差。想象从同一状态 st 开始的两个不同幕。在一个幕中,智能体很幸运地获得了高回报 Gt=10。在另一幕中,或许由于一次不走运的转移,回报则低得多,Gt=−5。即使所采取的行动 at 相同,策略参数 (parameter) θ 的最终梯度更新也会指向非常不同的方向。
这种带有噪声的梯度信号使得学习效率低下且不稳定。参数更新可能会剧烈波动,需要大量样本(幕)来平均掉噪声并取得稳定进展。因此,学习过程可能非常缓慢。
引入基线
为了解决这种高方差问题,我们可以通过从回报 Gt 中减去一个基线 b(st) 来修改策略梯度更新。对基线的一个重要要求是它必须不依赖于行动 at;它应只依赖于状态 st。
修改后的更新规则变为:
θ←θ+α(Gt−b(st))∇θlnπθ(at∣st)
这为什么会有帮助呢?直观地讲,我们不再仅仅是根据原始回报 Gt 来增加某个行动的概率。相反,我们是将所获得的回报 Gt 与处于状态 st 时的预期或平均回报 b(st) 进行比较。
- 如果 Gt>b(st),则项 (Gt−b(st)) 为正。这意味着行动 at 导致了状态 st 的结果好于预期,因此我们增加其概率。
- 如果 Gt<b(st),则项 (Gt−b(st)) 为负。行动 at 导致的结果差于预期,因此我们降低其概率。
这种比较将更新的重点放在了给定状态 st 下行动 at 的相对质量上,而非绝对回报 Gt,后者可能波动很大。通过将回报围绕基线进行居中,我们减小了更新项的幅度和变异性,从而使梯度估计的方差更低,学习更稳定。
保持无偏梯度
基线 b(st) 的一个重要属性是减去它不会改变梯度更新的期望值。换句话说,它在降低方差的同时不引入偏差。我们可以用数学方法证明这一点。我们减去的项乘以梯度对数概率后的期望值为零:
Eπθ[b(st)∇θlnπθ(at∣st)]=s∑d(s)a∑πθ(a∣s)b(s)∇θlnπθ(a∣s)
使用恒等式 ∇θlnπθ(a∣s)=πθ(a∣s)∇θπθ(a∣s),我们得到:
=s∑d(s)b(s)a∑πθ(a∣s)πθ(a∣s)∇θπθ(a∣s)
=s∑d(s)b(s)a∑∇θπθ(a∣s)
由于对于任何状态 s,概率之和 ∑aπθ(a∣s) 必须等于 1,因此它对 θ 的梯度为零:
=s∑d(s)b(s)∇θa∑πθ(a∣s)
=s∑d(s)b(s)∇θ(1)=0
因为被减项的期望值为零,所以总体梯度的期望值保持不变。基线成功地降低了方差,同时平均而言不改变策略参数 (parameter)应移动的方向。
基线的选择:状态值函数
什么才是一个好的基线 b(st) 呢?一个有效且广泛采用的选择是状态值函数 V(st) 的估计。状态值函数 V(st) 表示从状态 st 开始并遵循当前策略 πθ 的预期回报。这正是我们希望将 Gt 进行比较的“预期结果”。
因此,我们使用由权重 (weight) w 参数 (parameter)化的近似函数 v^(st,w) 作为我们的基线:
b(st)=v^(st,w)
那么策略更新就变为:
θ←θ+α(Gt−v^(st,w))∇θlnπθ(at∣st)
现在,项 (Gt−v^(st,w)) 是在状态 st 中采取行动 at 的优势的估计。回想一下,优势函数定义为 A(s,a)=Q(s,a)−V(s)。由于 Gt 是 Qπθ(st,at) (在策略 πθ 下针对所采取的特定行动 at) 的蒙特卡洛样本(一个估计),并且 v^(st,w) 估计 Vπθ(st),因此它们的差近似于优势 Aπθ(st,at)。使用优势估计通常比使用原始回报 Gt 导致更低的方差。
我们如何获得值函数估计 v^(st,w)?我们需要学习它!这个值函数可以与策略同时学习,使用我们已经遇到的方法,例如蒙特卡洛预测或时序差分学习(如TD(0)),如果状态空间很大,通常会使用函数近似(线性或神经网络 (neural network))等技术。这涉及根据观测到的回报或TD误差来更新值函数参数 w。
这个方法,我们同时学习策略(“行动者”)和值函数(提供基线的“评论者”),为Actor-Critic 方法奠定了根基,我们将在下一节中介绍这些方法。通过让评论者评估行动者相对于状态预期值的行动,我们可以显著稳定并加速策略梯度学习。