Reward Centering(三)
- 文章概括
- 摘要
- 3 基于值的奖励中心化
- 4 案例研究: 以奖励为中心的 Q-learning
- 5 讨论、局限性与未来工作
- 致谢
文章概括
引用:
@article{naik2024reward,
title={Reward Centering},
author={Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},
journal={arXiv preprint arXiv:2405.09999},
year={2024}
}
Naik, A., Wan, Y., Tomar, M. and Sutton, R.S., 2024. Reward Centering. arXiv preprint arXiv:2405.09999.
原文: https://arxiv.org/abs/2405.09999
代码、数据和视频:
系列文章:
请在
《
《
《文章
》
》
》 专栏中查找
论文笔记(七十二)Reward Centering(一)
论文笔记(七十二)Reward Centering(二)
论文笔记(七十二)Reward Centering(三)
论文笔记(七十二)Reward Centering(四)
论文笔记(七十二)Reward Centering(五)
摘要
我们证明,在解决持续强化学习问题时,折扣方法如果通过减去奖励的经验均值来对奖励进行中心化处理,其性能会显著提升。在常用的折扣因子下,这种改进是显著的,并且随着折扣因子趋近于1,改进幅度进一步增加。此外,我们证明,如果一个问题的奖励被加上一个常数偏移量,则标准方法的表现会变得更差,而采用奖励中心化的方法则不受影响。在on-policy设置下,估计平均奖励是直接的;对于off-policy设置,我们提出了一种稍微更复杂的方法。奖励中心化是一个通用的概念,因此我们预计几乎所有的强化学习算法都能从奖励中心化的加入中受益。
3 基于值的奖励中心化
我们从强化学习的平均奖励形式中获得了启发,其中在off-policy设置下估计平均奖励是一个关键问题。特别是,Wan et al. (2021)最近表明,在表格型off-policy设置下,使用时序差分(TD)误差(而非公式(4)中的传统误差)可以提供对奖励率的无偏估计。
R ˉ t + 1 ≐ R ˉ t + β t ( R t + 1 − R ˉ t ) . (4) \bar{R}_{t+1} \doteq \bar{R}_t + \beta_t (R_{t+1} - \bar{R}_t). \tag{4} Rˉt+1≐Rˉt+βt(Rt+1−Rˉt).(4)
事实证明,这一来自平均奖励形式的方法在折扣奖励形式下同样非常有效,这也是本文的研究重点。
我们证明,如果行为策略能够执行目标策略执行的所有动作(尽管具体的动作分布可能有所不同),那么我们可以利用TD误差来很好地逼近目标策略的平均奖励:
V
~
t
+
1
γ
(
S
t
)
≐
V
~
t
γ
(
S
t
)
+
α
t
ρ
t
δ
t
,
(7)
\tilde{V}_{t+1}^{\gamma}(S_t) \doteq \tilde{V}_{t}^{\gamma}(S_t) + \alpha_t \rho_t \delta_t, \tag{7}
V~t+1γ(St)≐V~tγ(St)+αtρtδt,(7)
R
ˉ
t
+
1
≐
R
ˉ
t
+
η
α
t
ρ
t
δ
t
,
(8)
\bar{R}_{t+1} \doteq \bar{R}_t + \eta \alpha_t \rho_t \delta_t, \tag{8}
Rˉt+1≐Rˉt+ηαtρtδt,(8)
其中,TD误差定义为:
δ
t
≐
(
R
t
+
1
−
R
ˉ
t
)
+
γ
V
~
t
γ
(
S
t
+
1
)
−
V
~
t
γ
(
S
t
)
,
\delta_t \doteq (R_{t+1} - \bar{R}_t) + \gamma \tilde{V}_{t}^{\gamma}(S_{t+1}) - \tilde{V}_{t}^{\gamma}(S_t),
δt≐(Rt+1−Rˉt)+γV~tγ(St+1)−V~tγ(St),
重要性采样比率定义为:
ρ
t
≐
π
(
A
t
∣
S
t
)
b
(
A
t
∣
S
t
)
.
\rho_t \doteq \frac{\pi(A_t | S_t)}{b(A_t | S_t)}.
ρt≐b(At∣St)π(At∣St).
由于这种中心化方法不仅涉及奖励,还涉及值函数,我们称其为基于值的中心化(value-based centering)。
与简单中心化不同,平均奖励估计的收敛性和值函数估计的收敛性现在是相互依赖的。在下一节中,我们将针对控制问题给出一个收敛性结果。
1. 问题背景与动机
在off-policy学习中,数据是由行为策略 b b b 生成的,但我们的目标是学习或评估一个不同的目标策略 π \pi π 的性能。一个关键问题是如何估计目标策略下的平均奖励 r ( π ) r(\pi) r(π) 和状态值函数。
- 传统方法使用公式(4)更新平均奖励,但在off-policy情况下,由于状态和动作分布的不匹配,这种方法容易收敛到行为策略的平均奖励 r ( b ) r(b) r(b) 而非目标策略的 r ( π ) r(\pi) r(π)。
Wan et al. 的工作启发我们:
- 我们可以利用时序差分(TD)误差来更新平均奖励,使得更新过程中不仅考虑了即时奖励,而且还参考了状态值函数的变化信息。
- 由于我们更新的同时还在更新值函数,所以这种方法称为“基于值的奖励中心化”(value-based centering)。
2. 公式详解
2.1 定义TD误差
TD误差是强化学习中衡量当前估计与“新信息”之间差距的一项指标,其定义为
δ t ≐ ( R t + 1 − R ˉ t ) + γ V ~ t γ ( S t + 1 ) − V ~ t γ ( S t ) . \delta_t \doteq (R_{t+1} - \bar{R}_t) + \gamma\, \tilde{V}_{t}^{\gamma}(S_{t+1}) - \tilde{V}_{t}^{\gamma}(S_t). δt≐(Rt+1−Rˉt)+γV~tγ(St+1)−V~tγ(St).
这里:
- R t + 1 R_{t+1} Rt+1 是第 t + 1 t+1 t+1 步获得的即时奖励,
- R ˉ t \bar{R}_t Rˉt 是当前我们估计的平均奖励,
- V ~ t γ ( S t ) \tilde{V}_{t}^{\gamma}(S_t) V~tγ(St) 和 V ~ t γ ( S t + 1 ) \tilde{V}_{t}^{\gamma}(S_{t+1}) V~tγ(St+1) 分别是状态 S t S_t St 和 S t + 1 S_{t+1} St+1 的当前中心化值函数估计,
- γ \gamma γ 是折扣因子(比如0.9或0.99)。
简单理解: 我们先将奖励做中心化,即用 R t + 1 − R ˉ t R_{t+1} - \bar{R}_t Rt+1−Rˉt(把平均奖励“扣除”掉),然后加上未来状态的折扣中心化值,再减去当前状态的中心化值。如果我们的值函数估计完全准确,TD误差应为0。
2.2 重要性采样比率
在off-policy下,目标策略 π \pi π 和行为策略 b b b 不一致,所以我们用重要性采样比率来校正这种偏差。定义为
ρ t ≐ π ( A t ∣ S t ) b ( A t ∣ S t ) . \rho_t \doteq \frac{\pi(A_t|S_t)}{b(A_t|S_t)}. ρt≐b(At∣St)π(At∣St).
这表示如果在某个状态 S t S_t St 下,目标策略选择动作 A t A_t At 的概率比行为策略高,那么 ρ t > 1 \rho_t>1 ρt>1,反之则小于1。这样做可以在一定程度上让更新过程更接近目标策略的效果。
2.3 基于值的更新公式
2.3.1 更新中心化值函数
公式(7)给出中心化值函数的更新为
V ~ t + 1 γ ( S t ) ≐ V ~ t γ ( S t ) + α t ρ t δ t . \tilde{V}_{t+1}^{\gamma}(S_t) \doteq \tilde{V}_{t}^{\gamma}(S_t) + \alpha_t\,\rho_t\,\delta_t. V~t+1γ(St)≐V~tγ(St)+αtρtδt.
- α t \alpha_t αt 是步长(学习率),控制更新幅度。
- 更新的意思是:当前状态 S t S_t St 的中心化值函数估计,会在原来基础上加上一个修正量,而这个修正量正比于TD误差 δ t \delta_t δt,并且乘上了重要性采样比率 ρ t \rho_t ρt。
解释:
- 如果TD误差为正,说明实际获得的“相对奖励”(考虑了未来折扣值)比当前估计高,那么我们希望提高 V ~ ( S t ) \tilde{V}(S_t) V~(St);
- 如果TD误差为负,则降低估计值;
- 乘上 ρ t \rho_t ρt 意味着我们对采样动作的概率差异进行了校正。
2.3.2 更新平均奖励
公式(8)给出平均奖励的更新为
R ˉ t + 1 ≐ R ˉ t + η α t ρ t δ t . \bar{R}_{t+1} \doteq \bar{R}_t + \eta\,\alpha_t\,\rho_t\,\delta_t. Rˉt+1≐Rˉt+ηαtρtδt.
这里:
- η \eta η 是一个额外的缩放因子,可以看作是调整平均奖励更新速度的参数。
- 更新方式和中心化值函数类似,也是使用相同的TD误差和重要性采样比率,只不过更新步长变成了 η α t \eta\,\alpha_t ηαt。
解释:
- 这种方法利用TD误差中的信息来“校正”平均奖励的估计,使得平均奖励的更新不仅依赖于即时奖励,还参考了状态值函数的反馈。
- 关键在于:由于数据来自行为策略,通过这种更新我们希望让 R ˉ t \bar{R}_t Rˉt 更好地逼近目标策略 π \pi π 的真实平均奖励,而不是仅仅反映行为策略的奖励水平。
3. 具体数值例子
我们用一个简单的例子来说明整个更新过程。假设在某一时刻 t t t 的相关信息如下:
- 当前状态 S t S_t St 的中心化值函数估计: V ~ t γ ( S t ) = 5 \tilde{V}_t^{\gamma}(S_t) = 5 V~tγ(St)=5
- 下一个状态 S t + 1 S_{t+1} St+1 的中心化值函数估计: V ~ t γ ( S t + 1 ) = 7 \tilde{V}_t^{\gamma}(S_{t+1}) = 7 V~tγ(St+1)=7
- 实际获得的奖励: R t + 1 = 8 R_{t+1} = 8 Rt+1=8
- 当前平均奖励估计: R ˉ t = 6 \bar{R}_t = 6 Rˉt=6
- 折扣因子: γ = 0.9 \gamma = 0.9 γ=0.9
- 假设目标策略在 S t S_t St 下选择的动作 A t A_t At 的概率为 π ( A t ∣ S t ) = 0.6 \pi(A_t|S_t)=0.6 π(At∣St)=0.6,而行为策略的概率为 b ( A t ∣ S t ) = 0.3 b(A_t|S_t)=0.3 b(At∣St)=0.3,因此: ρ t = 0.6 0.3 = 2. \rho_t = \frac{0.6}{0.3} = 2. ρt=0.30.6=2.
- 设步长 α t = 0.1 \alpha_t = 0.1 αt=0.1,平均奖励更新的缩放因子 η = 0.5 \eta = 0.5 η=0.5。
3.1 计算TD误差 δ t \delta_t δt
根据定义:
δ t = ( R t + 1 − R ˉ t ) + γ V ~ t γ ( S t + 1 ) − V ~ t γ ( S t ) . \delta_t = (R_{t+1} - \bar{R}_t) + \gamma\,\tilde{V}_t^{\gamma}(S_{t+1}) - \tilde{V}_t^{\gamma}(S_t). δt=(Rt+1−Rˉt)+γV~tγ(St+1)−V~tγ(St).
将数值代入:
δ t = ( 8 − 6 ) + 0.9 × 7 − 5 = 2 + 6.3 − 5 = 3.3. \delta_t = (8 - 6) + 0.9 \times 7 - 5 = 2 + 6.3 - 5 = 3.3. δt=(8−6)+0.9×7−5=2+6.3−5=3.3.
3.2 更新中心化值函数
使用公式(7):
V ~ t + 1 γ ( S t ) = V ~ t γ ( S t ) + α t ρ t δ t . \tilde{V}_{t+1}^{\gamma}(S_t) = \tilde{V}_t^{\gamma}(S_t) + \alpha_t\,\rho_t\,\delta_t. V~t+1γ(St)=V~tγ(St)+αtρtδt.
代入数值:
V ~ t + 1 γ ( S t ) = 5 + 0.1 × 2 × 3.3 = 5 + 0.66 = 5.66. \tilde{V}_{t+1}^{\gamma}(S_t) = 5 + 0.1 \times 2 \times 3.3 = 5 + 0.66 = 5.66. V~t+1γ(St)=5+0.1×2×3.3=5+0.66=5.66.
这表示当前状态 (S_t) 的中心化值函数估计从 5 增加到了 5.66。
3.3 更新平均奖励
使用公式(8):
R ˉ t + 1 = R ˉ t + η α t ρ t δ t . \bar{R}_{t+1} = \bar{R}_t + \eta\,\alpha_t\,\rho_t\,\delta_t. Rˉt+1=Rˉt+ηαtρtδt.
代入数值:
R ˉ t + 1 = 6 + 0.5 × 0.1 × 2 × 3.3 = 6 + 0.33 = 6.33. \bar{R}_{t+1} = 6 + 0.5 \times 0.1 \times 2 \times 3.3 = 6 + 0.33 = 6.33. Rˉt+1=6+0.5×0.1×2×3.3=6+0.33=6.33.
这表示平均奖励估计从 6 增加到了 6.33。
4. 重点说明与总结
利用TD误差来更新
- TD误差 δ t \delta_t δt 捕捉了当前状态值估计与新采样信息之间的差异。
- 通过乘以步长 α t \alpha_t αt 和重要性采样比率 ρ t \rho_t ρt,我们同时调整了状态的中心化值和平均奖励的估计,使它们能更快、更准确地逼近目标策略下的真实值。
重要性采样的作用
- ρ t \rho_t ρt 校正了行为策略和目标策略之间的差异,确保更新信号更符合目标策略的统计特性。
联动更新
- 这里的更新是“联动”的:同一个TD误差同时用于更新中心化值函数和平均奖励。这意味着两者的估计相互依赖,必须同时收敛。
- 如果平均奖励估计有误,会直接影响TD误差,进而影响值函数更新;反之亦然。
数值例子总结
- 在例子中,经过一次更新,中心化值函数从5变为5.66,而平均奖励从6变为6.33。
- 这显示出:如果当前获得的奖励和未来预期都比原先估计“好”,TD误差为正,那么这两个估计都会相应提高,从而逐步逼近目标策略下真实的平均奖励和状态价值。
图3:学习曲线展示了TD学习在一个on-policy问题和两个off-policy问题中有无奖励中心化情况下的性能表现。
图3的第一列展示了基于值的中心化在前一节讨论的on-policy问题中的表现,其中目标策略以相等概率选择两个动作。在学习速率和最终误差方面,基于值的中心化(红色)与简单中心化(绿色) 表现相当。
图3的后两列展示了两个off-policy实验,其中行为策略分别为:
[
b
1
(
left
∣
⋅
)
,
b
1
(
right
∣
⋅
)
]
=
[
0.7
,
0.3
]
,
[b_1(\text{left}|\cdot), b_1(\text{right}|\cdot)] = [0.7, 0.3],
[b1(left∣⋅),b1(right∣⋅)]=[0.7,0.3],
[
b
2
(
left
∣
⋅
)
,
b
2
(
right
∣
⋅
)
]
=
[
0.3
,
0.7
]
.
[b_2(\text{left}|\cdot), b_2(\text{right}|\cdot)] = [0.3, 0.7].
[b2(left∣⋅),b2(right∣⋅)]=[0.3,0.7].
这两个行为策略是对称的,但产生了不同的学习趋势。
-
对于 b 1 b_1 b1对应的实验,基于值的中心化方法的RMSVE下降速度快于简单中心化,并且最终误差率相近。
- 简单中心化方法对平均奖励的估计存在误差,因此学习得到的值比基于值的中心化方法更大(但仍然小于未进行中心化的情况)。
-
b 2 b_2 b2对应的实验表现更加有趣:
- 在初始阶段,简单中心化方法的RMSVE迅速下降,然后急剧上升,随后又开始下降。
- 这种现象的原因是,初始时平均奖励估计值设为0,但由于 b 2 b_2 b2使智能体的状态分布偏向高奖励的右侧,最终平均奖励估计收敛到了约0.5。
- 当估计值超过真实值 r ( π ) = 0.25 r(\pi) = 0.25 r(π)=0.25时,RMSVE一度较低,但随后估计值快速上升至0.5,导致RMSVE出现峰值。
- 最终,值函数的估计结果对应于一个平均奖励估计约为0.5的情况。
- 相比之下,使用基于值的中心化方法时,平均奖励估计值更接近真实值,因此学习曲线更加平滑。
-
上述现象在更大的折扣因子(图3底部)下表现得更加明显。
总体而言,我们观察到奖励中心化可以提升折扣奖励预测算法(如TD学习)的学习速度,尤其是在折扣因子较大时。
尽管简单的奖励中心化方法已经相当有效,但基于值的奖励中心化更适用于一般的off-policy问题。
接下来,我们将在控制问题的框架下研究奖励中心化。
4 案例研究: 以奖励为中心的 Q-learning
在本节中,我们探讨奖励中心化在Q-learning算法(Watkins & Dayan, 1992)中的影响。具体而言,我们首先基于Devraj和Meyn(2021)的最新研究,给出一个收敛性结果。随后,我们通过各种控制问题,实证分析奖励中心化对Q-learning的表格型、线性和非线性变体的影响。
理论分析:Q-learning的广泛应用很大程度上归因于其off-policy算法的特性:在表格型情况下,它可以在使用任意行为策略(甚至是随机策略)收集数据的同时,保证收敛到最优策略的值函数。
鉴于Q-learning的off-policy特性,我们将其与基于值的奖励中心化结合使用。由于我们采用表格型、线性和非线性版本的Q-learning,我们首先给出其通用更新形式。
在每个时间步 t t t,智能体观察环境并将其转换为特征向量 x t ∈ R d \mathbf{x}_t \in \mathbb{R}^d xt∈Rd,然后选择动作 A t A_t At,观察奖励信号 R t + 1 R_{t+1} Rt+1,接收下一步观测值,并将其转换为 x t + 1 \mathbf{x}_{t+1} xt+1,以此类推。
- 表格型Q-learning中, x t \mathbf{x}_t xt是状态空间大小的独热向量(one-hot vector)。
- 线性Q-learning中, x t \mathbf{x}_t xt可能是瓦片编码(tile-coding)表示。
- 非线性Q-learning中, x t \mathbf{x}_t xt是人工神经网络最后一层的非线性输出。
1. 环境观察与特征表示
每个时间步,智能体从环境获得一个观测值。为了方便后续处理,智能体把这个观测值转换为一个特征向量 x t ∈ R d \mathbf{x}_t \in \mathbb{R}^d xt∈Rd(维度为 d d d 的向量)。
表格型 Q-learning: 如果状态数很少,我们可以用 one-hot 编码。例如,若有 4 个状态,则状态2可以表示为 [ 0 , 1 , 0 , 0 ] ⊤ [0, 1, 0, 0]^\top [0,1,0,0]⊤。
线性 Q-learning: 当状态很多或是连续的时,我们可以采用瓦片编码(tile coding),将连续状态分解成多个二值特征。这样 x t \mathbf{x}_t xt 就是一个稀疏的二值向量。
瓦片编码(Tile Coding) 是一种在强化学习中常用的特征表示方法,主要用于将连续的状态空间离散化成一组离散的特征。其基本思想如下:
- 分割状态空间 假设状态空间是连续的,比如二维空间(例如位置 x x x 和速度 v v v)。我们可以将这个连续空间划分为多个小区域(称为“tile”或“格子”)。
- 多个重叠的划分 为了提高表示的灵活性和精度,通常不会只使用一次划分,而是使用多个不同的划分方式(称为“tilings”),每个 tiling 都将状态空间划分为格子,但各个 tiling 会有不同的偏移量。
- 举个例子:假设我们有两个 tiling。在第一个 tiling 中,格子从 [ 0 , 1 ) , [ 1 , 2 ) , … [0,1), [1,2), \dots [0,1),[1,2),… 开始划分;而在第二个 tiling 中,我们可能将划分偏移 0.5 0.5 0.5,这样格子就是 [ 0.5 , 1.5 ) , [ 1.5 , 2.5 ) , … [0.5,1.5), [1.5,2.5), \dots [0.5,1.5),[1.5,2.5),…。
- 生成二值特征 对于每个 tiling,当我们观察到一个状态时,该状态会落在该 tiling 中的一个特定格子里。我们就可以用一个二值(0或1)来表示这个状态在这个 tiling 中是否位于某个格子内。
- 如果使用 m m m 个 tiling,每个 tiling 都会生成一个二值指示(通常是1表示状态落在这个格子里,0表示不落在),最终整个状态的特征向量就是这 m m m 个二值特征的组合。
- 由于每个 tiling只会在一个格子上激活(即为1),整个特征向量通常是稀疏的(大部分元素都是0)。
- 优点
- 细粒度控制:多个重叠的 tiling 能够捕捉到状态空间中的细微变化,使得函数逼近更平滑。
- 计算简单:生成的特征都是二值的,计算起来非常高效。
举个简单例子
假设我们的状态只有一个连续变量 x x x(例如温度),取值范围为 [ 0 , 10 ] [0, 10] [0,10]。
- 我们设置 3 个 tiling,每个 tiling都把 [0,10] 分成 10 个等长的区间。
- 第一个 tiling 从0开始划分,即区间为 [ 0 , 1 ) , [ 1 , 2 ) , … , [ 9 , 10 ) [0,1), [1,2), \dots, [9,10) [0,1),[1,2),…,[9,10);
- 第二个 tiling 向右偏移 0.3 0.3 0.3,划分为 [ 0.3 , 1.3 ) , [ 1.3 , 2.3 ) , … [0.3,1.3), [1.3,2.3), \dots [0.3,1.3),[1.3,2.3),…;
- 第三个 tiling 向右偏移 0.6 0.6 0.6,划分为 [ 0.6 , 1.6 ) , [ 1.6 , 2.6 ) , … [0.6,1.6), [1.6,2.6), \dots [0.6,1.6),[1.6,2.6),…。
当观测到一个状态 x = 2.4 x = 2.4 x=2.4 时:
- 在第一个 tiling 中, 2.4 2.4 2.4 落在区间 [ 2 , 3 ) [2,3) [2,3);
- 在第二个 tiling 中, 2.4 2.4 2.4 落在区间 [ 2.3 , 3.3 ) [2.3,3.3) [2.3,3.3) ;
- 在第三个 tiling 中, 2.4 2.4 2.4 落在区间 [ 1.6 , 2.6 ) [1.6,2.6) [1.6,2.6) 。
对于每个 tiling,我们把落在的区间对应的位置标记为1,其它位置标记为0。最后,将三个 tiling 的二值向量连接起来,就得到一个稀疏的特征向量,这个向量就作为状态 x = 2.4 x=2.4 x=2.4 的表示。 这种方法使得我们能够将连续变量的细节信息通过离散化的方式表达出来,从而可以用线性方法(例如线性函数逼近)来近似复杂的值函数。
- 非线性 Q-learning: 如果使用神经网络,则通常将原始输入经过多层非线性变换,最后一层的输出就是特征向量 x t \mathbf{x}_t xt。
在所有情况下,智能体通过线性组合特征向量 x t \mathbf{x}_t xt和动作特定的权重向量 w a ∈ R d , ∀ a \mathbf{w}^a \in \mathbb{R}^d, \forall a wa∈Rd,∀a,来获得动作值估计 q ^ \hat{q} q^。
2. Q值估计
对于每个动作 a a a,我们使用一个专门的权重向量 w a ∈ R d \mathbf{w}^a \in \mathbb{R}^d wa∈Rd 来估计动作值。具体来说,估计的 Q 值为: q ^ ( x t , a ) = ( w a ) ⊤ x t . \hat{q}(\mathbf{x}_t, a) = (\mathbf{w}^a)^\top \mathbf{x}_t. q^(xt,a)=(wa)⊤xt. 也就是说,我们用权重向量和特征向量的内积来表示在当前状态下采取动作 a a a 的价值。
2.1. 为什么选择用线性函数逼近 Q 值?
在实际问题中,状态空间可能非常大或连续,我们无法为每个状态-动作对存储一个单独的数值(即表格型方法),这时就需要利用函数逼近的方法来估计 Q 值。
函数逼近的思想: 我们认为 Q 值可以通过状态特征的某种组合来表示。简单而常用的方法是线性逼近,也就是说,我们认为状态 s s s(或其对应的特征向量 x t \mathbf{x}_t xt)和动作 a a a 的 Q 值可以用一个线性函数来近似: q ( s , a ) ≈ ( w a ) ⊤ x t , q(s,a) \approx (\mathbf{w}^a)^\top \mathbf{x}_t, q(s,a)≈(wa)⊤xt, 其中 w a \mathbf{w}^a wa 是与动作 a a a 相关的权重向量。
选择线性结构的原因:
- 简单高效:线性模型简单且计算代价低,便于实时更新。
- 可解释性好:每个特征的权重反映了该特征对动作价值的贡献,便于理解和调试。
- 泛化能力:如果特征设计得当,线性组合能较好地捕捉状态之间的相似性,从而在未见过的状态上也能产生合理的估计。
2.2. 内积形式的公式如何得到?
假设我们使用线性函数逼近 Q 值。设:
- 状态 s s s 被转换为特征向量 x t ∈ R d \mathbf{x}_t \in \mathbb{R}^d xt∈Rd;
- 对于每个动作 (a),有一个相应的权重向量 w a ∈ R d \mathbf{w}^a \in \mathbb{R}^d wa∈Rd。
我们就可以定义 Q 值的估计为这两个向量的内积:
q ^ ( x t , a ) = ( w a ) ⊤ x t = ∑ i = 1 d w i a x t , i . \hat{q}(\mathbf{x}_t, a) = (\mathbf{w}^a)^\top \mathbf{x}_t = \sum_{i=1}^{d} w^a_i\, x_{t,i}. q^(xt,a)=(wa)⊤xt=i=1∑dwiaxt,i.
这个公式的来源和含义可以分解如下:
线性组合: 我们认为动作 a a a 的价值可以看作是状态中各个特征的重要性加权求和。每个分量 x t , i x_{t,i} xt,i 表示状态的某个特征,而对应的 w i a w^a_i wia 表示该特征对选择动作 a a a 后所能获得奖励的重要程度。
内积运算: 内积 ( w a ) ⊤ x t (\mathbf{w}^a)^\top \mathbf{x}_t (wa)⊤xt 实际上就是把每个特征乘以它对应的权重后再求和,这正符合线性模型的定义。这种表示形式既简单又直观,并且可以通过梯度下降等方法高效地进行参数更新。
数学推导:
- 假设我们有一组样本数据 { ( x t , a , q t ) } \{(\mathbf{x}_t, a, q_t)\} {(xt,a,qt)},其中 q t q_t qt 是真实的(或目标的)动作值。
- 我们希望找到一组权重 w a \mathbf{w}^a wa 使得预测值 ( w a ) ⊤ x t (\mathbf{w}^a)^\top \mathbf{x}_t (wa)⊤xt 能尽可能接近 q t q_t qt。
- 这可以通过最小化均方误差来实现:
min w a ∑ t ( q t − ( w a ) ⊤ x t ) 2 . \min_{\mathbf{w}^a} \sum_t \left( q_t - (\mathbf{w}^a)^\top \mathbf{x}_t \right)^2. wamint∑(qt−(wa)⊤xt)2.- 求解这一优化问题得到的形式就是线性回归模型,而预测值自然为内积形式。
2.3. 为什么说“内积表示在当前状态下采取动作 a a a 的价值”?
直观解释: 假设状态特征 x t \mathbf{x}_t xt 表示了当前环境的各种属性(如位置、速度、温度等),而权重向量 w a \mathbf{w}^a wa 表示了对于动作 a a a而言,不同属性的重要性。例如:
- 如果在某个游戏中,特征可能代表“与目标的距离”、“敌人的位置”等;
- 权重向量的各个分量就反映了这些特征在选择特定动作时的重要程度。
内积运算 ( w a ) ⊤ x t (\mathbf{w}^a)^\top \mathbf{x}_t (wa)⊤xt 就是将这些属性和它们的重要性相乘后求和,给出一个数值,该数值越大,说明在当前状态下采取动作 (a) 越有可能获得高回报。
举例说明:
表格型 Q-learning:
假设状态空间只有 4 个状态,使用 one-hot 编码。当状态 s = 2 s=2 s=2 时,其 one-hot 向量为 x t = [ 0 , 1 , 0 , 0 ] ⊤ \mathbf{x}_t = [0, 1, 0, 0]^\top xt=[0,1,0,0]⊤。
对于动作 a a a,假设对应的权重向量为 w a = [ 0.2 , 0.5 , 0.1 , − 0.3 ] ⊤ \mathbf{w}^a = [0.2, 0.5, 0.1, -0.3]^\top wa=[0.2,0.5,0.1,−0.3]⊤。
那么内积
( w a ) ⊤ x t = 0.2 × 0 + 0.5 × 1 + 0.1 × 0 − 0.3 × 0 = 0.5. (\mathbf{w}^a)^\top \mathbf{x}_t = 0.2 \times 0 + 0.5 \times 1 + 0.1 \times 0 - 0.3 \times 0 = 0.5. (wa)⊤xt=0.2×0+0.5×1+0.1×0−0.3×0=0.5.
这里,结果 0.5 就代表在状态2下,动作 a a a 的估计值为 0.5。实际上,这种内积操作相当于查表操作,因为 one-hot 编码会直接选择权重向量中对应位置的值。线性 Q-learning with Tile Coding:
假设我们用 tile coding 将连续状态映射到一个稀疏的二值向量 x t \mathbf{x}_t xt(例如,只有两个特征为1,其余为0)。
如果动作 a a a 对应的权重向量为 w a \mathbf{w}^a wa,内积 ( w a ) ⊤ x t (\mathbf{w}^a)^\top \mathbf{x}_t (wa)⊤xt 就是将这两个激活的特征的权重相加,给出一个数值,代表在这种状态下采取动作 a a a 的综合“好坏”评价。非线性 Q-learning:
在使用神经网络时,最后一层输出的特征向量 x t \mathbf{x}_t xt 已经抽象并综合了环境中的多种信息;而对于每个动作,我们可能有不同的输出头或权重。将两者做内积,即得到一个数值,反映了当前状态下执行该动作的预期收益。2.4. 总结
公式来源: 我们假设 Q 值可以用状态的特征向量和一个动作相关的权重向量的线性组合来逼近,这就是标准的线性函数逼近方法。
内积的含义: 内积 ( w a ) ⊤ x t (\mathbf{w}^a)^\top \mathbf{x}_t (wa)⊤xt 表示将状态中各个特征按各自在动作 a a a 中的重要性加权后求和,输出一个标量,该标量越大说明该动作在当前状态下越好。
为什么这么说: 这种表示方式具有以下优点:
- 简单高效:计算内积的代价低,易于在在线学习中快速更新。
- 直观易懂:每个分量 w i a ⋅ x t , i w_i^a \cdot x_{t,i} wia⋅xt,i 都描述了特征 i i i 对动作 a a a 的贡献,所有贡献的累加得到最终评价。
- 泛化能力:当状态没有完全重复时,线性组合能利用相似的特征来进行推广,提供合理的动作值估计。
在时间步 t t t,基于值的奖励中心化Q-learning使用状态转移 ( x t , A t , R t + 1 , x t + 1 ) (\mathbf{x}_t, A_t, R_{t+1}, \mathbf{x}_{t+1}) (xt,At,Rt+1,xt+1)来更新平均奖励估计和每个动作的权重参数:
w
t
+
1
A
t
≐
w
t
A
t
+
α
t
δ
t
∇
w
t
q
^
(
x
t
,
A
t
)
,
(9)
\mathbf{w}_{t+1}^{A_t} \doteq \mathbf{w}_{t}^{A_t} + \alpha_t \delta_t \nabla_{\mathbf{w}_t} \hat{q}(\mathbf{x}_t, A_t), \tag{9}
wt+1At≐wtAt+αtδt∇wtq^(xt,At),(9)
R
ˉ
t
+
1
≐
R
ˉ
t
+
η
α
t
δ
t
,
(10)
\bar{R}_{t+1} \doteq \bar{R}_t + \eta \alpha_t \delta_t, \tag{10}
Rˉt+1≐Rˉt+ηαtδt,(10)
where,
δ
t
≐
R
t
+
1
−
R
ˉ
t
+
γ
max
a
(
w
t
a
)
⊤
x
t
+
1
−
(
w
t
A
t
)
⊤
x
t
.
\text{where,} \quad \delta_t \doteq R_{t+1} - \bar{R}_t + \gamma \max_{a} (\mathbf{w}_{t}^{a})^\top \mathbf{x}_{t+1} - (\mathbf{w}_{t}^{A_t})^\top \mathbf{x}_t.
where,δt≐Rt+1−Rˉt+γamax(wta)⊤xt+1−(wtAt)⊤xt.
所有算法的完整伪代码见附录A。我们在此给出非正式的收敛性定理表述;完整的定理表述、证明及分析见附录B。
3. 奖励中心化的动机
在一些任务中,奖励信号可能整体偏移一个常数(比如每步都有一个生存奖励)。如果直接使用这些奖励进行更新,Q值可能包含一个很大的常数部分,从而使数值很大,不利于稳定学习。为了解决这个问题,我们减去一个平均奖励的估计 R ˉ t \bar{R}_t Rˉt(也叫“奖励中心化”),使得更新主要反映奖励相对于全局平均水平的偏差。
4. 基于值的奖励中心化 Q-learning 的更新
4.1 定义 TD 误差在每个时间步 t t t,我们观察到一个状态转移 ( x t , A t , R t + 1 , x t + 1 ) (\mathbf{x}_t, A_t, R_{t+1}, \mathbf{x}_{t+1}) (xt,At,Rt+1,xt+1)。 首先,我们计算时序差分(TD)误差,公式为 δ t = [ R t + 1 − R ˉ t ⏟ 中心化奖励 + γ max a ( w t a ) ⊤ x t + 1 − ( w t A t ) ⊤ x t ] . \delta_t = \Bigl[ \underbrace{R_{t+1} - \bar{R}_t}_{\text{中心化奖励}} + \gamma \max_{a} (\mathbf{w}_t^{a})^\top \mathbf{x}_{t+1} - (\mathbf{w}_t^{A_t})^\top \mathbf{x}_t \Bigr]. δt=[中心化奖励 Rt+1−Rˉt+γamax(wta)⊤xt+1−(wtAt)⊤xt]. 这里:
- R t + 1 − R ˉ t R_{t+1} - \bar{R}_t Rt+1−Rˉt 是扣除平均奖励后的即时奖励;
- γ max a ( w t a ) ⊤ x t + 1 \gamma \max_{a} (\mathbf{w}_t^{a})^\top \mathbf{x}_{t+1} γmaxa(wta)⊤xt+1 是下一状态的最大折扣未来价值;
- ( w t A t ) ⊤ x t (\mathbf{w}_t^{A_t})^\top \mathbf{x}_t (wtAt)⊤xt 是当前状态下,针对所选动作 A t A_t At 的当前 Q 值估计。
4.2 权重参数更新
对于所选择的动作 A t A_t At,我们更新其对应的权重向量: w t + 1 A t ≐ w t A t + α t δ t ∇ w t q ^ ( x t , A t ) . (9) \mathbf{w}_{t+1}^{A_t} \doteq \mathbf{w}_{t}^{A_t} + \alpha_t\,\delta_t\, \nabla_{\mathbf{w}_t} \hat{q}(\mathbf{x}_t, A_t). \tag{9} wt+1At≐wtAt+αtδt∇wtq^(xt,At).(9)
- w t A t \mathbf{w}_t^{A_t} wtAt
- 含义:在时间步 t t t 时,与所选动作 A t A_t At 对应的权重向量。
- 作用:用于估计在状态 S t S_t St(或其特征表示 x t \mathbf{x}_t xt)下,采取动作 A t A_t At 的 Q 值。
- 维度:通常为 R d \mathbb{R}^d Rd,其中 d d d 是特征向量的维数。
- w t + 1 A t \mathbf{w}_{t+1}^{A_t} wt+1At
- 含义:经过更新后,在时间步 t + 1 t+1 t+1 对应动作 A t A_t At 的新权重向量。
- 作用:反映了根据当前经验调整后的 Q 值估计参数。
- α t \alpha_t αt
- 含义:时间步 t t t 的学习率。
- 作用:控制每次更新时参数调整的步长,步长越大更新幅度越大;通常需要逐步衰减以保证收敛。
- δ t \delta_t δt
- 含义:在时间步 t t t 计算得到的时序差分(TD)误差,是一个标量。
- 作用:衡量当前 Q 值估计与“真实”目标之间的偏差,具体定义为
δ t = [ R t + 1 − R ˉ t ⏟ 中心化后的即时奖励 + γ max a q ^ ( x t + 1 , a ) − q ^ ( x t , A t ) ] . \delta_t = \Bigl[ \underbrace{R_{t+1} - \bar{R}_t}_{\text{中心化后的即时奖励}} + \gamma \max_{a} \hat{q}(\mathbf{x}_{t+1}, a) - \hat{q}(\mathbf{x}_t, A_t) \Bigr]. δt=[中心化后的即时奖励 Rt+1−Rˉt+γamaxq^(xt+1,a)−q^(xt,At)].
它告诉我们当前估计值低估或高估了多少。- ∇ w t q ^ ( x t , A t ) \nabla_{\mathbf{w}_t} \hat{q}(\mathbf{x}_t, A_t) ∇wtq^(xt,At)
- 含义:对当前 Q 值估计 q ^ ( x t , A t ) \hat{q}(\mathbf{x}_t, A_t) q^(xt,At) 关于权重向量 w t A t \mathbf{w}_t^{A_t} wtAt 的梯度。
- 作用:指明在参数空间中哪一个方向可以减少误差。
- 对于线性模型:如果 q ^ ( x t , A t ) = ( w t A t ) ⊤ x t \hat{q}(\mathbf{x}_t, A_t) = (\mathbf{w}_t^{A_t})^\top \mathbf{x}_t q^(xt,At)=(wtAt)⊤xt,则梯度就是 x t \mathbf{x}_t xt。
- x t \mathbf{x}_t xt
- 含义:在时间步 t t t 下,环境观测经过特征转换后得到的特征向量。
- 作用:用于表示当前状态的信息,是所有更新的基础输入。
- A t A_t At
- 含义:在时间步 t t t 智能体选择的动作。
- 作用:更新只针对实际选择的动作对应的权重向量进行调整。
对于线性模型, q ^ ( x t , A t ) = ( w t A t ) ⊤ x t \hat{q}(\mathbf{x}_t, A_t) = (\mathbf{w}_t^{A_t})^\top \mathbf{x}_t q^(xt,At)=(wtAt)⊤xt,其梯度就是 x t \mathbf{x}_t xt。因此,这条更新可以写为: w t + 1 A t ≐ w t A t + α t δ t x t . \mathbf{w}_{t+1}^{A_t} \doteq \mathbf{w}_{t}^{A_t} + \alpha_t\,\delta_t\,\mathbf{x}_t. wt+1At≐wtAt+αtδtxt. 其中, α t \alpha_t αt 是学习率。
对于线性函数
q ^ ( x t , A t ) = ( w t A t ) ⊤ x t , \hat{q}(\mathbf{x}_t, A_t) = (\mathbf{w}_t^{A_t})^\top \mathbf{x}_t, q^(xt,At)=(wtAt)⊤xt,
将其视为关于权重 w t A t \mathbf{w}_t^{A_t} wtAt 的函数,我们可以写成
f ( w ) = w ⊤ x t . f(\mathbf{w}) = \mathbf{w}^\top \mathbf{x}_t. f(w)=w⊤xt.
在这个表达式中, x t \mathbf{x}_t xt 被视为常数向量,而 w \mathbf{w} w 是变量。求这个函数关于 w \mathbf{w} w 的梯度,等价于对每个分量 w i w_i wi 求偏导数:
∂ f ∂ w i = x t , i . \frac{\partial f}{\partial w_i} = x_{t,i}. ∂wi∂f=xt,i.
因此,整个梯度就是
∇ w f ( w ) = x t . \nabla_{\mathbf{w}} f(\mathbf{w}) = \mathbf{x}_t. ∇wf(w)=xt.
这就是为什么在更新权重时,我们可以将梯度部分直接替换为 x t \mathbf{x}_t xt,从而得到更新公式
w t + 1 A t = w t A t + α t δ t x t , \mathbf{w}_{t+1}^{A_t} = \mathbf{w}_{t}^{A_t} + \alpha_t\,\delta_t\,\mathbf{x}_t, wt+1At=wtAt+αtδtxt,4.3 平均奖励更新
同时,我们也更新平均奖励的估计: R ˉ t + 1 ≐ R ˉ t + η α t δ t , (10) \bar{R}_{t+1} \doteq \bar{R}_t + \eta\,\alpha_t\,\delta_t, \tag{10} Rˉt+1≐Rˉt+ηαtδt,(10) 其中, η \eta η 是一个调节平均奖励更新速度的因子。这一更新利用同样的TD误差 δ t \delta_t δt,使得平均奖励估计能根据当前所获得的“额外奖励”进行调整。
5. 数值例子
假设某一时间步 t t t 我们有如下数据:
- 状态特征: x t = ( 1 0 0 ) \mathbf{x}_t = \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} xt= 100 ;
- 当前选择的动作 A t A_t At 的权重: w t A t = ( 0.5 0.2 − 0.1 ) \mathbf{w}_t^{A_t} = \begin{pmatrix} 0.5 \\ 0.2 \\ -0.1 \end{pmatrix} wtAt= 0.50.2−0.1 ;
- 下一状态特征: x t + 1 = ( 0 1 0 ) \mathbf{x}_{t+1} = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix} xt+1= 010 ;
- 假设其他动作的 Q 值计算后, max a ( w t a ) ⊤ x t + 1 = 0.4 \max_{a} (\mathbf{w}_t^{a})^\top \mathbf{x}_{t+1} = 0.4 maxa(wta)⊤xt+1=0.4(这里我们只需要最大值。注意:这里是下一状态特征 x t + 1 \mathbf{x}_{t+1} xt+1);
- 实际获得奖励: R t + 1 = 8 R_{t+1} = 8 Rt+1=8;
- 当前平均奖励估计: R ˉ t = 6 \bar{R}_t = 6 Rˉt=6;
- 折扣因子: γ = 0.9 \gamma = 0.9 γ=0.9;
- 学习率: α t = 0.1 \alpha_t = 0.1 αt=0.1;
- 平均奖励更新因子: η = 0.5 \eta = 0.5 η=0.5。
步骤 1:计算当前动作的 Q 值 ( w t A t ) ⊤ x t = 0.5 × 1 + 0.2 × 0 + ( − 0.1 ) × 0 = 0.5. (\mathbf{w}_t^{A_t})^\top \mathbf{x}_t = 0.5 \times 1 + 0.2 \times 0 + (-0.1) \times 0 = 0.5. (wtAt)⊤xt=0.5×1+0.2×0+(−0.1)×0=0.5.
步骤 2:计算 TD 误差 δ t \delta_t δt
首先,计算中心化奖励: R t + 1 − R ˉ t = 8 − 6 = 2. R_{t+1} - \bar{R}_t = 8 - 6 = 2. Rt+1−Rˉt=8−6=2. 然后计算未来奖励部分: γ max a ( w t a ) ⊤ x t + 1 = 0.9 × 0.4 = 0.36. \gamma \max_{a} (\mathbf{w}_t^{a})^\top \mathbf{x}_{t+1} = 0.9 \times 0.4 = 0.36. γamax(wta)⊤xt+1=0.9×0.4=0.36.
因此, δ t = [ 2 + 0.36 − 0.5 ] = 1.86. \delta_t = \bigl[2 + 0.36 - 0.5\bigr] = 1.86. δt=[2+0.36−0.5]=1.86.步骤 3:更新权重向量 (公式(9)) 对于线性函数,梯度为 x t \mathbf{x}_t xt,所以: w t + 1 A t = ( 0.5 0.2 − 0.1 ) + 0.1 × 1.86 × ( 1 0 0 ) = ( 0.5 + 0.186 0.2 − 0.1 ) = ( 0.686 0.2 − 0.1 ) . \mathbf{w}_{t+1}^{A_t} = \begin{pmatrix} 0.5 \\ 0.2 \\ -0.1 \end{pmatrix} + 0.1 \times 1.86 \times \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 0.5 + 0.186 \\ 0.2 \\ -0.1 \end{pmatrix} = \begin{pmatrix} 0.686 \\ 0.2 \\ -0.1 \end{pmatrix}. wt+1At= 0.50.2−0.1 +0.1×1.86× 100 = 0.5+0.1860.2−0.1 = 0.6860.2−0.1 .
步骤 4:更新平均奖励 (公式(10)) R ˉ t + 1 = 6 + 0.5 × 0.1 × 1.86 = 6 + 0.093 = 6.093. \bar{R}_{t+1} = 6 + 0.5 \times 0.1 \times 1.86 = 6 + 0.093 = 6.093. Rˉt+1=6+0.5×0.1×1.86=6+0.093=6.093.
解释:
- 权重更新使得对状态 x t \mathbf{x}_t xt 下动作 A t A_t At 的估计从 0.5 增加到了 0.686,这反映了当前经验告诉我们,该动作的价值应该更高。
- 同时,平均奖励估计从 6 增加到了 6.093,使得后续更新中的中心化奖励 R t + 1 − R ˉ t R_{t+1} - \bar{R}_t Rt+1−Rˉt 能更贴近目标策略实际获得的奖励水平。
定理1 如果由固定行为策略诱导的马尔可夫链是不可约的,并且每个状态-动作对的步长参数被适当缩小,那么基于值的奖励中心化的表格型Q-learning(公式(9)–(10)) 几乎必然收敛(almost surely):
Q t Q_t Qt和 R ˉ t \bar{R}_t Rˉt收敛到以下Bellman方程的特定解 ( q ~ γ , r ˉ ) (\tilde{q}^{\gamma}, \bar{r}) (q~γ,rˉ):
q ~ γ ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) ( r − r ˉ + γ max a ′ q ~ γ ( s ′ , a ′ ) ) . (11) \tilde{q}^{\gamma}(s, a) = \sum_{s', r} p(s', r \mid s, a) \left( r - \bar{r} + \gamma \max_{a'} \tilde{q}^{\gamma}(s', a') \right). \tag{11} q~γ(s,a)=s′,r∑p(s′,r∣s,a)(r−rˉ+γa′maxq~γ(s′,a′)).(11)
该收敛性证明是Devraj和Meyn(2021)最新研究成果的直接推论,他们表明,在Q-learning中从奖励中减去某个量可以显著改善样本复杂度界限。
根据所减去的量的不同,存在一整个Q-learning变体族,它们在表格型情况下几乎必然收敛,满足:
Q
~
∞
γ
=
q
∗
γ
−
k
1
−
γ
1
,
\tilde{\mathbf{Q}}_{\infty}^{\gamma} = \mathbf{q}_{\ast}^{\gamma} - \frac{k}{1-\gamma} \mathbf{1},
Q~∞γ=q∗γ−1−γk1,
其中:
- Q ~ ∞ γ \tilde{\mathbf{Q}}_{\infty}^{\gamma} Q~∞γ 表示最终的渐近值估计向量,
- q ∗ γ \mathbf{q}_{\ast}^{\gamma} q∗γ 是最优策略 π ∗ γ \pi_{\ast}^{\gamma} π∗γ在折扣因子 γ \gamma γ下的折扣动作值函数,
- k k k 依赖于 q ∗ γ q_{\ast}^{\gamma} q∗γ和两个算法参数 μ \mu μ和 κ \kappa κ。
需要注意的是,标准(未中心化)折扣值函数 q ∗ γ q_{\ast}^{\gamma} q∗γ存在一个与状态-动作无关的偏移量 r ( π ∗ γ ) / ( 1 − γ ) r(\pi_{\ast}^{\gamma})/(1-\gamma) r(π∗γ)/(1−γ)。相对Q-learning(Relative Q-learning)可以去除其中的 k / ( 1 − γ ) k/(1-\gamma) k/(1−γ)部分,这一特性非常有前景。
1. 问题背景与目标
在标准 Q-learning 中,我们希望学习一个动作值函数 q ( s , a ) q(s, a) q(s,a),其满足经典的 Bellman 方程。对于带有折扣因子 γ \gamma γ 的情形,理想的最优动作值函数(即最优策略 π ∗ \pi_\ast π∗ 的动作值函数)满足
q ∗ γ ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ max a ′ q ∗ γ ( s ′ , a ′ ) ] . q_\ast^\gamma(s,a) = \sum_{s',r} p(s',r \mid s,a) \Bigl[r + \gamma \max_{a'} q_\ast^\gamma(s',a')\Bigr]. q∗γ(s,a)=s′,r∑p(s′,r∣s,a)[r+γa′maxq∗γ(s′,a′)].
然而,通常我们会发现:
- 该函数存在一个状态无关的常数偏移,具体来说,在平均奖励形式中,这个偏移为 r ( π ∗ γ ) 1 − γ , \frac{r(\pi_\ast^\gamma)}{1-\gamma}, 1−γr(π∗γ), 其中 r ( π ∗ γ ) r(\pi_\ast^\gamma) r(π∗γ) 是最优策略在平均意义下的奖励。
- 当折扣因子 γ \gamma γ 非常接近 1 时,这个偏移非常大,使得数值范围膨胀,从而给函数逼近和算法稳定性带来困难。
为了解决这个问题,研究者提出奖励中心化的思想,即从每步奖励中减去一个估计的平均奖励,从而使得学习主要关注奖励的“相对”差异而非绝对值。特别地,基于值的奖励中心化方法不仅在更新 Q 值时使用“中心化奖励”( r − r ˉ r - \bar{r} r−rˉ),而且利用同一个时序差分(TD)误差同时更新平均奖励的估计。这样做有两个好处:
- 消除由于大常数偏移带来的数值问题;
- 在 off-policy 情况下(数据由行为策略生成,而我们要估计目标策略的价值),利用 TD 误差(经重要性采样比率校正)可以更好地逼近目标策略的平均奖励。
2. 定理1及其核心公式
定理1声明:
如果由固定行为策略诱导的马尔可夫链是不可约的(即从任一状态都可以到达任一状态),且每个状态-动作对的步长参数适当减小(满足 Robbins–Monro 条件),那么基于值的奖励中心化的表格型 Q-learning(见公式(9)–(10))几乎必然(almost surely)收敛。也就是说,算法中的 Q 值估计 Q t Q_t Qt 和平均奖励估计 R ˉ t \bar{R}_t Rˉt 将收敛到下述 Bellman 方程的一个特定解:
q ~ γ ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r − r ˉ + γ max a ′ q ~ γ ( s ′ , a ′ ) ] . (11) \tilde{q}^{\gamma}(s, a) = \sum_{s', r} p(s', r \mid s, a) \Bigl[r - \bar{r} + \gamma \max_{a'} \tilde{q}^{\gamma}(s', a')\Bigr]. \tag{11} q~γ(s,a)=s′,r∑p(s′,r∣s,a)[r−rˉ+γa′maxq~γ(s′,a′)].(11)这里:
- q ~ γ ( s , a ) \tilde{q}^{\gamma}(s,a) q~γ(s,a) 就是奖励中心化后的动作值函数,即每一步奖励先减去平均奖励( r ˉ \bar{r} rˉ)后再进行折扣累加。
- r ˉ \bar{r} rˉ 是算法最终收敛时的平均奖励估计。
进一步,理论证明表明,根据我们从奖励中减去的具体量(即不同的中心化方法),存在一个Q-learning变体族,它们在表格型情况下几乎必然收敛,并且其渐近解满足
Q ~ ∞ γ = q ∗ γ − k 1 − γ 1 , \tilde{\mathbf{Q}}_{\infty}^{\gamma} = \mathbf{q}_{\ast}^{\gamma} - \frac{k}{1-\gamma} \mathbf{1}, Q~∞γ=q∗γ−1−γk1,
其中:
- Q ~ ∞ γ \tilde{\mathbf{Q}}_{\infty}^{\gamma} Q~∞γ 表示最终收敛的 Q 值向量(对所有状态-动作对);
- q ∗ γ \mathbf{q}_{\ast}^{\gamma} q∗γ 是最优策略在折扣因子 γ \gamma γ 下的最优动作值函数向量;
- 1 \mathbf{1} 1 是全1向量;
- k k k 是一个与 q ∗ γ q_\ast^\gamma q∗γ 以及算法参数 μ \mu μ 和 κ \kappa κ(这两个参数在算法中用于调整更新幅度和偏移)的值有关的常数。
这意味着,相较于标准 Q-learning,奖励中心化 Q-learning 的估计少了一个状态无关的常数偏移。而标准 Q-learning 的解中会有 r ( π ∗ γ ) / ( 1 − γ ) r(\pi_\ast^\gamma)/(1-\gamma) r(π∗γ)/(1−γ) 这一大偏移;而通过“相对”或“奖励中心化”方法,我们可以去除这一部分,或至少使其变得更小。
在标准折扣奖励设置中,假设每步奖励恒定为 c c c,那么从一个状态开始的总折扣奖励为: ∑ t = 0 ∞ γ t c = c ⋅ 1 1 − γ . \sum_{t=0}^{\infty} \gamma^t c = c \cdot \frac{1}{1-\gamma}. t=0∑∞γtc=c⋅1−γ1.
1. 几何级数的定义
一个最简单的几何级数(geometric series) 是下列无穷求和:
∑ t = 0 ∞ γ t = 1 + γ + γ 2 + γ 3 + ⋯ \sum_{t=0}^{\infty} \gamma^t \;=\; 1 + \gamma + \gamma^2 + \gamma^3 + \cdots t=0∑∞γt=1+γ+γ2+γ3+⋯
其中 γ \gamma γ 是一个常数(在强化学习中通常是折扣因子, γ ∈ [ 0 , 1 ) \gamma \in [0,1) γ∈[0,1))。
2. 形式推导
假设我们把这个无穷级数的部分和(从 0 到 n n n)记为 S n S_n Sn:
S n = 1 + γ + γ 2 + ⋯ + γ n . S_n = 1 + \gamma + \gamma^2 + \cdots + \gamma^n. Sn=1+γ+γ2+⋯+γn.
做一个小技巧:我们把它乘以 γ \gamma γ:
γ S n = γ + γ 2 + ⋯ + γ n + 1 . \gamma S_n = \gamma + \gamma^2 + \cdots + \gamma^{n+1}. γSn=γ+γ2+⋯+γn+1.
现在,把这两行相减:
S n − γ S n = ( 1 + γ + ⋯ + γ n ) − ( γ + γ 2 + ⋯ + γ n + 1 ) . S_n - \gamma S_n = (1 + \gamma + \cdots + \gamma^n) - (\gamma + \gamma^2 + \cdots + \gamma^{n+1}). Sn−γSn=(1+γ+⋯+γn)−(γ+γ2+⋯+γn+1).
- 左边合并: S n − γ S n = ( 1 − γ ) S n S_n - \gamma S_n = (1 - \gamma)\,S_n Sn−γSn=(1−γ)Sn。
- 右边逐项相减后,几乎所有项都能抵消,只剩下第一个“1”和最后一个“ − γ n + 1 -\gamma^{n+1} −γn+1”:
( 1 + γ + ⋯ + γ n ) − ( γ + γ 2 + ⋯ + γ n + 1 ) = 1 − γ n + 1 . (1 + \gamma + \cdots + \gamma^n) - (\gamma + \gamma^2 + \cdots + \gamma^{n+1}) = 1 - \gamma^{n+1}. (1+γ+⋯+γn)−(γ+γ2+⋯+γn+1)=1−γn+1.
所以我们得到:
( 1 − γ ) S n = 1 − γ n + 1 . (1 - \gamma)\,S_n = 1 - \gamma^{n+1}. (1−γ)Sn=1−γn+1.
只要 γ ≠ 1 \gamma \neq 1 γ=1,可以把 1 − γ 1 - \gamma 1−γ 移到右边:
S n = 1 − γ n + 1 1 − γ . S_n = \frac{1 - \gamma^{n+1}}{1 - \gamma}. Sn=1−γ1−γn+1.3. n → ∞ n \to \infty n→∞ 的极限
如果 ∣ γ ∣ < 1 |\gamma| < 1 ∣γ∣<1,那么 γ n + 1 \gamma^{n+1} γn+1 随着 n → ∞ n \to \infty n→∞ 会趋于 0。也就是说, γ n + 1 → 0 \gamma^{n+1} \to 0 γn+1→0。于是:
lim n → ∞ S n = lim n → ∞ 1 − γ n + 1 1 − γ = 1 − 0 1 − γ = 1 1 − γ . \lim_{n\to\infty} S_n = \lim_{n\to\infty} \frac{1 - \gamma^{n+1}}{1 - \gamma} = \frac{1 - 0}{1 - \gamma} = \frac{1}{1-\gamma}. n→∞limSn=n→∞lim1−γ1−γn+1=1−γ1−0=1−γ1.
这就证明了:
∑ t = 0 ∞ γ t = 1 1 − γ , 只要 ∣ γ ∣ < 1. \sum_{t=0}^{\infty} \gamma^t = \frac{1}{1-\gamma}, \quad\text{只要 }|\gamma| < 1. t=0∑∞γt=1−γ1,只要 ∣γ∣<1.
也就是说,一个固定的奖励 c c c 被无限累积后,会放大为 c / ( 1 − γ ) c/(1-\gamma) c/(1−γ)(当 γ \gamma γ 接近1时,这个放大效应尤为明显)。重要事实:
- 如果你在每一步的奖励中加上一个常数 c c c,则整个 Q 函数会被抬高 c / ( 1 − γ ) c/(1-\gamma) c/(1−γ);
- 反之,若你在每步奖励中减去一个常数 c c c,则 Q 函数会整体下降 c / ( 1 − γ ) c/(1-\gamma) c/(1−γ)。
这种“线性”效应源于折扣累积求和的几何级数性质。
1. 折扣累积奖励的几何级数性质
在标准折扣奖励设置里,如果我们从某个状态(或状态-动作对)开始,未来每一步都获得奖励 r t r_t rt,那么对应的“价值”(或者 Q
值)就是累积的折扣和:
∑ t = 0 ∞ γ t r t , \sum_{t=0}^{\infty} \gamma^t \,r_t, t=0∑∞γtrt, 其中 γ ∈ [ 0 , 1 ) \gamma \in [0,1) γ∈[0,1) 是折扣因子。
如果每步奖励恒等于一个常数 c c c,即 r t = c r_t = c rt=c,那么累积折扣和就是:
∑ t = 0 ∞ γ t c = c ⋅ ∑ t = 0 ∞ γ t = c ⋅ 1 1 − γ ( 当 0 ≤ γ < 1 ) . \sum_{t=0}^{\infty} \gamma^t c = c \cdot \sum_{t=0}^{\infty} \gamma^t = c \cdot \frac{1}{1-\gamma} \quad(\text{当 } 0 \le \gamma < 1). t=0∑∞γtc=c⋅t=0∑∞γt=c⋅1−γ1(当 0≤γ<1).因此,如果原先每步奖励是 0,现在变成了每步奖励都是 c c c,则价值(或 Q 值)就整体抬高了 c / ( 1 − γ ) c/(1-\gamma) c/(1−γ)。这是最核心的数学根源:折扣累加会把一个每步常数 c c c 放大成 c / ( 1 − γ ) c/(1-\gamma) c/(1−γ)。
2. 从 Bellman 方程角度看常数偏移
2.1 标准 Q-learning 的 Bellman 方程
在 Q-learning 中(以最简单的一步更新为例),我们有更新式:
Q ( s , a ) ← Q ( s , a ) + α [ r + γ max a ′ Q ( s ′ , a ′ ) − Q ( s , a ) ] . Q(s,a) \leftarrow Q(s,a) + \alpha \Bigl[r + \gamma \max_{a'} Q(s',a') - Q(s,a)\Bigr]. Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)].
从理论上,如果我们令最优 Q 值为 q ∗ ( s , a ) q_\ast(s,a) q∗(s,a),它满足经典的 Bellman 最优方程:
q ∗ ( s , a ) = E [ r + γ max a ′ q ∗ ( s ′ , a ′ ) ∣ s , a ] . q_\ast(s,a) = \mathbb{E}\Bigl[r + \gamma \max_{a'} q_\ast(s',a') \;\Bigm|\; s,a\Bigr]. q∗(s,a)=E[r+γa′maxq∗(s′,a′) s,a].
2.2 在奖励中加入常数 c c c
假设现在把每一步的奖励都变成 r + c r + c r+c。那么新的最优 Q 值(记为 q ∗ ′ ( s , a ) q_\ast'(s,a) q∗′(s,a))会满足:
q ∗ ′ ( s , a ) = E [ ( r + c ) + γ max a ′ q ∗ ′ ( s ′ , a ′ ) ] . q_\ast'(s,a) = \mathbb{E}\Bigl[(r + c) + \gamma \max_{a'} q_\ast'(s',a')\Bigr]. q∗′(s,a)=E[(r+c)+γa′maxq∗′(s′,a′)].
如果你对比这两个方程,就能看出,新方程比旧方程多了一项 c c c(在期望内)。通过类似的代数操作或者直接使用几何级数的思路,可以推导:
q ∗ ′ ( s , a ) = q ∗ ( s , a ) + c 1 − γ . q_\ast'(s,a) = q_\ast(s,a) + \frac{c}{1-\gamma}. q∗′(s,a)=q∗(s,a)+1−γc.
也就是说,所有状态-动作对的 Q 值都增加了同样一个常数 c 1 − γ \frac{c}{1-\gamma} 1−γc。这就是 “常数偏移” 的由来:对奖励加常数,就会对 Q 值加上 c 1 − γ \frac{c}{1-\gamma} 1−γc。为什么加常数会出现 c 1 − γ \frac{c}{1-\gamma} 1−γc?
归根结底,是因为折扣累加 ∑ t = 0 ∞ γ t c \sum_{t=0}^\infty \gamma^t c ∑t=0∞γtc 的结果是 c / ( 1 − γ ) c/(1-\gamma) c/(1−γ)。
Q-learning 本质上是在估计这类折扣累加的期望,所以常数 c c c 会被“放大”成 c 1 − γ \frac{c}{1-\gamma} 1−γc。3. 具体数值例子
让我们用一个极简的数值例子来展示“加上一个常数,Q 值就出现对应的偏移”这个现象。
3.1 单状态单动作的例子
- 假设我们有一个只有单状态 s s s、单动作 a a a 的 MDP(就像一个小玩具问题),每步奖励恒定为 2,折扣因子 γ = 0.9 \gamma = 0.9 γ=0.9。
- 原始情况:
- 每步奖励 r = 2 r=2 r=2;
- Q 值是 2 1 − 0.9 = 2 0.1 = 20. \frac{2}{1-0.9} = \frac{2}{0.1} = 20. 1−0.92=0.12=20.
给奖励加常数
- 如果现在把每步奖励都改成 r ′ = 2 + 5 = 7 r' = 2 + 5 = 7 r′=2+5=7,那么新的 Q 值将是 7 1 − 0.9 = 70 \frac{7}{1-0.9} = 70 1−0.97=70。
- 和原来相比,Q 值多了 70 − 20 = 50 70 - 20 = 50 70−20=50。而这个 50 正好是 5 0.1 = 50 \frac{5}{0.1} = 50 0.15=50。
- 可以看到,每步加 5,最终 Q 值就多了 5 1 − 0.9 = 50 \frac{5}{1-0.9} = 50 1−0.95=50。
给奖励减常数
- 如果把每步奖励都改成 r ′ = 2 − 1 = 1 r' = 2 - 1 = 1 r′=2−1=1,那么新的 Q 值就是 1 1 − 0.9 = 10 \frac{1}{1-0.9} = 10 1−0.91=10。
- 和原来 20 相比,少了 10。这个 10 就是 1 0.1 = 10 \frac{1}{0.1} = 10 0.11=10。
- 即“每步减 1 => Q 值少 1 1 − γ \frac{1}{1-\gamma} 1−γ1 = 10”。
结论:在这个简单例子里,一旦你改变每步奖励 + c +c +c,Q 值就会变成原来的加上 c 1 − γ \frac{c}{1-\gamma} 1−γc。这完全吻合我们前面的公式和推导。
2.1 奖励中心化与其误差
在奖励中心化方法中,我们尝试从每一步奖励中减去一个估计的平均奖励。理想情况下,如果真实平均奖励为 r ( π ) r(\pi) r(π)(例如最优策略的平均奖励),我们希望使用 r ( π ) r(\pi) r(π) 来中心化奖励,即用 r − r ( π ) r - r(\pi) r−r(π) 代替原始奖励 r r r。
- 如果每步奖励为 r r r ,理想中心化后得到的奖励是 r − r ( π ) r - r(\pi) r−r(π)。
- 那么理想情况下的 Q 值(中心化后)将为: q ~ π γ = r − r ( π ) 1 − γ . \tilde{q}_\pi^\gamma = \frac{r - r(\pi)}{1-\gamma}. q~πγ=1−γr−r(π). 但如果我们估计平均奖励时出现误差,也就是说我们使用的平均奖励是 r ˉ \bar{r} rˉ 而非 r ( π ) r(\pi) r(π),我们可以写成 r ˉ = r ( π ) − k , \bar{r} = r(\pi) - k, rˉ=r(π)−k, 其中 k k k 表示估计误差(如果 k > 0 k > 0 k>0,说明我们低估了平均奖励)。
此时,每一步的中心化奖励就变为 r − r ˉ = r − ( r ( π ) − k ) = ( r − r ( π ) ) + k . r - \bar{r} = r - (r(\pi) - k) = (r - r(\pi)) + k. r−rˉ=r−(r(π)−k)=(r−r(π))+k. 也就是说,我们实际上在每个时间步多加了一个常数 k k k。由于折扣累积效应,这个误差在 Q 值上会放大为 k 1 − γ . \frac{k}{1-\gamma}. 1−γk.
2.2 不唯一性与常数偏移
当我们写出中心化 Q-learning 的 Bellman 方程时,形式上有: q ~ γ ( s , a ) = ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r − r ˉ + γ max a ′ q ~ γ ( s ′ , a ′ ) ] . \tilde{q}^\gamma(s,a) = \sum_{s',r} p(s',r\mid s,a)\Bigl[ r - \bar{r} + \gamma\,\max_{a'}\tilde{q}^\gamma(s',a') \Bigr]. q~γ(s,a)=s′,r∑p(s′,r∣s,a)[r−rˉ+γa′maxq~γ(s′,a′)]. 假设我们能找到一组理想的解 q ~ π γ ( s , a ) \tilde{q}_\pi^\gamma(s,a) q~πγ(s,a)(对应于精确中心化,即 r ˉ = r ( π ) \bar{r} = r(\pi) rˉ=r(π))。如果我们实际上使用了 r ˉ = r ( π ) − k \bar{r} = r(\pi) - k rˉ=r(π)−k,那么每个时间步的奖励增加了 k k k(注意这里增加了,因为 r − r ˉ = ( r − r ( π ) ) + k r - \bar{r} = (r - r(\pi)) + k r−rˉ=(r−r(π))+k),其累积效果就是使 Q 值整体增加 k / ( 1 − γ ) k/(1-\gamma) k/(1−γ)。
因此,渐近解就变成: q ~ γ ( s , a ) = q ~ π γ ( s , a ) + k 1 − γ . \tilde{q}^\gamma(s,a) = \tilde{q}_\pi^\gamma(s,a) + \frac{k}{1-\gamma}. q~γ(s,a)=q~πγ(s,a)+1−γk.(这里的符号问题取决于定义;有时我们写为减去 k / ( 1 − γ ) k/(1-\gamma) k/(1−γ) 也一样,因为你可以定义 q ~ π γ \tilde{q}_\pi^\gamma q~πγ为理想中心化值为0。)
统一表示为: Q ~ ∞ γ = q ∗ γ − k 1 − γ 1 , \tilde{\mathbf{Q}}_{\infty}^{\gamma} = \mathbf{q}_{\ast}^{\gamma} - \frac{k}{1-\gamma}\mathbf{1}, Q~∞γ=q∗γ−1−γk1, 其中:
- q ∗ γ \mathbf{q}_{\ast}^{\gamma} q∗γ 是标准(未中心化)最优 Q 值向量,
- Q ~ ∞ γ \tilde{\mathbf{Q}}_{\infty}^{\gamma} Q~∞γ 是经过奖励中心化(使用不完美的平均奖励估计)后收敛的 Q 值向量,
- 1 \mathbf{1} 1 表示所有状态动作都加上同样的偏移。
换句话说,这个公式说明了: 不同的奖励中心化方法(即减去不同的平均奖励估计)最终只会导致一个状态无关的常数偏移,而不会改变状态-动作之间的相对差异。
Devraj和Meyn将 μ \mu μ和 κ \kappa κ的选择作为开放问题 。我们证明,基于值的奖励中心化Q-learning可以被看作是他们算法族的一个特例,其中 μ \mu μ和 κ \kappa κ取特定值。
此外,我们在附录B中进一步证明,这些参数选择可以显著减少状态无关的偏移量。由于这种等价性,我们能够利用他们的理论框架,证明几乎必然收敛性,并继承其强大的方差减少特性。
参数的来源: μ \mu μ 和 κ \kappa κ 是 Devraj 和 Meyn 在他们的工作中提出的,用来调整从奖励中减去一个量(即中心化部分)的更新幅度和状态无关偏移的校正。它们在理论上是作为一个算法族的自由参数出现,表示“你可以从奖励中减去不同的量,而这将影响 Q 值更新的样本复杂度和方差。”
我们的方法作为特例: 我们证明了,基于值的奖励中心化 Q-learning 可以看作是这一算法族中的一个特例——也就是说,如果你选择特定的 μ \mu μ 和 κ \kappa κ 值(例如使更新比例正好匹配我们在公式(9)–(10)中所用的更新),那么你就得到了我们提出的算法。这意味着,我们的方法在隐含上对应于 Devraj 和 Meyn 所讨论的那一类算法中的一个具体成员。
开放问题: Devraj 和 Meyn 将如何选择 μ \mu μ 和 κ \kappa κ 最优化视为一个开放问题,因为在不同的环境下,最佳的参数值可能不同。而我们这里的证明展示了一种特定参数设置下的情况,从而为他们的参数选择提供了一个实例,也说明了基于值的奖励中心化方法具有良好的收敛性和方差降低特性。
举例说明
假设在某个离散状态空间的任务中:
- 传统 Q-learning 会收敛到一个动作值函数 q ∗ γ q_\ast^\gamma q∗γ,其中每个状态-动作对的值都包含一个与所有状态无关的偏移 r ( π ∗ ) / ( 1 − γ ) r(\pi_\ast)/(1-\gamma) r(π∗)/(1−γ)(例如,如果平均奖励 r ( π ∗ ) = 5 r(\pi_\ast)=5 r(π∗)=5 且 γ = 0.9 \gamma=0.9 γ=0.9,这个偏移为 5 / 0.1 = 50 5/0.1 = 50 5/0.1=50)。
- 如果我们采用奖励中心化,那么理想情况下我们希望将这个大偏移消除,使得 Q 值只反映各状态间的相对优势。
现在,Devraj 和 Meyn 提出了一族算法,通过从奖励中减去一个量来达到这个目标。在这一族中,不同的 μ \mu μ 和 κ \kappa κ 可能会导致最终收敛的 Q 值为: Q ~ ∞ γ = q ∗ γ − k 1 − γ 1 , \tilde{Q}_\infty^\gamma = q_\ast^\gamma - \frac{k}{1-\gamma}\mathbf{1}, Q~∞γ=q∗γ−1−γk1,其中 k k k 依赖于 μ \mu μ 和 κ \kappa κ 的选择。如果我们能选择 μ \mu μ 和 κ \kappa κ 使得 k = r ( π ∗ ) k = r(\pi_\ast) k=r(π∗)(或者更理想地使 k k k 接近 0),那么中心化 Q-learning 就能有效地消除那个大常数偏移。我们证明的结果正是表明,在特定参数设置下(即特定的 μ \mu μ 和 κ \kappa κ 值),我们的基于值的奖励中心化 Q-learning 就与这个理想情况对应起来。
实验: 我们在一组控制问题上对有无奖励中心化的Q-learning进行了实验,涉及表格型、线性和非线性函数逼近(完整伪代码见附录A)。这些问题主要来源于CSuite(Zhao et al., 2022)。该存储库详细指定了每个问题的细节,我们在此仅提供高层描述。
实验评估从表格型问题开始,随后扩展到需要函数逼近的问题。
访问控制排队问题(Access-Control Queuing Problem)(Sutton & Barto, 2018)是一个持续性问题,其中智能体负责管理进入服务器集群的作业。
- 作业以相等概率从四种优先级(1, 2, 4, 8)之一到达队列前端,智能体需要在每个时间步决定是否接受或拒绝作业,依据是当前剩余空闲服务器的数量。
- 如果接受作业,智能体获得与作业优先级成正比的正奖励;
- 如果拒绝作业,作业被从队列中移除,智能体获得0奖励。
- 在每个时间步,已占用的服务器会以一定概率释放,智能体可以观察到当前空闲服务器的数量以及队列前端作业的优先级。
图1展示了标准Q-learning(无中心化)与基于值的中心化Q-learning的实验结果。
图1:学习曲线展示了在不同折扣因子下,Q-learning在有无奖励中心化情况下在访问控制排队问题(Sutton & Barto, 1998)中的性能差异。绘制的曲线表示智能体在50次运行中,每步获得的平均奖励随交互时间步数的变化情况。阴影区域表示一个标准误差。详见第4节。
- 对于标准Q-learning,曲线对应于训练期间学习速度最快的步长参数(通过学习曲线下的面积进行量化)。
- 对于基于值的中心化Q-learning,曲线对应于在固定
η
\eta
η值(图中以灰色表示)下,表现最优的步长参数。
- 这不一定意味着该 ( α , η ) (\alpha, \eta) (α,η)组合是全局最优,但实验结果对 η \eta η的选择具有鲁棒性,因此这一选择方式是合理的。
在本节的所有实验中,我们始终使用相同的超参数选择方法来绘制学习曲线。
当折扣因子接近1时,基于值的奖励中心化Q-learning的性能并未下降,而未进行中心化的Q-learning则出现了性能退化。对于每个折扣因子,中心化方法的性能至少与标准未中心化方法相当,甚至更优。
为了验证中心化是否确实消除了可能存在的较大状态无关项,我们检查了学习到的值函数的量级。
- 一种方法是计算所有状态-动作对上的值函数量级,但这种方法通常无法很好地近似实际学习到的值的量级。
- 原因在于,许多状态(尤其是真实值较低的状态)可能在智能体的** ϵ \epsilon ϵ-贪心交互过程中出现频率较低**,因此它们的估计值可能会保持接近初始化值。
- 为了更可靠地评估学习到的值函数量级,我们改为检查智能体实际经历的状态的值,具体而言,我们关注:
- 训练过程中最后10%出现的状态,
- 它们对应的最大动作值(用于选择 arg max \arg\max argmax动作)。
表1展示了与图1学习曲线对应的参数下,这些状态的最大动作值。
随着 γ \gamma γ的增加 ,标准Q-learning的学习值量级急剧增加,而奖励中心化方法的学习值保持较小,这与第1节的理论分析一致。
这些趋势在测试的不同参数取值范围内具有较强的普遍性。图4展示了算法性能对参数的敏感性。
- x轴表示步长参数 α \alpha α,
- y轴表示整个训练过程中获得的平均奖励(反映了学习速率)。
- 对于两种方法,不同的曲线对应于不同的折扣因子 γ \gamma γ。
- 右侧的三个子图分别对应于不同的中心化步长参数 η \eta η。
图4:参数研究展示了算法在访问控制问题(Access-Control Problem)中对参数的敏感性。误差条表示一个标准误差,在某些情况下,其宽度甚至小于曲线的线宽。
实验结果表明:
- 标准Q-learning(无中心化)的性能在较大折扣因子下显著下降,这一现象在较宽范围的步长参数 α \alpha α下均成立。
- 相比之下,使用奖励中心化的方法时,性能没有下降,甚至在较大范围的 η \eta η值下,性能随着 γ \gamma γ的增加持续提升,直至 γ = 1 \gamma=1 γ=1。
- 此外,中心化方法的性能对 η \eta η的选择不敏感,即其鲁棒性更强。
我们还观察到,标准Q-learning算法的学习速率受到问题奖励的常数偏移量的显著影响。
需要注意的是,在持续性问题中,给所有奖励加上一个常数 不会改变 基于总奖励或平均奖励准则的策略排序。
图5展示了有无奖励中心化的Q-learning在五种问题变体上的表现,这些变体的奖励分别加上了
{
−
8
,
−
4
,
0
,
4
,
8
}
\{-8, -4, 0, 4, 8\}
{−8,−4,0,4,8}中的一个常数。
图5:访问控制排队问题的轻微变体的学习曲线,其中所有奖励均被加上一个整数常数。为了在相同尺度下比较所有变体的学习曲线,y轴已进行平移。更多细节见正文。
为了比较不同问题变体下获得奖励的速率,我们在训练后对奖励曲线进行了后处理平移(例如,在奖励增加8的变体中,训练完成后,我们从智能体获得的所有奖励中减去8)。
实验结果表明:
- 未进行中心化的Q-learning在所有问题变体上的表现均存在显著差异。
- 进行奖励中心化的Q-learning(不出所料)在不同问题变体中表现相似。
此外,我们验证了 平均奖励估计确实能够快速学习到每种变体的平均奖励。
这些趋势在不同的步长参数取值下也保持一致(相关参数研究见附录C)。
我们在其他持续性问题中也观察到了类似的趋势,包括使用线性函数逼近的问题以及一个使用非线性函数逼近的问题。
-
PuckWorld:智能体需要控制一个类似冰球的物体,使其移动到方形场地中不断变化的目标位置。
- 在每个时间步,智能体接收六个实数观察值:
- 冰球的位置和速度,
- 目标位置在 x x x和 y y y方向上的坐标。
- 奖励与冰球到目标的负欧几里得距离成正比。
- 在每个时间步,智能体接收六个实数观察值:
-
Pendulum(倒立摆):智能体需要控制单杆摆的底部扭矩,使其保持在竖直向上位置。
- 在每个时间步,智能体接收三个实数观察值:
- 摆角相对于重力方向的正弦值和余弦值,
- 摆的角速度。
- 奖励与摆的角度偏离竖直位置的负距离成正比。
- 在每个时间步,智能体接收三个实数观察值:
-
Catch(接水果):智能体在2D像素网格的底部行移动一个木箱,用于接住下落的水果。
- 在此问题中,智能体可以接收两种不同类型的观察向量:
- 一个3D实数向量,包含:
- 木箱的 x x x坐标,
- 最低处水果的 ( x , y ) (x, y) (x,y)坐标。
- 一个50D二进制向量,表示整个像素网格的展平版本。
- 一个3D实数向量,包含:
- 奖励机制:
- 成功接住水果时,奖励 + 1 +1 +1;
- 未能接住水果时,奖励 − 1 -1 −1;
- 其他情况下,奖励 0 0 0。
- 在此问题中,智能体可以接收两种不同类型的观察向量:
所有这些问题都是持续性问题,即没有环境重置(resets)。
我们在PuckWorld和Catch(智能体观察3D实值特征的变体)中使用了瓦片编码(tile-coded)特征的线性函数逼近。
对于Pendulum以及Catch(使用50D二进制特征的变体),我们采用了非线性函数逼近,具体而言,使用人工神经网络(Mnih et al., 2015的DQN)。完整的实验细节见附录C。
实验趋势与访问控制排队问题(Access-Control Queuing) 中观察到的现象类似:
-
PuckWorld 和 Pendulum(图6上排):
- 无中心化时,随着折扣因子 γ \gamma γ增加,性能先提升后下降。
- 有中心化时,性能不会因较大 γ \gamma γ值而下降。
-
Catch(线性函数逼近,图6下排):
- 最左侧子图显示,即使在较大折扣因子下,无中心化方法的性能依然较好。
- 但当问题的奖励整体上移或下移时,无中心化方法的表现波动较大。
- 第三个子图(从左至右)演示了当奖励整体下移 − 2 -2 −2时的情况。
- 有中心化时,无论折扣因子大小或奖励的整体偏移,性能都保持稳定。
图6:学习曲线展示了不同问题中有无中心化情况下不同
γ
\gamma
γ值对应的表现。下排的右侧两个子图对应于Catch问题的一个变体,其中所有奖励均整体下移
−
2
-2
−2。
这些趋势在图7左侧的两个子图中得到了进一步验证,这些图展示了算法在不同奖励偏移量的Catch问题变体上的敏感性。
- x轴:线性函数逼近器的有效步长参数。
- y轴:整个训练过程中平均奖励速率。
- y轴经过调整,以便在相同尺度上比较所有问题变体的性能。
图7:参数研究展示了算法对步长参数的敏感性以及对不同Catch问题变体的适应性,其中使用了线性和非线性函数逼近。
实验表明:
- 无奖励中心化时,算法性能依赖于具体的问题变体。
- 有奖励中心化时,无论问题变体如何变化,学习速率基本相同。
此外,图7右侧的两个子图显示,在非线性函数逼近的情况下,相同的趋势依然成立。
通过这些实验,我们观察到奖励中心化可以提升Q-learning算法的表格型、线性和非线性变体在不同问题上的性能。
- 当折扣因子接近1时,学习速率的提升更加显著。
- 算法对问题奖励的整体偏移更加鲁棒。
- 本节的参数研究表明,奖励中心化方法对参数 η \eta η的选择具有较强的鲁棒性。
附录C包含额外的学习曲线和参数研究,进一步强化了本节观察到的趋势。
5 讨论、局限性与未来工作
奖励中心化可以提高几乎所有持续性强化学习算法的数据效率和鲁棒性。在本研究中,我们展示了对学习状态值函数和动作值函数的算法,以及表格型、线性和非线性函数逼近的算法的改进效果。
我们预计,奖励中心化也能提升不依赖值函数的算法的性能,例如在持续性问题中使用资格迹(eligibility traces)的REINFORCE算法(Williams, 1992),但这一点尚未得到验证。
许多基于平均奖励准则设计的算法已经包含某种形式的奖励中心化,例如:
- 简单中心化(Tsitsiklis & Van Roy, 1999)
- 基于值的中心化(Wan et al., 2021)
正是这些早期未使用折扣因子的算法的经验促使我们探索奖励中心化在折扣方法中的作用。
此外,我们预计奖励中心化也能在其他强化学习算法中带来改进,包括:
- 基于值的算法(如Sarsa,Rummery & Niranjan, 1994),
- 各种离线算法,
- actor-critic算法,
- 基于模型的算法,
但这些仍有待进一步验证。
奖励中心化 不适用于情节性(episodic)问题。在这些问题中,目标是最大化直到情节结束前的奖励总和,因此长期平均奖励的概念并未定义,并且Laurent级数分解(包含状态无关项)也不再成立。
此外,如果在情节性问题中直接应用奖励中心化,它可能会改变问题本身,而不是促进求解。这是因为,与持续性问题不同,从所有奖励中减去一个常数可能会改变情节性问题的本质。
例如,考虑一个网格世界(gridworld)问题,其中:
- 每个时间步的奖励为 − 1 -1 −1,
- 智能体到达目标状态后,情节终止。
- 最优策略是尽可能快地到达目标状态,以最大化情节总奖励。
然而,如果对该问题进行奖励中心化,那么:
- 所有修改后的奖励都将变为0,
- 导致所有策略都变得同等最优,
- 问题本身被算法所改变!
因此,在情节性问题中,中心化(或一般意义上的奖励平移)可能会根本性地改变问题本身。
在情节性问题中,最接近奖励中心化的概念可能是策略梯度方法中的回报基准(return baseline)(详见Sutton & Barto, 2018,第13.4节)。
然而,这种回报基准可能依赖于具体状态,因此与奖励中心化并不完全类似。
奖励中心化与值函数单元(value-function unit)中的偏置权重(bias weight)相似,但本质不同:
- 偏置权重的渐近收敛值依赖于所有其他输入,通常并不等于 r ( π ) / ( 1 − γ ) r(\pi)/(1-\gamma) r(π)/(1−γ)。
- 偏置权重的学习会影响所有其他权重的学习过程,因此不会像奖励中心化那样提升数据效率。
奖励中心化更类似于Sutton(1988b)提出的NADALINE线性单元中的特殊学习偏置权重。
此外,奖励中心化与自适应奖励尺度的方法(如van Hasselt et al., 2016;Pohlen et al., 2018;Schaul et al., 2021)虽然不同,但风格相似,并且这两类方法可以结合使用。
奖励中心化对值函数估计方差的影响较为复杂。
- 一方面,奖励中心化可能增加方差,因为平均奖励估计值会随时间变化。
- 简单中心化方法在off-policy设置下尤其容易受到影响(例如,见图3)。
- 另一方面,特别是基于值的中心化,可以减少由状态依赖性奖励变化所引起的方差(参见Sutton & Barto, 2018,第10.8节习题)。
- 在所有情况下,可以使用优化技术高效地调整平均奖励估计的步长参数(Degris et al., 2024)。
奖励中心化最具前景的扩展方向之一,是将其应用于能够随时间自适应调整折扣率参数的强化学习算法。
- 如果没有奖励中心化,随着折扣因子 γ ≈ 1 \gamma\approx1 γ≈1发生微小变化,折扣值会大幅波动,导致学习成本急剧增加。
- 这些变化大多数源于状态无关项 r ( π ) / ( 1 − γ ) r(\pi)/(1-\gamma) r(π)/(1−γ),而奖励中心化可以立即调整其值,以适应新的 γ \gamma γ,无需额外计算。
具体而言,假设智能体已经估计出了平均奖励
R
ˉ
\bar{R}
Rˉ和中心化折扣值函数
v
~
γ
\tilde{v}^{\gamma}
v~γ,那么它可以直接估计对应于另一个折扣因子
γ
′
\gamma'
γ′的标准折扣值函数:
R
ˉ
1
−
γ
′
+
v
~
γ
.
\frac{\bar{R}}{1-\gamma'} + \tilde{v}^{\gamma}.
1−γ′Rˉ+v~γ.
这个估计值当然不是完美的,但它可以通过少量经验样本迅速修正和优化。
相比之下,标准方法需要更长时间才能将估计值调整到新的均值,并适应相对值的变化。
因此,奖励中心化可以促使强化学习算法高效地随时间调整折扣因子,例如:
- 在训练初期或环境发生变化时,使用较低折扣率,以便在高度不确定的情况下加快学习。
- 当环境变得更可预测时,使用较高折扣率,以优化智能体在长时间范围内获得的总奖励。
致谢
作者感谢NSERC、DeepMind以及由CIFAR管理的泛加拿大AI项目的资助。我们感谢Huizhen Yu、Arsalan Sharifnassab、Khurram Javed以及RLAI实验室的其他成员,他们的讨论帮助提升了本文的质量和清晰度。我们还感谢加拿大数字研究联盟(Digital Research Alliance of Canada) 提供的计算资源。