Reward Centering(二)
- 文章概括
- 摘要
- 2 简单的奖励中心
文章概括
引用:
@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
代码、数据和视频:
系列文章:
请在 《 《 《文章 》 》 》 专栏中查找
摘要
我们证明,在解决持续强化学习问题时,折扣方法如果通过减去奖励的经验均值来对奖励进行中心化处理,其性能会显著提升。在常用的折扣因子下,这种改进是显著的,并且随着折扣因子趋近于1,改进幅度进一步增加。此外,我们证明,如果一个问题的奖励被加上一个常数偏移量,则标准方法的表现会变得更差,而采用奖励中心化的方法则不受影响。在on-policy设置下,估计平均奖励是直接的;对于off-policy设置,我们提出了一种稍微更复杂的方法。奖励中心化是一个通用的概念,因此我们预计几乎所有的强化学习算法都能从奖励中心化的加入中受益。
2 简单的奖励中心
估计平均奖励的最简单方法是维护当前已观察到的奖励的运行均值。即,如果 R ˉ t ∈ R \bar{R}_t \in \mathbb{R} Rˉt∈R表示在 t t t个时间步后对平均奖励的估计,则
R ˉ t = ∑ k = 1 t R k . \bar{R}_t = \sum_{k=1}^{t} R_k. Rˉt=k=1∑tRk.
我更倾向于
R ˉ t = 1 t ∑ k = 1 t R k , \bar{R}_t = \frac{1}{t}\sum_{k=1}^{t} R_k, Rˉt=t1k=1∑tRk,
更一般地,该估计可以使用步长参数 β t \beta_t βt进行更新:
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)
“ ≐ \doteq ≐” 在公式中有 “近似于” “约等于” “定义为” “估计值” 等意思。
该更新方法可以提供对平均奖励 R ˉ t ≈ r ( π ) \bar{R}_t\approx r(\pi) Rˉt≈r(π)的无偏估计,其中 π \pi π是生成数据的策略,前提是步长参数满足标准条件(Robbins & Monro, 1951)。
1. 估计平均奖励:最简单的方法与更一般的方法
在强化学习中,我们经常需要估计智能体在当前策略 π \pi π 下的平均奖励 r ( π ) r(\pi) r(π)。文中给出了最简单的方法——维护一个“运行和(或运行均值)”,以及一个更一般的“步长更新”方法。
1.1 运行和 / 运行均值
文中首先写道:
R ˉ t = ∑ k = 1 t R k . \bar{R}_t = \sum_{k=1}^{t} R_k. Rˉt=k=1∑tRk.
从字面来看,这个公式表示: R ˉ t \bar{R}_t Rˉt 是前 t t t 步累积奖励。通常,为了得到真正的“平均”值,但是我更倾向于
R ˉ t = 1 t ∑ k = 1 t R k , \bar{R}_t = \frac{1}{t}\sum_{k=1}^{t} R_k, Rˉt=t1k=1∑tRk,
核心思想:对所观测到的奖励做简单的累加(或累加+除以步数),即可得到一个无偏估计(如果所有 R k R_k Rk 独立同分布,或来自一个平稳过程)。
1.2 带步长参数的更新
文中接着给出了一个更通用的更新方式:
R ˉ t + 1 ≐ R ˉ t + β t ( R t + 1 − R ˉ t ) , (4) \bar{R}_{t+1} \doteq \bar{R}_t + \beta_t \bigl(R_{t+1} - \bar{R}_t\bigr), \tag{4} Rˉt+1≐Rˉt+βt(Rt+1−Rˉt),(4)
这里的 β t \beta_t βt 是一个步长参数(或称学习率)。若 β t = 1 t \beta_t = \frac{1}{t} βt=t1(或近似 1 t \frac{1}{t} t1),那么这正是经典的“样本平均”更新。如果使用一个固定的小步长(如 β t = 0.01 \beta_t = 0.01 βt=0.01),则会得到一个指数平滑的移动平均,对最近的奖励更敏感,对过去的奖励淡忘。
- 优点:在非平稳环境或策略不断变化时,固定小步长能让估计跟上最新奖励水平;
- 无偏条件:Robbins & Monro (1951) 提出了保证收敛和无偏的一些条件,最常见的便是 ∑ t β t = ∞ \sum_t \beta_t = \infty ∑tβt=∞ 与 ∑ t β t 2 < ∞ \sum_t \beta_t^2 < \infty ∑tβt2<∞,确保在无限步后收敛。
小例子:
情景描述假设:
- 智能体每步获得的奖励大约为10,
- 但由于环境或策略调整,这个奖励会逐渐增加(比如由于某种正反馈机制或逐步提升的任务难度)。
为了在算法中实时估计这个平均奖励,我们采用一个逐步更新公式来不断修正估计值 R ˉ t \bar{R}_t Rˉt: R ˉ t + 1 = R ˉ t + β t ( R t + 1 − R ˉ t ) , \bar{R}_{t+1} = \bar{R}_t + \beta_t \bigl(R_{t+1} - \bar{R}_t\bigr), Rˉt+1=Rˉt+βt(Rt+1−Rˉt), 其中, β t \beta_t βt 是更新的步长,这里固定为0.01。
详细的数值演示
假设我们初始时刻 t = 0 t=0 t=0 的平均奖励估计为: R ˉ 0 = 10. \bar{R}_0 = 10. Rˉ0=10.
第1步:
- 智能体在第1步获得奖励 R 1 = 10.2 R_1 = 10.2 R1=10.2(略高于10)。
- 更新公式: R ˉ 1 = R ˉ 0 + 0.01 × ( R 1 − R ˉ 0 ) = 10 + 0.01 × ( 10.2 − 10 ) . \bar{R}_1 = \bar{R}_0 + 0.01 \times (R_1 - \bar{R}_0) = 10 + 0.01 \times (10.2 - 10). Rˉ1=Rˉ0+0.01×(R1−Rˉ0)=10+0.01×(10.2−10).
- 计算: 10.2 − 10 = 0.2 , 0.01 × 0.2 = 0.002. 10.2 - 10 = 0.2,\quad 0.01 \times 0.2 = 0.002. 10.2−10=0.2,0.01×0.2=0.002.
- 所以, R ˉ 1 = 10 + 0.002 = 10.002. \bar{R}_1 = 10 + 0.002 = 10.002. Rˉ1=10+0.002=10.002.
第2步:
- 在第2步,假设智能体获得奖励 R 2 = 10.5 R_2 = 10.5 R2=10.5(继续增加)。
- 现在用更新公式: R ˉ 2 = R ˉ 1 + 0.01 × ( R 2 − R ˉ 1 ) = 10.002 + 0.01 × ( 10.5 − 10.002 ) . \bar{R}_2 = \bar{R}_1 + 0.01 \times (R_2 - \bar{R}_1) = 10.002 + 0.01 \times (10.5 - 10.002). Rˉ2=Rˉ1+0.01×(R2−Rˉ1)=10.002+0.01×(10.5−10.002).
- 计算: 10.5 − 10.002 = 0.498 , 0.01 × 0.498 = 0.00498. 10.5 - 10.002 = 0.498,\quad 0.01 \times 0.498 = 0.00498. 10.5−10.002=0.498,0.01×0.498=0.00498.
- 因此, R ˉ 2 = 10.002 + 0.00498 ≈ 10.007. \bar{R}_2 = 10.002 + 0.00498 \approx 10.007. Rˉ2=10.002+0.00498≈10.007.
第3步:
- 假设在第3步,奖励 R 3 = 10.8 R_3 = 10.8 R3=10.8。
- 更新: R ˉ 3 = R ˉ 2 + 0.01 × ( R 3 − R ˉ 2 ) ≈ 10.007 + 0.01 × ( 10.8 − 10.007 ) . \bar{R}_3 = \bar{R}_2 + 0.01 \times (R_3 - \bar{R}_2) \approx 10.007 + 0.01 \times (10.8 - 10.007). Rˉ3=Rˉ2+0.01×(R3−Rˉ2)≈10.007+0.01×(10.8−10.007).
- 计算: 10.8 − 10.007 = 0.793 , 0.01 × 0.793 = 0.00793. 10.8 - 10.007 = 0.793,\quad 0.01 \times 0.793 = 0.00793. 10.8−10.007=0.793,0.01×0.793=0.00793.
- 所以, R ˉ 3 ≈ 10.007 + 0.00793 ≈ 10.015. \bar{R}_3 \approx 10.007 + 0.00793 \approx 10.015. Rˉ3≈10.007+0.00793≈10.015.
分析
逐步更新的意义: 每次更新仅移动当前估计值的1%(因为 β t = 0.01 \beta_t=0.01 βt=0.01 )向当前观察的奖励靠近。这样, R ˉ t \bar{R}_t Rˉt 不会大幅跳动,而是平滑地、缓慢地追踪真实的奖励平均值。
对奖励变化的响应: 如果奖励水平逐渐上升,比如从10逐步增至11,这个更新机制会慢慢“捕捉到”这个上升趋势,因为每一步都在考虑最新的奖励与当前估计之间的差值。
步长的作用: 如果步长太大(比如0.5),那么估计会迅速调整,但可能会产生噪声;如果步长太小,更新会非常缓慢,难以及时跟上真实平均奖励的变化。这里选择0.01是一个平衡的做法,使得估计既平滑又能适应缓慢变化。
总结
- 初始值:开始时,我们认为平均奖励大约是10。
- 更新过程:每次收到新的奖励,就计算新奖励与当前估计的差距,然后按照步长(1%)调整估计。
- 结果:随着时间推移, R ˉ t \bar{R}_t Rˉt 会逐步接近真实的平均奖励水平,同时由于采用固定步长,它还能对奖励的慢变化作出响应,而不会被单次的偶然奖励所扰动。
简单的奖励中心化(公式(4))几乎可以用于任何强化学习算法。例如,它可以与传统时序差分(TD)学习(见Sutton, 1988a)结合使用,以学习状态值函数估计 V ~ γ : S → R \tilde{V}^{\gamma}: \mathcal{S} \to \mathbb{R} V~γ:S→R,其更新方式如下,在 t t t到 t + 1 t+1 t+1的状态转移过程中进行:
V ~ t + 1 γ ( S t ) ≐ V ~ t γ ( S t ) + α t [ ( R t + 1 − R ˉ t ) + γ V ~ t γ ( S t + 1 ) − V ~ t γ ( S t ) ] , (5) \tilde{V}_{t+1}^{\gamma}(S_t) \doteq \tilde{V}_{t}^{\gamma}(S_t) + \alpha_t \left[ (R_{t+1} - \bar{R}_t) + \gamma \tilde{V}_{t}^{\gamma}(S_{t+1}) - \tilde{V}_{t}^{\gamma}(S_t) \right], \tag{5} V~t+1γ(St)≐V~tγ(St)+αt[(Rt+1−Rˉt)+γV~tγ(St+1)−V~tγ(St)],(5)
其中,对于所有 s ≠ S t s \neq S_t s=St, V ~ t + 1 γ ( s ) ≐ V ~ t γ ( s ) \tilde{V}_{t+1}^{\gamma}(s) \doteq \tilde{V}_{t}^{\gamma}(s) V~t+1γ(s)≐V~tγ(s),其中 α t > 0 \alpha_t > 0 αt>0是步长参数。
2. 将奖励中心化用于时序差分(TD)学习
时序差分(TD)是强化学习中学习值函数的基础算法之一。标准的一步TD更新(如 “TD(0)”)在学习状态值函数 V γ V^\gamma Vγ 时,通常是:
V t + 1 γ ( S t ) ≐ V t γ ( S t ) + α t [ R t + 1 + γ V t γ ( S t + 1 ) − V t γ ( S t ) ] . V_{t+1}^{\gamma}(S_t) \doteq V_t^{\gamma}(S_t) + \alpha_t \Bigl[R_{t+1} + \gamma\,V_t^{\gamma}(S_{t+1}) - V_t^{\gamma}(S_t)\Bigr]. Vt+1γ(St)≐Vtγ(St)+αt[Rt+1+γVtγ(St+1)−Vtγ(St)].
现在,如果我们想中心化奖励,就需要将“奖励” R t + 1 R_{t+1} Rt+1 替换为“ R t + 1 − R ˉ t R_{t+1} - \bar{R}_t Rt+1−Rˉt”。这样就可以去除奖励中的常数偏移,使得学习关注的是“相对于当前平均奖励”的增量。
2.1 公式(5) 的含义
文中给出的更新式:
V ~ t + 1 γ ( S t ) ≐ V ~ t γ ( S t ) + α t [ ( R t + 1 − R ˉ t ) + γ V ~ t γ ( S t + 1 ) − V ~ t γ ( S t ) ] , (5) \tilde{V}_{t+1}^{\gamma}(S_t) \doteq \tilde{V}_{t}^{\gamma}(S_t) + \alpha_t \Bigl[ (R_{t+1} - \bar{R}_t) + \gamma\,\tilde{V}_{t}^{\gamma}(S_{t+1}) - \tilde{V}_{t}^{\gamma}(S_t)\Bigr], \tag{5} V~t+1γ(St)≐V~tγ(St)+αt[(Rt+1−Rˉt)+γV~tγ(St+1)−V~tγ(St)],(5)
其中:
- V ~ t γ \tilde{V}_t^\gamma V~tγ 表示中心化后的值函数估计;
- R t + 1 − R ˉ t R_{t+1} - \bar{R}_t Rt+1−Rˉt 是“当前奖励减去平均奖励”的中心化操作;
- γ \gamma γ 是折扣因子;
- α t \alpha_t αt 是TD更新的步长参数。
对于所有 s ≠ S t s \neq S_t s=St, V ~ t + 1 γ ( s ) ≐ V ~ t γ ( s ) \tilde{V}_{t+1}^{\gamma}(s) \doteq \tilde{V}_{t}^{\gamma}(s) V~t+1γ(s)≐V~tγ(s) 表示只更新当前访问到的状态(典型的在线、逐步更新)。即我们规定对于所有 s ≠ S t s \neq S_t s=St(即当前未访问的状态),其值函数保持不变: V ~ t + 1 γ ( s ) ≐ V ~ t γ ( s ) . \tilde{V}_{t+1}^{\gamma}(s) \doteq \tilde{V}_{t}^{\gamma}(s). V~t+1γ(s)≐V~tγ(s).
直观解释
- 如果 R t + 1 R_{t+1} Rt+1 大于当前估计的平均奖励,那么它会带来一个正的增量,说明这个状态的价值比想象中更好;
- 如果 R t + 1 R_{t+1} Rt+1 小于平均奖励,则增量为负,说明此状态的表现较差。
这样就能让值函数专注于“该状态是否高于或低于全局平均”,而不会被奖励整体偏移所干扰。
具体例子与数值演示
假设有一个简单的环境,状态空间为 { A , B , C } \{A, B, C\} {A,B,C}。在某个时刻 t t t 的值函数估计为:
- V ~ t γ ( A ) = 1.0 \tilde{V}_t^\gamma(A) = 1.0 V~tγ(A)=1.0
- V ~ t γ ( B ) = 2.0 \tilde{V}_t^\gamma(B) = 2.0 V~tγ(B)=2.0
- V ~ t γ ( C ) = 3.0 \tilde{V}_t^\gamma(C) = 3.0 V~tγ(C)=3.0
场景设定
- 当前时刻 t t t,智能体处于状态 B B B,也就是 S t = B S_t = B St=B;
- 观察到的奖励为 R t + 1 = 8 R_{t+1} = 8 Rt+1=8;
- 下一状态 S t + 1 = C S_{t+1} = C St+1=C;
- 折扣因子 γ = 0.9 \gamma = 0.9 γ=0.9;
- 平均奖励估计为 R ˉ t = 5 \bar{R}_t = 5 Rˉt=5;
- TD更新步长 α t = 0.1 \alpha_t = 0.1 αt=0.1。
TD更新公式(中心化版)
对于当前访问的状态 B B B,TD更新公式是: V ~ t + 1 γ ( B ) = V ~ t γ ( B ) + α t [ ( R t + 1 − R ˉ t ) + γ V ~ t γ ( S t + 1 ) − V ~ t γ ( B ) ] . \tilde{V}_{t+1}^{\gamma}(B) = \tilde{V}_{t}^{\gamma}(B) + \alpha_t \Bigl[(R_{t+1} - \bar{R}_t) + \gamma\,\tilde{V}_{t}^{\gamma}(S_{t+1}) - \tilde{V}_{t}^{\gamma}(B)\Bigr]. V~t+1γ(B)=V~tγ(B)+αt[(Rt+1−Rˉt)+γV~tγ(St+1)−V~tγ(B)].
把具体数值代入:
计算TD误差(TD error): δ t = ( 8 − 5 ) + 0.9 × V ~ t γ ( C ) − V ~ t γ ( B ) . \delta_t = (8 - 5) + 0.9 \times \tilde{V}_t^\gamma(C) - \tilde{V}_t^\gamma(B). δt=(8−5)+0.9×V~tγ(C)−V~tγ(B).
其中, V ~ t γ ( C ) = 3.0 \tilde{V}_t^\gamma(C) = 3.0 V~tγ(C)=3.0 和 V ~ t γ ( B ) = 2.0 \tilde{V}_t^\gamma(B) = 2.0 V~tγ(B)=2.0:
δ t = 3 + 0.9 × 3.0 − 2.0 = 3 + 2.7 − 2.0 = 3.7. \delta_t = 3 + 0.9 \times 3.0 - 2.0 = 3 + 2.7 - 2.0 = 3.7. δt=3+0.9×3.0−2.0=3+2.7−2.0=3.7.更新状态 B B B 的值函数: V ~ t + 1 γ ( B ) = 2.0 + 0.1 × 3.7 = 2.0 + 0.37 = 2.37. \tilde{V}_{t+1}^{\gamma}(B) = 2.0 + 0.1 \times 3.7 = 2.0 + 0.37 = 2.37. V~t+1γ(B)=2.0+0.1×3.7=2.0+0.37=2.37.
对于未访问的状态
按照约定,对于所有 s ≠ S t s \neq S_t s=St,我们不做任何更新:
- 对于 A A A: V ~ t + 1 γ ( A ) ≐ V ~ t γ ( A ) = 1.0. \tilde{V}_{t+1}^{\gamma}(A) \doteq \tilde{V}_{t}^{\gamma}(A) = 1.0. V~t+1γ(A)≐V~tγ(A)=1.0.
- 对于 C C C: V ~ t + 1 γ ( C ) ≐ V ~ t γ ( C ) = 3.0. \tilde{V}_{t+1}^{\gamma}(C) \doteq \tilde{V}_{t}^{\gamma}(C) = 3.0. V~t+1γ(C)≐V~tγ(C)=3.0.
总结更新后的结果
状态 t t t 时刻的 V ~ t γ \tilde{V}_t^\gamma V~tγ t + 1 t+1 t+1 时刻的 V ~ t + 1 γ \tilde{V}_{t+1}^\gamma V~t+1γ A 1.0 1.0 B 2.0 2.37 C 3.0 3.0 从上表可以看到,只有当前访问的状态 B B B 被更新了,而其他状态 A A A 和 C C C 的值保持不变。这就是“只更新当前访问到的状态”的含义,也是在线TD学习中常见的逐步更新策略。
在我们的第一组实验中,我们使用了公式(5)的四种算法变体,它们仅在 R ˉ t \bar{R}_t Rˉt的定义上有所不同。
- 第一种算法设定 R ˉ t = 0 , ∀ t \bar{R}_t=0, \forall t Rˉt=0,∀t,因此不涉及奖励中心化。
- 第二种算法使用了平均奖励的最优估计: R ˉ t = r ( π ) , ∀ t \bar{R}_t=r(\pi), \forall t Rˉt=r(π),∀t,我们称之为oracle中心化。
- 第三种算法采用简单奖励中心化,如公式(4)所示。
- 第四种算法使用了一种更复杂的奖励中心化方法,该方法将在下一节讨论。
3. 四种算法变体:不同的 R ˉ t \bar{R}_t Rˉt 定义
在文中第一组实验中,他们使用了公式(5) 的四种变体,唯一的差别在于 R ˉ t \bar{R}_t Rˉt 的定义方式:
第一种算法: R ˉ t = 0 , ∀ t \bar{R}_t = 0,\ \forall t Rˉt=0, ∀t
- 不涉及奖励中心化。
- 等价于在公式(5)中,直接把 R t + 1 − R ˉ t R_{t+1} - \bar{R}_t Rt+1−Rˉt 写成 R t + 1 R_{t+1} Rt+1。
- 这是传统的 TD(0) 更新,没有任何去偏移处理。
第二种算法: R ˉ t = r ( π ) , ∀ t \bar{R}_t = r(\pi),\ \forall t Rˉt=r(π), ∀t
- 这里 R ˉ t \bar{R}_t Rˉt 被设成真实的平均奖励(oracle)——也就是我们事先知道策略 π \pi π 的平均奖励 r ( π ) r(\pi) r(π)。
- 在现实中,这通常是无法直接获得的(因为我们不知道真实策略性能),但作为理想情况可以对比,看看如果完美地中心化奖励会如何。
第三种算法:采用简单奖励中心化(公式(4))
- 即在线地、递增地去估计平均奖励。
- 这是最符合实际的一种做法:在不知道 r ( π ) r(\pi) r(π) 的情况下,随着数据收集,不断更新对平均奖励的估计 R ˉ t \bar{R}_t Rˉt。
- 对应更新式: R ˉ t + 1 ← R ˉ t + β t ( R t + 1 − R ˉ t ) \bar{R}_{t+1} \leftarrow \bar{R}_t + \beta_t (R_{t+1} - \bar{R}_t) Rˉt+1←Rˉt+βt(Rt+1−Rˉt)。
- 然后在TD更新中把 R t + 1 R_{t+1} Rt+1 替换为 ( R t + 1 − R ˉ t ) (R_{t+1} - \bar{R}_t) (Rt+1−Rˉt)。
第四种算法:使用更复杂的奖励中心化方法
- 文中表示会在下一节讨论,可能包括一些改进或变体(例如,对不同状态或动作进行差异化估计,或者在非平稳环境中有更好的追踪机制)。
- 其本质仍是“先估计平均奖励,再减去”这一思路,只是实现更复杂。
该环境是一个具有七个连续状态的MDP,每个状态都有两个可选动作。从最右侧状态执行右移动作会转移到中间状态并获得奖励+7,而从最左侧状态执行左移动作会转移到中间状态并获得奖励+1;所有其他状态转移的奖励均为0。
目标策略在每个状态下以相等概率选择左右两个动作,即 π ( left ∣ ⋅ ) = π ( right ∣ ⋅ ) = 0.5 \pi(\text{left}|\cdot) = \pi(\text{right}|\cdot) = 0.5 π(left∣⋅)=π(right∣⋅)=0.5。该策略对应的平均奖励为 r ( π ) = 0.25 r(\pi) = 0.25 r(π)=0.25。
r ( π ) = 0.25 r(\pi) = 0.25 r(π)=0.25是如何得到的?
1. 环境描述与奖励结构
我们有一个七个连续状态的 MDP,状态记为 1 , 2 , 3 , 4 , 5 , 6 , 7 1,2,3,4,5,6,7 1,2,3,4,5,6,7(按从左到右排列),其中状态 1 是最左侧,状态 7 是最右侧,状态 4 是中间状态。每个状态都有两个动作:左和右。
特殊奖励:
- 在最左侧状态 1 1 1,如果执行左移动作,则转移到中间状态 4 4 4 并获得奖励 + 1 +1 +1。
- 在最右侧状态 7 7 7,如果执行右移动作,则转移到中间状态 4 4 4 并获得奖励 + 7 +7 +7。
其他转移:
- 在状态 1 1 1 若选择右移动作,则正常转移到状态 2 2 2,奖励为 0 0 0。
- 在状态 7 7 7 若选择左移动作,则正常转移到状态 6 6 6,奖励为 0 0 0。
- 对于状态 2 , 3 , 4 , 5 , 6 2,3,4,5,6 2,3,4,5,6,无论左还是右动作,都进行相邻状态的正常转移,奖励均为 0 0 0。
目标策略: 在每个状态下,左右两动作均以 0.5 0.5 0.5 的概率执行。
2. 各状态下的即时奖励
设 r ( s , π ) r(s,\pi) r(s,π) 为在状态 s s s 下执行策略 π \pi π 时获得的即时奖励的期望:
状态 1:
- 执行左:奖励 + 1 +1 +1,执行右:奖励 0 0 0。
- 因为各 50 % 50\% 50%,所以
r ( 1 , π ) = 0.5 × 1 + 0.5 × 0 = 0.5. r(1,\pi) = 0.5\times 1 + 0.5\times 0 = 0.5. r(1,π)=0.5×1+0.5×0=0.5.状态 7:
- 执行右:奖励 + 7 +7 +7,执行左:奖励 0 0 0。
- 因此
r ( 7 , π ) = 0.5 × 7 + 0.5 × 0 = 3.5. r(7,\pi) = 0.5\times 7 + 0.5\times 0 = 3.5. r(7,π)=0.5×7+0.5×0=3.5.其他状态 s = 2 , 3 , 4 , 5 , 6 s=2,3,4,5,6 s=2,3,4,5,6: 无论选择哪一动作,奖励均为 0 0 0,即 r ( s , π ) = 0. r(s,\pi)=0. r(s,π)=0.
3. 构造状态转移概率
根据问题描述和常规的“向相邻状态转移”的规则,可以写出各状态的转移情况:
状态 1:
- 左动作(概率 0.5):转移到状态 4(特殊转移,奖励 +1)。
- 右动作(概率 0.5):转移到状态 2(正常转移,奖励 0)。
状态 2:
- 左(0.5):转移到状态 1。
- 右(0.5):转移到状态 3。
状态 3:
- 左(0.5):转移到状态 2。
- 右(0.5):转移到状态 4.
状态 4:
- 左(0.5):转移到状态 3。
- 右(0.5):转移到状态 5.
状态 5:
- 左(0.5):转移到状态 4。
- 右(0.5):转移到状态 6.
状态 6:
- 左(0.5):转移到状态 5。
- 右(0.5):转移到状态 7.
状态 7:
- 左(0.5):转移到状态 6。
- 右(0.5):转移到状态 4(特殊转移,奖励 +7)。
注意:奖励不影响状态转移的概率,但在计算平均奖励时,我们会考虑各状态下执行策略获得的即时奖励。
4. 求解状态的稳态分布
令 μ ( s ) \mu(s) μ(s) 为状态 s s s 的稳态概率。利用马尔可夫链的平衡方程,逐个写出各状态的入流概率(所有转移到该状态的概率之和):
状态 1: 只有来自状态 2 的左移动作到达状态 1: μ ( 1 ) = 0.5 μ ( 2 ) . \mu(1) = 0.5\,\mu(2). μ(1)=0.5μ(2). 因此, μ ( 2 ) = 2 μ ( 1 ) \mu(2) = 2\,\mu(1) μ(2)=2μ(1).
状态 2: 来自状态 1的右( 0.5 μ ( 1 ) 0.5\,\mu(1) 0.5μ(1))和状态 3的左( 0.5 μ ( 3 ) 0.5\,\mu(3) 0.5μ(3)): μ ( 2 ) = 0.5 μ ( 1 ) + 0.5 μ ( 3 ) . \mu(2) = 0.5\,\mu(1) + 0.5\,\mu(3). μ(2)=0.5μ(1)+0.5μ(3). 代入 μ ( 2 ) = 2 μ ( 1 ) \mu(2)=2\mu(1) μ(2)=2μ(1) 得: 2 μ ( 1 ) = 0.5 μ ( 1 ) + 0.5 μ ( 3 ) ⇒ μ ( 3 ) = 3 μ ( 1 ) . 2\mu(1) = 0.5\,\mu(1) + 0.5\,\mu(3) \quad\Rightarrow\quad \mu(3) = 3\,\mu(1). 2μ(1)=0.5μ(1)+0.5μ(3)⇒μ(3)=3μ(1).
状态 3: 来自状态 2的右( 0.5 μ ( 2 ) 0.5\,\mu(2) 0.5μ(2))和状态 4的左( 0.5 μ ( 4 ) 0.5\,\mu(4) 0.5μ(4)): μ ( 3 ) = 0.5 μ ( 2 ) + 0.5 μ ( 4 ) . \mu(3) = 0.5\,\mu(2) + 0.5\,\mu(4). μ(3)=0.5μ(2)+0.5μ(4). 代入 μ ( 2 ) = 2 μ ( 1 ) \mu(2)=2\mu(1) μ(2)=2μ(1) 和 μ ( 3 ) = 3 μ ( 1 ) \mu(3)=3\mu(1) μ(3)=3μ(1): 3 μ ( 1 ) = 0.5 × 2 μ ( 1 ) + 0.5 μ ( 4 ) ⇒ 3 μ ( 1 ) = μ ( 1 ) + 0.5 μ ( 4 ) . 3\mu(1) = 0.5\times2\mu(1) + 0.5\,\mu(4) \quad\Rightarrow\quad 3\mu(1) = \mu(1) + 0.5\,\mu(4). 3μ(1)=0.5×2μ(1)+0.5μ(4)⇒3μ(1)=μ(1)+0.5μ(4). 得: 0.5 μ ( 4 ) = 2 μ ( 1 ) ⇒ μ ( 4 ) = 4 μ ( 1 ) . 0.5\,\mu(4) = 2\mu(1) \quad\Rightarrow\quad \mu(4) = 4\mu(1). 0.5μ(4)=2μ(1)⇒μ(4)=4μ(1).
状态 4: 来自多个状态:
- 状态 1 的左: 0.5 μ ( 1 ) 0.5\,\mu(1) 0.5μ(1)
- 状态 3 的右: 0.5 μ ( 3 ) 0.5\,\mu(3) 0.5μ(3)
- 状态 5 的左: 0.5 μ ( 5 ) 0.5\,\mu(5) 0.5μ(5)
- 状态 7 的右: 0.5 μ ( 7 ) 0.5\,\mu(7) 0.5μ(7)
则: μ ( 4 ) = 0.5 μ ( 1 ) + 0.5 μ ( 3 ) + 0.5 μ ( 5 ) + 0.5 μ ( 7 ) . \mu(4) = 0.5\,\mu(1) + 0.5\,\mu(3) + 0.5\,\mu(5) + 0.5\,\mu(7). μ(4)=0.5μ(1)+0.5μ(3)+0.5μ(5)+0.5μ(7). 已知 μ ( 4 ) = 4 μ ( 1 ) \mu(4)=4\mu(1) μ(4)=4μ(1) 和 μ ( 3 ) = 3 μ ( 1 ) \mu(3)=3\mu(1) μ(3)=3μ(1),因此: 4 μ ( 1 ) = 0.5 μ ( 1 ) + 0.5 × 3 μ ( 1 ) + 0.5 [ μ ( 5 ) + μ ( 7 ) ] . 4\mu(1) = 0.5\,\mu(1) + 0.5\times 3\mu(1) + 0.5\,\bigl[\mu(5)+\mu(7)\bigr]. 4μ(1)=0.5μ(1)+0.5×3μ(1)+0.5[μ(5)+μ(7)]. 计算前两项: 0.5 μ ( 1 ) + 1.5 μ ( 1 ) = 2 μ ( 1 ) 0.5\,\mu(1)+1.5\,\mu(1)=2\mu(1) 0.5μ(1)+1.5μ(1)=2μ(1)。故有: 4 μ ( 1 ) = 2 μ ( 1 ) + 0.5 [ μ ( 5 ) + μ ( 7 ) ] ⇒ μ ( 5 ) + μ ( 7 ) = 4 μ ( 1 ) . 4\mu(1) = 2\mu(1) + 0.5\bigl[\mu(5)+\mu(7)\bigr] \quad\Rightarrow\quad \mu(5)+\mu(7) = 4\mu(1). 4μ(1)=2μ(1)+0.5[μ(5)+μ(7)]⇒μ(5)+μ(7)=4μ(1).状态 5: 来自状态 4的右( 0.5 μ ( 4 ) 0.5\,\mu(4) 0.5μ(4))和状态 6的左( 0.5 μ ( 6 ) 0.5\,\mu(6) 0.5μ(6)): μ ( 5 ) = 0.5 μ ( 4 ) + 0.5 μ ( 6 ) . \mu(5) = 0.5\,\mu(4) + 0.5\,\mu(6). μ(5)=0.5μ(4)+0.5μ(6).
状态 6: 来自状态 5的右( 0.5 μ ( 5 ) 0.5\,\mu(5) 0.5μ(5))和状态 7的左( 0.5 μ ( 7 ) 0.5\,\mu(7) 0.5μ(7)): μ ( 6 ) = 0.5 μ ( 5 ) + 0.5 μ ( 7 ) . \mu(6) = 0.5\,\mu(5) + 0.5\,\mu(7). μ(6)=0.5μ(5)+0.5μ(7).
状态 7: 只有来自状态 6的右: μ ( 7 ) = 0.5 μ ( 6 ) . \mu(7) = 0.5\,\mu(6). μ(7)=0.5μ(6). 故有: μ ( 6 ) = 2 μ ( 7 ) . \mu(6) = 2\,\mu(7). μ(6)=2μ(7).
接下来利用状态 6 与状态 7 的关系代入状态 5、6的方程:
状态 6方程: 2 μ ( 7 ) = 0.5 μ ( 5 ) + 0.5 μ ( 7 ) ⇒ 1.5 μ ( 7 ) = 0.5 μ ( 5 ) 2\mu(7) = 0.5\,\mu(5) + 0.5\,\mu(7) \quad\Rightarrow\quad 1.5\mu(7) = 0.5\,\mu(5) 2μ(7)=0.5μ(5)+0.5μ(7)⇒1.5μ(7)=0.5μ(5) 得: μ ( 5 ) = 3 μ ( 7 ) . \mu(5) = 3\,\mu(7). μ(5)=3μ(7).
代入状态 4中的关系 μ ( 5 ) + μ ( 7 ) = 4 μ ( 1 ) \mu(5)+\mu(7)=4\mu(1) μ(5)+μ(7)=4μ(1): 3 μ ( 7 ) + μ ( 7 ) = 4 μ ( 7 ) = 4 μ ( 1 ) ⇒ μ ( 7 ) = μ ( 1 ) . 3\mu(7) + \mu(7) = 4\mu(7) = 4\mu(1) \quad\Rightarrow\quad \mu(7) = \mu(1). 3μ(7)+μ(7)=4μ(7)=4μ(1)⇒μ(7)=μ(1). 则:
μ ( 5 ) = 3 μ ( 1 ) , μ ( 6 ) = 2 μ ( 7 ) = 2 μ ( 1 ) . \mu(5) = 3\,\mu(1) \quad\text{,} \quad \mu(6)=2\,\mu(7)=2\,\mu(1). μ(5)=3μ(1),μ(6)=2μ(7)=2μ(1).总结各状态的稳态概率均以 μ ( 1 ) \mu(1) μ(1) 为基准: μ ( 1 ) = μ ( 1 ) , μ ( 2 ) = 2 μ ( 1 ) , μ ( 3 ) = 3 μ ( 1 ) , μ ( 4 ) = 4 μ ( 1 ) , μ ( 5 ) = 3 μ ( 1 ) , μ ( 6 ) = 2 μ ( 1 ) , μ ( 7 ) = μ ( 1 ) . \begin{aligned} \mu(1) &= \mu(1),\\[1mm] \mu(2) &= 2\,\mu(1),\\[1mm] \mu(3) &= 3\,\mu(1),\\[1mm] \mu(4) &= 4\,\mu(1),\\[1mm] \mu(5) &= 3\,\mu(1),\\[1mm] \mu(6) &= 2\,\mu(1),\\[1mm] \mu(7) &= \mu(1). \end{aligned} μ(1)μ(2)μ(3)μ(4)μ(5)μ(6)μ(7)=μ(1),=2μ(1),=3μ(1),=4μ(1),=3μ(1),=2μ(1),=μ(1).利用归一化条件: μ ( 1 ) + μ ( 2 ) + ⋯ + μ ( 7 ) = ( 1 + 2 + 3 + 4 + 3 + 2 + 1 ) μ ( 1 ) = 16 μ ( 1 ) = 1 , \mu(1)+\mu(2)+\cdots+\mu(7) = (1+2+3+4+3+2+1)\mu(1)= 16\,\mu(1)=1, μ(1)+μ(2)+⋯+μ(7)=(1+2+3+4+3+2+1)μ(1)=16μ(1)=1, 得 μ ( 1 ) = 1 16 . \mu(1)=\frac{1}{16}. μ(1)=161. 因此,各状态的稳态概率为: μ ( 1 ) = 1 16 , μ ( 2 ) = 2 16 , μ ( 3 ) = 3 16 , μ ( 4 ) = 4 16 , μ ( 5 ) = 3 16 , μ ( 6 ) = 2 16 , μ ( 7 ) = 1 16 . \mu(1)=\frac{1}{16},\quad \mu(2)=\frac{2}{16},\quad \mu(3)=\frac{3}{16},\quad \mu(4)=\frac{4}{16},\quad \mu(5)=\frac{3}{16},\quad \mu(6)=\frac{2}{16},\quad \mu(7)=\frac{1}{16}. μ(1)=161,μ(2)=162,μ(3)=163,μ(4)=164,μ(5)=163,μ(6)=162,μ(7)=161.
5. 计算长期平均奖励 r ( π ) r(\pi) r(π)
长期平均奖励的计算公式为: r ( π ) = ∑ s = 1 7 μ ( s ) r ( s , π ) . r(\pi)=\sum_{s=1}^{7}\mu(s)\,r(s,\pi). r(π)=s=1∑7μ(s)r(s,π). 而我们只在状态 1 和状态 7 有非零即时奖励:
- 状态 1 的即时奖励 r ( 1 , π ) = 0.5 r(1,\pi)=0.5 r(1,π)=0.5,
- 状态 7 的即时奖励 r ( 7 , π ) = 3.5 r(7,\pi)=3.5 r(7,π)=3.5,
故: r ( π ) = μ ( 1 ) × 0.5 + μ ( 7 ) × 3.5. r(\pi) = \mu(1)\times 0.5 + \mu(7)\times 3.5. r(π)=μ(1)×0.5+μ(7)×3.5. 代入 μ ( 1 ) = μ ( 7 ) = 1 16 \mu(1)=\mu(7)=\frac{1}{16} μ(1)=μ(7)=161: r ( π ) = 1 16 × 0.5 + 1 16 × 3.5 = 0.5 + 3.5 16 = 4 16 = 0.25. r(\pi) = \frac{1}{16}\times 0.5 + \frac{1}{16}\times 3.5 = \frac{0.5+3.5}{16} = \frac{4}{16} = 0.25. r(π)=161×0.5+161×3.5=160.5+3.5=164=0.25.
我们的第一个实验将四种算法应用于七状态MDP,并分别使用两个折扣因子 γ = 0.9 \gamma=0.9 γ=0.9和 γ = 0.99 \gamma=0.99 γ=0.99。所有算法都在一系列步长参数 α \alpha α的不同取值下运行。对于那些学习进行奖励中心化的算法,我们还测试了不同的 η \eta η取值,其中 β = η α \beta=\eta\alpha β=ηα(不失一般性)。
每种算法的每组参数设置都运行50,000个时间步,并重复50次。完整的实验细节见附录C。
在时间 t t t,我们的性能度量是均方根值误差(RMSVE)(见Sutton & Barto, 2018,第9.2节),其中:
- 对于中心化算法,RMSVE计算的是 V ~ t γ \tilde{V}_{t}^{\gamma} V~tγ与 v ~ π γ \tilde{v}_{\pi}^{\gamma} v~πγ之间的误差。
- 对于未中心化的算法,RMSVE计算的是 V ~ t γ \tilde{V}_{t}^{\gamma} V~tγ与 v π γ v_{\pi}^{\gamma} vπγ之间的误差。
实验过程中没有单独的训练和测试阶段。
在强化学习中,“on-policy”(基于当前策略)和“off-policy”(基于目标策略)是两种基本的学习范式,它们在数据采集、策略更新和目标策略与行为策略之间的关系上存在本质区别。
1. 定义与基本思想
1.1 On-policy 学习
定义:在 on-policy 学习中,智能体使用同一个策略来生成数据(行为策略)和进行学习(目标策略)。也就是说,所采集的样本数据是由当前正在改进的策略产生的,因此更新时考虑的是当前策略在未来的表现。
特点:
- 直接性:学习直接针对当前行为策略。
- 样本利用率:由于数据与当前策略紧密相关,学习较为稳定,但可能在探索和利用之间需要仔细权衡。
经典算法:例如 SARSA、Policy Gradient(如 REINFORCE)等。
1.2 Off-policy 学习
定义:在 off-policy 学习中,数据采集策略(行为策略)和学习目标策略(目标策略)可以是不同的。也就是说,智能体可以利用历史数据或者其他来源的样本(可能来自不同策略),来学习最优策略。
特点:
- 灵活性:可以利用经验回放(Experience Replay)或从其他策略中采样数据,充分利用历史信息。
- 样本效率:允许利用更多数据,但由于目标策略与行为策略不一致,通常需要额外的修正(如重要性采样)以消除偏差。
经典算法:例如 Q-learning、Deep Q-Network (DQN) 以及 Off-policy Actor-Critic(如 DDPG)等。
2. 具体例子与数值演示
假设我们有一个简单的网格世界任务,在一个 3 × 3 3 \times 3 3×3 的网格中,智能体的目标是从起始状态到达某个终点状态。每走一步奖励为 − 1 -1 −1,到达终点奖励为 + 10 +10 +10。我们以 SARSA(on-policy)和 Q-learning(off-policy)来比较。
2.1 数值示例:状态-动作值更新
假设当前状态 s s s 下有两个可能动作:向右 ( a 1 a_1 a1) 和向下 ( a 2 a_2 a2)。
- 初始 Q ( s , a ) Q(s,a) Q(s,a) 值全部设为 0。
- 假设折扣因子 γ = 0.9 \gamma=0.9 γ=0.9,步长 α = 0.5 \alpha=0.5 α=0.5。
On-policy(SARSA)更新示例
- 智能体在状态 s s s 选择动作 a 1 a_1 a1(例如,根据 ϵ \epsilon ϵ-greedy 策略选择)。
- 执行动作 a 1 a_1 a1,获得即时奖励 R = − 1 R= -1 R=−1,并转移到新状态 s ′ s' s′。
- 在 s ′ s' s′ 根据当前策略选择下一个动作,假设选择 a ′ a' a′ 为 a 2 a_2 a2,当前 Q ( s ′ , a 2 ) = 0 Q(s',a_2)=0 Q(s′,a2)=0。
- SARSA 更新公式: Q ( s , a 1 ) ← Q ( s , a 1 ) + α [ R + γ Q ( s ′ , a ′ ) − Q ( s , a 1 ) ] . Q(s,a_1) \leftarrow Q(s,a_1) + \alpha \Bigl[ R + \gamma Q(s',a') - Q(s,a_1) \Bigr]. Q(s,a1)←Q(s,a1)+α[R+γQ(s′,a′)−Q(s,a1)]. 将数值代入: Q ( s , a 1 ) ← 0 + 0.5 [ − 1 + 0.9 × 0 − 0 ] = − 0.5. Q(s,a_1) \leftarrow 0 + 0.5 \Bigl[ -1 + 0.9 \times 0 - 0 \Bigr] = -0.5. Q(s,a1)←0+0.5[−1+0.9×0−0]=−0.5.
此时,因数据来源于当前策略,未来的更新总是依赖于当前策略选择的动作。Off-policy(Q-learning)更新示例
- 智能体在状态 s s s 同样选择 a 1 a_1 a1,获得 R = − 1 R=-1 R=−1,转移到 s ′ s' s′。
- 但 Q-learning 不需要用 s ′ s' s′ 下当前策略选择的动作,而是用 s ′ s' s′ 中最大 Q Q Q 值来更新,假设 s ′ s' s′ 中动作 a 1 a_1 a1 和 a 2 a_2 a2 的 Q Q Q 值均为 0,则: Q ( s , a 1 ) ← Q ( s , a 1 ) + α [ R + γ max a Q ( s ′ , a ) − Q ( s , a 1 ) ] . Q(s,a_1) \leftarrow Q(s,a_1) + \alpha \Bigl[ R + \gamma \max_{a} Q(s',a) - Q(s,a_1) \Bigr]. Q(s,a1)←Q(s,a1)+α[R+γamaxQ(s′,a)−Q(s,a1)]. 数值代入: Q ( s , a 1 ) ← 0 + 0.5 [ − 1 + 0.9 × 0 − 0 ] = − 0.5. Q(s,a_1) \leftarrow 0 + 0.5 \Bigl[ -1 + 0.9 \times 0 - 0 \Bigr] = -0.5. Q(s,a1)←0+0.5[−1+0.9×0−0]=−0.5.
虽然在这个简单例子中,两种方法的更新结果相同,但它们的关键区别在于后续在 s ′ s' s′ 的更新方式不同:
- SARSA 使用的是当前策略选择的动作 a ′ a' a′(可能不是最优动作),反映了当前行为的风险和探索策略。
- Q-learning 使用的是 s ′ s' s′ 中最大 Q Q Q 值,直接逼近最优值函数,不依赖于实际执行的行为。
2.2 更具体的网格世界示例
设想网格世界如下:
起点在左上角,终点在右下角。
每一步奖励 = − 1 =-1 =−1,终点奖励 = + 10 =+10 =+10。
状态数为 9 个,假设智能体初始策略均为随机选择。 假如经过多次更新,某个状态 s s s 的 Q Q Q 值如下:
On-policy(SARSA):
- Q ( s , 向右 ) = 2.5 Q(s, \text{向右}) = 2.5 Q(s,向右)=2.5
- Q ( s , 向下 ) = 1.8 Q(s, \text{向下}) = 1.8 Q(s,向下)=1.8
在这种策略下,智能体在 s s s 可能以较高概率选择“向右”,但这种估计受当前策略探索的影响,可能保留“谨慎”性质。Off-policy(Q-learning):
- Q ( s , 向右 ) = 3.0 Q(s, \text{向右}) = 3.0 Q(s,向右)=3.0
- Q ( s , 向下 ) = 2.2 Q(s, \text{向下}) = 2.2 Q(s,向下)=2.2
由于 Q-learning 总是选取最优动作的估计,即使当前策略可能随机选择,它依然会学习一个更接近最优的 Q Q Q 值。最终,在决策时智能体会选择数值更高的动作,从而收敛到最优策略。2.3 数值演示对比
考虑一个状态 s s s,在两个动作上的 Q 值在不同方法下可能更新如下(假设多次更新后的平均结果):
方法 Q ( s , 向右 ) Q(s, \text{向右}) Q(s,向右) Q ( s , 向下 ) Q(s, \text{向下}) Q(s,向下) On-policy 2.5 1.8 Off-policy 3.0 2.2
- 解释:
- On-policy 方法受限于当前策略的探索性,可能在较为保守的策略下估计较低的值;
- Off-policy 方法直接逼近最优值,所以即使实际行为中未频繁选择最优动作,其更新仍能利用最优动作的信息,使得估计更高。 例如,在某个时刻,智能体在状态 s ′ s' s′ 的两个动作的 Q Q Q 值分别为 3.0 和 2.2。在 SARSA 更新中,如果由于探索策略,智能体随机选择了较低估计的动作(比如 2.2),那么更新将带来一个较低的值;而在 Q-learning 更新中,使用的是 3.0 这个最大值,这样可以更快逼近最优策略。
3. 总结
On-policy(基于当前策略):
- 特点:数据由当前策略生成,更新直接针对实际采取的动作。
- 代表算法:SARSA、REINFORCE。
- 优点:考虑到策略本身的风险与探索,学习结果更加“平滑”。
- 缺点:样本利用率较低,因为只能用最新数据,且策略探索时可能带来低效估计。
Off-policy(目标策略与行为策略分离):
- 特点:可以利用历史数据和其他策略数据,更新时使用最优(或期望最优)的动作信息。
- 代表算法:Q-learning、DQN。
- 优点:样本利用率高、可以用经验回放等技术,通常能更快逼近最优策略。
- 缺点:需要修正行为与目标策略之间的差异(例如重要性采样),数值上可能更敏感。
本实验的学习曲线以及每个 γ \gamma γ取值的结果显示在图3的第一列。对于所有算法,我们仅展示TD学习(未进行奖励中心化)时最优 α \alpha α值对应的曲线。对于中心化方法,所展示的曲线对应的是从大范围粗略搜索中选择的最优 η \eta η值。
图3:学习曲线展示了TD学习在一个on-policy问题和两个off-policy问题中有无奖励中心化情况下的性能表现。
每个实心点表示50次独立运行的RMSVE均值,阴影区域表示一个标准误差。
首先需要注意的是,当奖励由oracle进行中心化时,学习曲线的初始误差要低得多。对于其他算法,初始误差的量级大约为 r ( π ) / ( 1 − γ ) r(\pi)/(1-\gamma) r(π)/(1−γ)。 TD学习(未进行中心化,蓝色)最终达到了与oracle中心化算法(橙色) 相同的误差水平,这符合预期。学习并减去平均奖励(绿色)确实加快了RMSVE的下降速度,相较于无中心化方法,收敛得更快。但是,该方法的最终误差率略高,这也是预期中的结果,因为平均奖励的估计值在训练过程中不断变化,这使得更新过程中产生比未中心化或oracle中心化方法更大的方差。对于更大的折扣因子(左下角),类似的趋势仍然成立,但未中心化方法的收敛速度明显更慢(请注意坐标轴的刻度差异)。在这两种情况下,我们验证了所有运行中的平均奖励估计值均约为0.25。
这些实验表明,简单的奖励中心化技术在on-policy设置下可以非常有效,并且对于较大的折扣因子,这一效果更加显著。
Off-policy设置的局限性 :公式(4)可以提供对行为策略的平均奖励的无偏估计,这意味着在off-policy设置下,平均奖励估计 R ˉ \bar{R} Rˉ会收敛到 r ( b ) r(b) r(b),而不是 r ( π ) r(\pi) r(π)。在更新过程中加入重要性采样比率并不足以保证收敛到 r ( π ) r(\pi) r(π),因为重要性采样只能纠正动作分布的不匹配,但无法纠正由此导致的状态分布的不匹配。
1. 平均奖励的估计与公式(4)
公式(4)给出了通过步长参数更新平均奖励估计的方法:
R ˉ t + 1 ≐ R ˉ t + β t ( R t + 1 − R ˉ t ) . \bar{R}_{t+1} \doteq \bar{R}_t + \beta_t \bigl(R_{t+1} - \bar{R}_t\bigr). Rˉt+1≐Rˉt+βt(Rt+1−Rˉt).
- 这里, R ˉ t \bar{R}_t Rˉt 表示在前(t)步观测中对平均奖励的估计;
- β t \beta_t βt是步长参数(满足 Robbins–Monro条件:例如 ∑ t β t = ∞ \sum_t \beta_t = \infty ∑tβt=∞且 ∑ t β t 2 < ∞ \sum_t \beta_t^2 < \infty ∑tβt2<∞),确保随着时间的推移该估计能无偏收敛;
- 如果数据由某个行为策略 b b b 生成,那么这种在线更新自然会使 R ˉ t \bar{R}_t Rˉt 收敛到行为策略的平均奖励 r ( b ) r(b) r(b)。
2. Off-policy设置与目标策略 π \pi π vs 行为策略 b b b
在off-policy学习中,智能体实际采集数据时使用的是行为策略 b b b,而学习目标通常是一个不同的目标策略 π \pi π。
- 行为策略 b b b:生成实际数据的策略,其状态-动作分布决定了我们观察到的 R t R_t Rt。
- 目标策略 π \pi π:我们希望学习或评估的策略,其平均奖励为 r ( π ) r(\pi) r(π)。
由于公式(4)直接基于从行为策略 b b b 采样到的奖励进行更新,因此它所估计的平均奖励 R ˉ t \bar{R}_t Rˉt 自然会收敛到 r ( b ) r(b) r(b) 而非 r ( π ) r(\pi) r(π) ;这就是在off-policy设置下一个基本的局限性。
3. 重要性采样比率及其作用
为了解决off-policy下因行为策略和目标策略不同而导致的不匹配问题,我们通常引入重要性采样比率,定义为
ρ t = π ( A t ∣ S t ) b ( A t ∣ S t ) . \rho_t = \frac{\pi(A_t \mid S_t)}{b(A_t \mid S_t)}. ρt=b(At∣St)π(At∣St).
- 重要性采样比率能在更新过程中纠正动作选择分布的不匹配:例如,在TD更新、策略评估或Q学习中,用 ρ t \rho_t ρt对奖励或者TD误差进行加权,使得更新更贴近目标策略 π \pi π的行为。
- 例如,在TD更新中,我们可能会使用修正后的TD误差: δ t = ρ t [ ( R t + 1 − R ˉ t ) + γ V ~ ( S t + 1 ) − V ~ ( S t ) ] . \delta_t = \rho_t\Bigl[(R_{t+1}-\bar{R}_t) + \gamma\,\tilde{V}(S_{t+1}) - \tilde{V}(S_t)\Bigr]. δt=ρt[(Rt+1−Rˉt)+γV~(St+1)−V~(St)].
然而,重要性采样比率只能校正动作分布的偏差,而状态分布的不匹配问题无法通过简单的动作比率来修正。原因如下:
- 数据采集时,状态的访问频率由行为策略 b b b 决定;即使在某个状态下,通过 ρ t \rho_t ρt 我们可以“调整”奖励,使其更符合目标策略的动作选择概率,但该状态本身在行为策略下的出现概率可能与目标策略不同。
- 因此,即使在更新中引入了 ρ t \rho_t ρt,由公式(4)更新得到的 R ˉ t \bar{R}_t Rˉt 仍然依赖于行为策略 b b b 的状态分布,从而使得平均奖励估计趋向于 r ( b ) r(b) r(b)。
4. 举例说明
考虑一个简单的MDP,包含两个状态 S 1 S_1 S1 和 S 2 S_2 S2,并且有两个动作 a 1 a_1 a1 和 a 2 a_2 a2。假设:
- 目标策略 π \pi π:在状态 S 1 S_1 S1下总是选择 a 1 a_1 a1,在状态 S 2 S_2 S2下总是选择 a 2 a_2 a2;
- 行为策略 b b b:在两个状态下均以50%的概率选择 a 1 a_1 a1或 a 2 a_2 a2;
- 各动作对应的奖励在 S 1 S_1 S1 和 S 2 S_2 S2 上有差异,比如在 S 1 S_1 S1 执行 a 1 a_1 a1 获得奖励较高,而在 S 2 S_2 S2 执行 a 2 a_2 a2 获得奖励较低。
由于数据是由 b b b 生成的,状态 S 1 S_1 S1 和 S 2 S_2 S2 会以 b b b 规定的比例出现。如果我们用公式(4)更新平均奖励,最终估计的 R ˉ t \bar{R}_t Rˉt 会反映 b b b 下的奖励分布,即收敛到 r ( b ) r(b) r(b)。
虽然在状态 S 1 S_1 S1 下目标策略 π \pi π 表现更好, S 1 S_1 S1 的奖励可能更高,但由于 b b b 只以固定比例访问各状态,重要性采样比率只能调整动作选择(例如在 S 1 S_1 S1 将 a 1 a_1 a1 奖励乘以合适的比率),而不能改变 S 1 S_1 S1 和 S 2 S_2 S2 被采样的频率。
结果,平均奖励估计仍然被行为策略的状态分布所主导,收敛到 r ( b ) r(b) r(b) 而非 r ( π ) r(\pi) r(π)。
这种现象表明,在off-policy情形下,简单地在TD更新中加入 ρ t \rho_t ρt(重要性采样比率)并不能纠正因状态分布不匹配而引起的平均奖励偏差。
让我们考虑平均奖励估计不准确所带来的影响。首先,需要注意的是,中心化折扣值函数同样满足递归Bellman方程:
v ~ γ ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r − r ˉ + γ v ~ γ ( s ′ ) ] , \tilde{v}^{\gamma}(s) = \sum_{a} \pi(a|s) \sum_{s',r} p(s',r \mid s,a) \left[ r - \bar{r} + \gamma \tilde{v}^{\gamma}(s') \right], v~γ(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r−rˉ+γv~γ(s′)],
1. 定义解释
中心化折扣值函数 v ~ γ ( s ) = E [ ∑ t = 0 ∞ γ t ( R t + 1 − r ˉ ) ∣ S 0 = s ] \tilde{v}^{\gamma}(s) = \mathbb{E}\left[\sum_{t=0}^\infty \gamma^t\left(R_{t+1} - \bar{r}\right) \,\Big|\, S_0=s\right] v~γ(s)=E[t=0∑∞γt(Rt+1−rˉ) S0=s] 就是说,从状态 s s s 出发,未来每一步得到的奖励先减去一个“平均奖励” r ˉ \bar{r} rˉ,然后这些“偏差”按照折扣因子 γ \gamma γ 依次加权求和。这样做的目的是只关注奖励相对于平均水平的差别,而不是奖励本身可能带来的巨大数值。2. 拆分求和,得到递归公式
想象你从状态 s s s 出发,做两步:
- 第一步:你立刻获得奖励 R 1 R_1 R1(减去平均奖励变成 R 1 − r ˉ R_1-\bar{r} R1−rˉ)。
- 之后的步骤:从第一步后的状态 S 1 S_1 S1 开始,你会继续获得未来奖励的折扣和,这部分就正好就是从状态 S 1 S_1 S1 开始的中心化折扣值 v ~ γ ( S 1 ) \tilde{v}^{\gamma}(S_1) v~γ(S1),不过要乘以折扣因子 γ \gamma γ。
因此,我们可以写成: v ~ γ ( s ) = E [ ( R 1 − r ˉ ) + γ v ~ γ ( S 1 ) ∣ S 0 = s ] . \tilde{v}^{\gamma}(s) = \mathbb{E}\Bigl[(R_1-\bar{r}) + \gamma\, \tilde{v}^{\gamma}(S_1) \,\Big|\, S_0=s\Bigr]. v~γ(s)=E[(R1−rˉ)+γv~γ(S1) S0=s].
3. 结合动作选择和状态转移
在状态 s s s 下,智能体会按照策略 π \pi π 选择动作,再由环境给出下一个状态 S 1 S_1 S1 和奖励 R 1 R_1 R1。这一步的期望可以展开为: v ~ γ ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r − r ˉ + γ v ~ γ ( s ′ ) ] . \tilde{v}^{\gamma}(s) = \sum_{a}\pi(a|s)\sum_{s',r} p(s',r|s,a)\Bigl[r - \bar{r} + \gamma\, \tilde{v}^{\gamma}(s')\Bigr]. v~γ(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r−rˉ+γv~γ(s′)]. 这里:
- π ( a ∣ s ) \pi(a|s) π(a∣s) 表示在状态 s s s 下选择动作 a a a 的概率;
- p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s′,r∣s,a) 表示采取动作 a a a 后转移到状态 s ′ s' s′ 并获得奖励 r r r 的概率;
- r − r ˉ r - \bar{r} r−rˉ 就是第一步的奖励中心化后值,而 γ v ~ γ ( s ′ ) \gamma\, \tilde{v}^{\gamma}(s') γv~γ(s′) 表示接下来从状态 s ′ s' s′ 开始的折扣奖励。
这样,我们就得到了中心化折扣值函数的递归(Bellman)方程。
简单总结:
- 我们把从状态 s s s 开始的未来奖励(减去平均奖励)拆分成两部分: ① 第一秒钟的奖励减去平均奖励; ② 未来奖励折扣和(从下一个状态开始)。
- 利用马尔可夫性质,这个第二部分就是从 S 1 S_1 S1 开始的中心化折扣值函数。
- 最后,再把动作选择和状态转移的概率考虑进去,就得到了那个递归公式。
or, v ~ γ = r π − r ˉ 1 + γ P π v ~ γ , (6) \text{or,} \quad \tilde{\mathbf{v}}^{\gamma} = \mathbf{r}_{\pi} - \bar{r} \mathbf{1} + \gamma \mathbf{P}_{\pi} \tilde{\mathbf{v}}^{\gamma}, \tag{6} or,v~γ=rπ−rˉ1+γPπv~γ,(6)
其中, v ~ γ \tilde{\mathbf{v}}^{\gamma} v~γ表示 R ∣ S ∣ \mathbb{R}^{|\mathcal{S}|} R∣S∣中的一个向量, r π \mathbf{r}_{\pi} rπ是从每个状态出发的期望单步奖励向量, r ˉ \bar{r} rˉ是一个标量变量, 1 \mathbf{1} 1是一个全为1的向量, P π \mathbf{P}_{\pi} Pπ是由策略 π \pi π诱导的状态转移矩阵。
1. 从单个状态的Bellman方程出发
对于某个状态 s s s,中心化折扣值函数满足: v ~ γ ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r − r ˉ + γ v ~ γ ( s ′ ) ] . \tilde{v}^{\gamma}(s) = \sum_{a} \pi(a|s) \sum_{s', r} p(s',r \mid s,a) \Bigl[ r - \bar{r} + \gamma\,\tilde{v}^{\gamma}(s') \Bigr]. v~γ(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)[r−rˉ+γv~γ(s′)]. 这里:
- π ( a ∣ s ) \pi(a|s) π(a∣s) 是在状态 s s s 下采取动作 a a a 的概率;
- p ( s ′ , r ∣ s , a ) p(s', r \mid s,a) p(s′,r∣s,a) 是从状态 s s s 采取动作 a a a 后转移到状态 s ′ s' s′ 并获得奖励 r r r 的概率;
- r ˉ \bar{r} rˉ 是我们估计的平均奖励,是一个常数(它不依赖于 a , s ′ , r a, s', r a,s′,r)。
我们可以把上式中的求和拆开成两部分:
- 求出期望即时奖励: r π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) r . r_{\pi}(s) = \sum_{a} \pi(a|s) \sum_{s', r} p(s',r|s,a) \, r. rπ(s)=a∑π(a∣s)s′,r∑p(s′,r∣s,a)r.
- 对于常数 r ˉ \bar{r} rˉ: ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) r ˉ . \sum_{a} \pi(a|s) \sum_{s', r} p(s',r|s,a) \, \bar{r}. a∑π(a∣s)s′,r∑p(s′,r∣s,a)rˉ.
由于 r ˉ \bar{r} rˉ 不依赖于 a , s ′ a, s' a,s′ 或 r r r,我们可以把它提到求和符号外面: ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) r ˉ = r ˉ ⋅ ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) . \sum_{a} \pi(a|s) \sum_{s', r} p(s',r|s,a) \, \bar{r} = \bar{r} \cdot \sum_{a} \pi(a|s) \sum_{s', r} p(s',r|s,a). a∑π(a∣s)s′,r∑p(s′,r∣s,a)rˉ=rˉ⋅a∑π(a∣s)s′,r∑p(s′,r∣s,a). 注意到,对于任何状态 s s s, ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) = 1 , \sum_{a} \pi(a|s) \sum_{s', r} p(s',r|s,a)=1, a∑π(a∣s)s′,r∑p(s′,r∣s,a)=1,
因为这是对整个概率分布求和。因此,上面的常数项就是 r ˉ \bar{r} rˉ: ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) r ˉ = r ˉ . \sum_{a} \pi(a|s) \sum_{s', r} p(s',r|s,a) \, \bar{r} = \bar{r}. a∑π(a∣s)s′,r∑p(s′,r∣s,a)rˉ=rˉ.所以原式就变为: v ~ γ ( s ) = r π ( s ) − r ˉ + γ ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) v ~ γ ( s ′ ) . \tilde{v}^{\gamma}(s) = r_{\pi}(s) - \bar{r} + \gamma \sum_{a} \pi(a|s) \sum_{s', r} p(s',r|s,a)\tilde{v}^{\gamma}(s'). v~γ(s)=rπ(s)−rˉ+γa∑π(a∣s)s′,r∑p(s′,r∣s,a)v~γ(s′).
2. 定义状态转移概率
我们再定义一个从状态 s s s 到 s ′ s' s′ 的转移概率: P π ( s , s ′ ) = ∑ a π ( a ∣ s ) ∑ r p ( s ′ , r ∣ s , a ) . P_{\pi}(s,s') = \sum_{a} \pi(a|s) \sum_{r} p(s',r|s,a). Pπ(s,s′)=a∑π(a∣s)r∑p(s′,r∣s,a). 注意这里求和的是关于 (a) 和 r r r,所以 P π ( s , s ′ ) P_{\pi}(s,s') Pπ(s,s′)只依赖于状态 s s s 和 s ′ s' s′。
利用这个定义,上面的式子可以写成: v ~ γ ( s ) = r π ( s ) − r ˉ + γ ∑ s ′ P π ( s , s ′ ) v ~ γ ( s ′ ) . \tilde{v}^{\gamma}(s) = r_{\pi}(s) - \bar{r} + \gamma \sum_{s'} P_{\pi}(s,s')\,\tilde{v}^{\gamma}(s'). v~γ(s)=rπ(s)−rˉ+γs′∑Pπ(s,s′)v~γ(s′).
3. 转换为向量形式
现在,我们用向量和矩阵来表示所有状态上的方程:
- 定义 v ~ γ \tilde{\mathbf{v}}^{\gamma} v~γ 为一个向量,包含每个状态 s s s 的 v ~ γ ( s ) \tilde{v}^{\gamma}(s) v~γ(s);
- 定义 r π \mathbf{r}_{\pi} rπ 为一个向量,其第 s s s 个元素为 r π ( s ) r_{\pi}(s) rπ(s);
- 定义 P π \mathbf{P}_{\pi} Pπ 为状态转移矩阵, [ P π ] s , s ′ = P π ( s , s ′ ) [\mathbf{P}_{\pi}]_{s,s'} = P_{\pi}(s,s') [Pπ]s,s′=Pπ(s,s′);
- 定义 1 \mathbf{1} 1 为全1向量;
- r ˉ \bar{r} rˉ 是标量。
那么对于每个状态 (s) 的方程,我们可以把它们堆叠成一个整体: v ~ γ = r π − r ˉ 1 + γ P π v ~ γ . \tilde{\mathbf{v}}^{\gamma} = \mathbf{r}_{\pi} - \bar{r}\,\mathbf{1} + \gamma\,\mathbf{P}_{\pi}\,\tilde{\mathbf{v}}^{\gamma}. v~γ=rπ−rˉ1+γPπv~γ.
这就是向量形式的Bellman方程。 在这里, r ˉ 1 \bar{r}\,\mathbf{1} rˉ1 表示对每个状态都减去同一个常数 r ˉ \bar{r} rˉ。
4. 数值例子说明
假设状态空间只有两个状态 S 1 S_1 S1 和 S 2 S_2 S2,且:
- 对于 S 1 S_1 S1: r π ( S 1 ) = 3 r_{\pi}(S_1) = 3 rπ(S1)=3。 状态转移概率: P π ( S 1 , S 1 ) = 0.8 P_{\pi}(S_1,S_1)=0.8 Pπ(S1,S1)=0.8, P π ( S 1 , S 2 ) = 0.2 P_{\pi}(S_1,S_2)=0.2 Pπ(S1,S2)=0.2。
- 对于 S 2 S_2 S2: r π ( S 2 ) = 5 r_{\pi}(S_2) = 5 rπ(S2)=5。 状态转移概率: P π ( S 2 , S 1 ) = 0.3 P_{\pi}(S_2,S_1)=0.3 Pπ(S2,S1)=0.3, P π ( S 2 , S 2 ) = 0.7 P_{\pi}(S_2,S_2)=0.7 Pπ(S2,S2)=0.7。
- 假设折扣因子 γ = 0.9 \gamma = 0.9 γ=0.9。
- 设 r ˉ = 4 \bar{r} = 4 rˉ=4(这是我们估计的平均奖励)。
则对于 S 1 S_1 S1 的方程为: v ~ γ ( S 1 ) = 3 − 4 + 0.9 [ 0.8 v ~ γ ( S 1 ) + 0.2 v ~ γ ( S 2 ) ] , \tilde{v}^{\gamma}(S_1) = 3 - 4 + 0.9\Bigl[0.8\,\tilde{v}^{\gamma}(S_1) + 0.2\,\tilde{v}^{\gamma}(S_2)\Bigr], v~γ(S1)=3−4+0.9[0.8v~γ(S1)+0.2v~γ(S2)], 对于 S 2 S_2 S2 的方程为: v ~ γ ( S 2 ) = 5 − 4 + 0.9 [ 0.3 v ~ γ ( S 1 ) + 0.7 v ~ γ ( S 2 ) ] . \tilde{v}^{\gamma}(S_2) = 5 - 4 + 0.9\Bigl[0.3\,\tilde{v}^{\gamma}(S_1) + 0.7\,\tilde{v}^{\gamma}(S_2)\Bigr]. v~γ(S2)=5−4+0.9[0.3v~γ(S1)+0.7v~γ(S2)].
用向量写就是: v ~ γ = ( 3 5 ) − 4 ( 1 1 ) + 0.9 ( 0.8 0.2 0.3 0.7 ) v ~ γ . \tilde{\mathbf{v}}^{\gamma} = \begin{pmatrix} 3 \\ 5 \end{pmatrix} - 4\begin{pmatrix} 1 \\ 1 \end{pmatrix} + 0.9 \begin{pmatrix} 0.8 & 0.2 \\ 0.3 & 0.7 \end{pmatrix} \tilde{\mathbf{v}}^{\gamma}. v~γ=(35)−4(11)+0.9(0.80.30.20.7)v~γ.
这里,减去 4 ( 1 1 ) 4\begin{pmatrix} 1 \\ 1 \end{pmatrix} 4(11) 就相当于对每个状态都减去了常数4,因为 r ˉ \bar{r} rˉ 不需要在求和内部出现。
容易验证,方程(6)的解 ( v ~ γ , r ˉ ) (\tilde{\mathbf{v}}^{\gamma}, \bar{r}) (v~γ,rˉ)的形式为:
v ~ π γ + c 1 , r ( π ) − c ( 1 − γ ) , ∀ c ∈ R , \tilde{\mathbf{v}}^{\gamma}_{\pi} + c\mathbf{1}, \quad r(\pi) - c(1-\gamma), \quad \forall c \in \mathbb{R}, v~πγ+c1,r(π)−c(1−γ),∀c∈R,
其中, v ~ π γ \tilde{\mathbf{v}}^{\gamma}_{\pi} v~πγ是与策略 π \pi π和折扣因子 γ \gamma γ对应的中心化微分值函数(见公式(3))。
我们可以证明,对于方程
v ~ γ = r π − r ˉ 1 + γ P π v ~ γ , \tilde{\mathbf{v}}^{\gamma} = \mathbf{r}_{\pi} - \bar{r}\,\mathbf{1} + \gamma\,\mathbf{P}_{\pi}\,\tilde{\mathbf{v}}^{\gamma}, v~γ=rπ−rˉ1+γPπv~γ,
如果 ( v ~ π γ , r ( π ) ) (\tilde{\mathbf{v}}^{\gamma}_{\pi},\, r(\pi)) (v~πγ,r(π)) 是一个解,那么对任意常数 c ∈ R c \in \mathbb{R} c∈R, v ~ γ = v ~ π γ + c 1 , r ˉ = r ( π ) − c ( 1 − γ ) \tilde{\mathbf{v}}^{\gamma} = \tilde{\mathbf{v}}^{\gamma}_{\pi} + c\,\mathbf{1}, \quad \bar{r} = r(\pi) - c(1-\gamma) v~γ=v~πγ+c1,rˉ=r(π)−c(1−γ) 也是一个解。下面我们详细说明这是为什么。
1. 重写方程并引入常数偏移
假设我们已有“理想解”: v ~ π γ = r π − r ( π ) 1 + γ P π v ~ π γ . \tilde{\mathbf{v}}^{\gamma}_{\pi} = \mathbf{r}_{\pi} - r(\pi)\,\mathbf{1} + \gamma\,\mathbf{P}_{\pi}\,\tilde{\mathbf{v}}^{\gamma}_{\pi}. v~πγ=rπ−r(π)1+γPπv~πγ.
现在,我们考虑在这个解上加上一个常数项,即令 v ~ γ = v ~ π γ + c 1 , \tilde{\mathbf{v}}^{\gamma} = \tilde{\mathbf{v}}^{\gamma}_{\pi} + c\,\mathbf{1}, v~γ=v~πγ+c1, 并同时调整平均奖励估计为 r ˉ = r ( π ) − c ( 1 − γ ) . \bar{r} = r(\pi) - c(1-\gamma). rˉ=r(π)−c(1−γ).
2. 验证这个新的解
将新的 v ~ γ \tilde{\mathbf{v}}^{\gamma} v~γ 和 r ˉ \bar{r} rˉ 代入原方程,我们需要验证:
v ~ π γ + c 1 = ? r π − ( r ( π ) − c ( 1 − γ ) ) 1 + γ P π ( v ~ π γ + c 1 ) . \tilde{\mathbf{v}}^{\gamma}_{\pi} + c\,\mathbf{1} \stackrel{?}{=} \mathbf{r}_{\pi} - \bigl(r(\pi) - c(1-\gamma)\bigr)\,\mathbf{1} + \gamma\,\mathbf{P}_{\pi}\Bigl(\tilde{\mathbf{v}}^{\gamma}_{\pi} + c\,\mathbf{1}\Bigr). v~πγ+c1=?rπ−(r(π)−c(1−γ))1+γPπ(v~πγ+c1).
右侧展开为:
r π − r ( π ) 1 + c ( 1 − γ ) 1 + γ P π v ~ π γ + γ c P π 1. \mathbf{r}_{\pi} - r(\pi)\,\mathbf{1} + c(1-\gamma)\,\mathbf{1} + \gamma\,\mathbf{P}_{\pi}\tilde{\mathbf{v}}^{\gamma}_{\pi} + \gamma\, c\,\mathbf{P}_{\pi}\mathbf{1}. rπ−r(π)1+c(1−γ)1+γPπv~πγ+γcPπ1.
注意,状态转移矩阵 P π \mathbf{P}_{\pi} Pπ 是一个随机矩阵,满足 P π 1 = 1. \mathbf{P}_{\pi}\mathbf{1} = \mathbf{1}. Pπ1=1.
因此, γ c P π 1 = γ c 1. \gamma\, c\,\mathbf{P}_{\pi}\mathbf{1} = \gamma\, c\,\mathbf{1}. γcPπ1=γc1.
代入后,右侧变为:
r π − r ( π ) 1 + c ( 1 − γ ) 1 + γ P π v ~ π γ + γ c 1. \mathbf{r}_{\pi} - r(\pi)\,\mathbf{1} + c(1-\gamma)\,\mathbf{1} + \gamma\,\mathbf{P}_{\pi}\tilde{\mathbf{v}}^{\gamma}_{\pi} + \gamma\, c\,\mathbf{1}. rπ−r(π)1+c(1−γ)1+γPπv~πγ+γc1.
合并常数项 c ( 1 − γ ) 1 + γ c 1 c(1-\gamma)\,\mathbf{1} + \gamma\, c\,\mathbf{1} c(1−γ)1+γc1 得到
c ( 1 − γ + γ ) 1 = c 1. c(1-\gamma+\gamma)\,\mathbf{1} = c\,\mathbf{1}. c(1−γ+γ)1=c1.
于是,右侧变为
r π − r ( π ) 1 + γ P π v ~ π γ + c 1. \mathbf{r}_{\pi} - r(\pi)\,\mathbf{1} + \gamma\,\mathbf{P}_{\pi}\tilde{\mathbf{v}}^{\gamma}_{\pi} + c\,\mathbf{1}. rπ−r(π)1+γPπv~πγ+c1.
但由理想解的Bellman方程,我们知道
v ~ π γ = r π − r ( π ) 1 + γ P π v ~ π γ . \tilde{\mathbf{v}}^{\gamma}_{\pi} = \mathbf{r}_{\pi} - r(\pi)\,\mathbf{1} + \gamma\,\mathbf{P}_{\pi}\tilde{\mathbf{v}}^{\gamma}_{\pi}. v~πγ=rπ−r(π)1+γPπv~πγ.
因此,右侧正好等于
v ~ π γ + c 1 , \tilde{\mathbf{v}}^{\gamma}_{\pi} + c\,\mathbf{1}, v~πγ+c1,
这与左侧完全一致。
3. 意义说明
这说明了:
- 如果我们正确估计了平均奖励,即 r ˉ = r ( π ) \bar{r} = r(\pi) rˉ=r(π)(对应 c = 0 c=0 c=0),则中心化值函数正好为 v ~ π γ \tilde{\mathbf{v}}^{\gamma}_{\pi} v~πγ;
- 如果我们有一个估计偏差,使得 r ˉ = r ( π ) − c ( 1 − γ ) \bar{r} = r(\pi) - c(1-\gamma) rˉ=r(π)−c(1−γ)(也可以写为 r ( π ) − k r(\pi)-k r(π)−k且 k = c ( 1 − γ ) k=c(1-\gamma) k=c(1−γ)),那么解将整体被平移 c 1 c\,\mathbf{1} c1(或 k 1 − γ 1 \frac{k}{1-\gamma}\,\mathbf{1} 1−γk1)。
换句话说,这个自由度反映出奖励中心化本身对全局常数不敏感。无论我们如何加一个常数 c c c 到所有状态的中心化值,系统的相对比较不变,只要我们同时对平均奖励做出相应调整。
4. 具体例子和数值说明
数值例子 1:折扣因子较小
假设一个简单的MDP在策略 π \pi π下,其真实平均奖励为
r ( π ) = 2 , r(\pi) = 2, r(π)=2,
以及对应的理想中心化微分值函数为
v ~ π γ = ( 3 − 1 ) , \tilde{\mathbf{v}}^{\gamma}_{\pi} = \begin{pmatrix} 3 \\ -1 \end{pmatrix}, v~πγ=(3−1),
且设折扣因子
γ = 0.8. \gamma = 0.8. γ=0.8.
情况 A:无偏估计
如果我们准确估计了平均奖励,则有
r ˉ = r ( π ) = 2. \bar{r} = r(\pi) = 2. rˉ=r(π)=2.
此时令 c = 0 c=0 c=0,解为
v ~ γ = v ~ π γ + 0 ⋅ 1 = ( 3 − 1 ) . \tilde{\mathbf{v}}^{\gamma} = \tilde{\mathbf{v}}^{\gamma}_{\pi} + 0\cdot\mathbf{1} = \begin{pmatrix} 3 \\ -1 \end{pmatrix}. v~γ=v~πγ+0⋅1=(3−1).
这正是我们希望得到的中心化值。
情况 B:平均奖励估计存在偏差
假设由于估计误差,我们得到的平均奖励为
r ˉ = 1.8 , \bar{r} = 1.8, rˉ=1.8,
那么偏差 k = r ( π ) − r ˉ = 2 − 1.8 = 0.2 k = r(\pi) - \bar{r} = 2 - 1.8 = 0.2 k=r(π)−rˉ=2−1.8=0.2。
根据公式,解将变为
v ~ γ = v ~ π γ + k 1 − γ 1 = ( 3 − 1 ) + 0.2 1 − 0.8 ( 1 1 ) . \tilde{\mathbf{v}}^{\gamma} = \tilde{\mathbf{v}}^{\gamma}_{\pi} + \frac{k}{1-\gamma}\,\mathbf{1} = \begin{pmatrix} 3 \\ -1 \end{pmatrix} + \frac{0.2}{1-0.8}\,\begin{pmatrix} 1 \\ 1 \end{pmatrix}. v~γ=v~πγ+1−γk1=(3−1)+1−0.80.2(11).
注意这里
0.2 1 − 0.8 = 0.2 0.2 = 1. \frac{0.2}{1-0.8} = \frac{0.2}{0.2} = 1. 1−0.80.2=0.20.2=1.
因此,
v ~ γ = ( 3 + 1 − 1 + 1 ) = ( 4 0 ) , \tilde{\mathbf{v}}^{\gamma} = \begin{pmatrix} 3+1 \\ -1+1 \end{pmatrix} = \begin{pmatrix} 4 \\ 0 \end{pmatrix}, v~γ=(3+1−1+1)=(40), r ˉ = r ( π ) − k = 2 − 0.2 = 1.8. \bar{r} = r(\pi) - k = 2 - 0.2 = 1.8. rˉ=r(π)−k=2−0.2=1.8.
也就是说,由于平均奖励估计比真实值低0.2,中心化折扣值整体上被向上平移了1(这里放大了 1 / ( 1 − γ ) = 1 / 0.2 = 5 1/(1-\gamma)=1/0.2=5 1/(1−γ)=1/0.2=5倍,但在本例中因为 0.2 / 0.2 = 1 0.2/0.2=1 0.2/0.2=1 正好如此)。
— 注意:更一般地,可以写为任意 c c c(例如 c = 0.5 c=0.5 c=0.5时,等价地 k = c ( 1 − γ ) = 0.5 × 0.2 = 0.1 k = c(1-\gamma)=0.5\times0.2=0.1 k=c(1−γ)=0.5×0.2=0.1),结果就是中心化值整体平移了 0.5 / ( 1 − γ ) = 0.5 / 0.2 = 2.5 0.5/(1-\gamma)=0.5/0.2=2.5 0.5/(1−γ)=0.5/0.2=2.5单位,同时平均奖励估计相应调整为 r ( π ) − 0.1 r(\pi)-0.1 r(π)−0.1。数值例子 2:折扣因子接近1
设相同真实平均奖励 r ( π ) = 2 r(\pi)=2 r(π)=2,真实中心化值为
v ~ π γ = ( 3 − 1 ) , \tilde{\mathbf{v}}^{\gamma}_{\pi} = \begin{pmatrix} 3 \\ -1 \end{pmatrix}, v~πγ=(3−1),
但令折扣因子
γ = 0.99. \gamma = 0.99. γ=0.99.
假设平均奖励估计存在同样的绝对偏差 k = 0.1 k = 0.1 k=0.1(即我们估计得到 r ˉ = 2 − 0.1 = 1.9 \bar{r} = 2 - 0.1 = 1.9 rˉ=2−0.1=1.9)。
这时补偿常数为
k 1 − γ = 0.1 1 − 0.99 = 0.1 0.01 = 10. \frac{k}{1-\gamma} = \frac{0.1}{1-0.99} = \frac{0.1}{0.01} = 10. 1−γk=1−0.990.1=0.010.1=10.
因此,实际解为
v ~ γ = v ~ π γ + 10 1 = ( 3 + 10 − 1 + 10 ) = ( 13 9 ) , \tilde{\mathbf{v}}^{\gamma} = \tilde{\mathbf{v}}^{\gamma}_{\pi} + 10\,\mathbf{1} = \begin{pmatrix} 3+10 \\ -1+10 \end{pmatrix} = \begin{pmatrix} 13 \\ 9 \end{pmatrix}, v~γ=v~πγ+101=(3+10−1+10)=(139), r ˉ = r ( π ) − k = 2 − 0.1 = 1.9. \bar{r} = r(\pi) - k = 2 - 0.1 = 1.9. rˉ=r(π)−k=2−0.1=1.9.
这里可以看到,即使 k k k只是0.1的微小偏差,由于 γ \gamma γ接近1,中心化值整体偏移了10,这将严重干扰后续学习过程,破坏奖励中心化消除大常数偏移的初衷。
即任何对中心化值函数加上一个常数,同时将平均奖励相应调整,都仍然满足该Bellman方程。
等价地,我们可以将解的形式写为:
v ~ π γ + k 1 − γ 1 , r ( π ) − k , ∀ k ∈ R . \tilde{\mathbf{v}}^{\gamma}_{\pi} + \frac{k}{1-\gamma} \mathbf{1}, \quad r(\pi) - k, \quad \forall k \in \mathbb{R}. v~πγ+1−γk1,r(π)−k,∀k∈R.
这表明,如果平均奖励的估计值存在偏差 k k k,则中心化折扣值的每个元素都会产生一个常数偏移 k / ( 1 − γ ) k/(1-\gamma) k/(1−γ)。这种情况是不理想的,因为奖励中心化的主要动机就是消除估计中的潜在大偏移。
因此,我们希望找到一种方法,在执行不同的行为策略时,能够准确估计目标策略的平均奖励。
然而,需要注意的是,对平均奖励的估计不准确并不会导致算法完全失效。不进行奖励中心化的标准算法可以被视为使用了一个固定但不准确的平均奖励估计(即零),但在表格型情况下,它们仍然保证收敛到目标策略的真实值。因此,问题的关键不在于收敛性,而在于学习速度。
准确估计平均奖励可能会在使用标准方法时提供更好的样本复杂度界限,相比于直接估计未中心化值而言。例如,Q-learning的收敛界限涉及 ( 1 / ( 1 − γ ) ) (1/(1-\gamma)) (1/(1−γ))的幂次(见Qu & Wierman, 2020;Wainwright, 2019;Even-Dar et al., 2003)。此外,正如图3所示,当奖励由oracle进行中心化时,学习速度明显高于未中心化的情况。
总的来说,奖励中心化的有效性随着平均奖励估计的准确度提高而增强。因此,即使是简单的奖励中心化方法(公式(4)),当行为策略的平均奖励接近目标策略的平均奖励时,也能非常有效。
这种情况通常发生在两种策略相似时,例如,一个贪心目标策略与一个 ϵ \epsilon ϵ-贪心行为策略(其中 ϵ \epsilon ϵ较小) 。然而,当两种策略的差异增加时,奖励中心化在学习速度上的优势可能会减弱,甚至完全消失。
在接下来的章节中,我们将介绍一种更精细的高级方法,用于在off-policy设置下更准确地估计平均奖励。