下面我们简要看看 Reward Centering 有何创新之处。
- 论文Reward Centering
- 论文地址:https://arxiv.org/pdf/2405.09999
奖励聚中理论
智能体和环境之间的交互可以表述为一个有限马尔可夫决策过程(MDP)(S, A, R, p),其中 S 表示状态集,A 表示动作集,R 表示奖励集,p : S × R × S × A → [0, 1] 表示转换的动态。在时间步骤 t,智能体处于状态 S_t,使用行为策略 b : A × S → [0, 1] 采取行动 A_t,然后根据转换动态:
观察下一个状态 S_{t+1} 和奖励 R_{t+1}。
这里研究的问题是持续性问题,即智能体和环境的交互会无限地进行。智能体的目标是最大化长期获得的平均奖励。为此,该团队考虑了估计每个状态的预期折扣奖励总和的方法:
这里,折扣因子不是问题的一部分,而是一个算法参数。
奖励聚中思想很简单:从奖励中减去实际观察到的奖励的平均值。这样做会让修改后的奖励看起来以均值为中心。
这种以均值为中心的奖励在 bandit 设置中很常见。举个例子,Sutton 和 Barto 在 2018 年的一篇论文中表明,根据观察到的奖励估计和减去平均奖励可以显着提高学习速度。
而这里,该团队证明所有强化学习算法都能享受到这种好处,并且当折现因子 γ 接近 1 时,好处会更大。
奖励聚中之所以这么好,一个底层原因可通过折现价值函数的罗朗级数(Laurent Series)分解来揭示。
折现价值函数可被分解成两部分。其中一部分是一个常数,并不依赖状态或动作,因此并不参与动作选取。
用数学表示的话,对于与折现因子 γ 对应的策略 π 的表格折现价值函数:
其中 r(π) 是策略 π 获得的独立于状态的平均奖励,是状态 s 的微分值。它们各自对于遍历 MDP 的定义为:
则是一个误差项,当折现因子变为 1 时变为零。状态值的这种分解也意味着状态-动作值有类似的分解。
这种 Laurent 级数分解能解释奖励聚中为何有助于解决 bandit 问题。
在完整的强化学习问题中,与状态无关的偏移可能会相当大。举个例子,图 2 中展示的三状态马尔科夫奖励过程。如果状态从 A 变成 B,则奖励是 +3,否则都是 0。平均奖励为 r(π) = 1。右侧表中给出了三个折现因子的折现状态值。
现在,从每个状态中减去常数偏移的折现值,也被称为聚中折现值。
可以看到,这个已经聚中的值在幅度上要小得多,并且当折现因子增大时,也只会发生轻微变化。这里还给出了微分值以供参考。
这些趋势普遍成立:对于任意问题,折现值的幅度都会随着折现因子接近 1 而急剧增加,而聚中折现值则变化不大,并接近微分值。
从数学上看,聚中折现值是平均聚中奖励的预期折现和:
其中 γ ∈ [0, 1]。当 γ = 1 时,聚中折现值与微分值相同。更一般地说,聚中折现值是微分值加上来自罗朗级数分解的误差项,如上图右侧所示。
因此,奖励聚中能够通过两个组件(恒定平均奖励和聚中折现值函数)捕获折现值函数中的所有信息。这种分解非常有价值:
- 当γ→1时,折现值趋于爆炸,但聚中折现值仍然很小且易于处理。
- 如果问题的奖励偏移了一个常数 c,那么折现值的幅度就会增加 c/(1 − γ),但聚中折现值会保持不变,因为平均奖励也会增加 c。
使用奖励聚中时,还可以设计出在智能体的生命周期内可以改变折现因子(算法参数)的算法。对于标准折现算法来说,这通常是低效或无效的,因为它们的非聚中值可能会发生巨大变化。相比之下,聚中值可能变化不大,当折现因子接近 1 时,变化会变得微不足道。
当然,为了获得这些潜在好处,首先需要基于数据估计出平均奖励。
简单奖励聚中以及基于价值的奖励聚中
估计平均奖励最简单的方法是根据之前已经观察到的奖励估计平均值。也就是说,如果表示 t 个时间步骤后的平均奖励估计,则。更一般地,可以使用步长参数 βt 来更新该估计:
该团队表示,这种简单的聚中方法适用于几乎任何强化学习算法。举个例子,奖励聚中可以与传统的时间差分(TD)学习组合起来学习一个状态-价值函数估计:
此外,他们还提出了基于价值的奖励聚中。这种方法的灵感来自强化学习的平均奖励公式。Wan et al. (2021) 表明,使用时间差分(TD)误差(而不是 (4) 中的传统误差)可以对表格离策略设置中的奖励率进行无偏估计。事实证明,平均奖励公式中的这个思路在折扣奖励公式中也非常有效。
该团队表明,如果行为策略采取目标策略所做的所有操作,那么可以使用 TD 误差很好地近似目标策略的平均奖励:
由于这种聚中方法除了奖励之外还涉及价值,因此他们将其称为基于价值的聚中。不同于简单的奖励聚中,现在平均奖励估计和价值估计的收敛是相互依赖的。
实验
该团队实验了 (5) 式的四种算法变体版本,并测试了不同的折现因子。详细过程请阅读原论文,这里我们简单看看结果。
如图 3 所示,当奖励由一个 oracle 进行聚中处理时,学习曲线的起点会低得多。对于其它算法,第一个误差都在 r(π)/(1 − γ) 量级。
无聚中的 TD 学习(蓝色)最终达到了与 oracle 聚中算法(橙色)相同的误差率,这符合预期。
简单聚中方法(绿色)确实有助于更快地降低 RMSVE,但其最终误差率会稍微高一点。这也符合预期,因为平均奖励估计会随时间而变化,导致与非聚中或 oracle 聚中版本相比,更新的变数更大。当 γ 更大时也有类似的趋势。这些实验表明,简单的奖励聚中技术在在策略设置中非常有效,并且对于较大的折扣因子,效果更为明显。
在学习率和渐近误差方面,基于价值的奖励聚中(红色)在在策略问题上与简单聚中差不多。但在离策略问题上,基于价值的聚中能以更快的速度得到更低的 RMSVE,同时最终误差率也差不多。
总体而言,可以观察到奖励聚中可以提高折现奖励预测算法(如 TD 学习)的学习率,尤其是对于较大的折扣因子。虽然简单奖励聚中方法已经相当有效,但基于价值的奖励聚中更适合一般的离策略问题。
此外,该团队还研究了奖励聚中对 Q 学习的影响。具体的理论描述和实验过程请访问原论文。
总之,实验表明,奖励聚中可以提高 Q 学习算法的表格、线性和非线性变体在多种问题上的性能。当折现因子接近 1 时,学习率的提升会更大。此外,该算法对问题奖励变化的稳健性也有所提升。
看起来,奖励聚中这个看起来非常简单的方法确实可以显著提升强化学习算法。你怎么看待这一方法,会在你的研究和应用中尝试它吗?