TD(λ),资格迹(Eligibility Traces)与时序差分学习的统一

TD(λ) 是时序差分学习与资格迹结合的统一算法,通过参数 λ ∈ [ 0 , 1 ] λ∈[0,1] λ∈[0,1] 实现 单步 TD(0)蒙特卡洛方法 的连续插值。它提供两种等价的实现视角:前向视图 (理论分析)和后向视图(在线实现)。

文章目录

    • [1. λ-回报(λ-return)](#1. λ-回报(λ-return))
    • [2. 前向视图(Forward View):时序差分学习](#2. 前向视图(Forward View):时序差分学习)
      • [2.1 批量更新规则](#2.1 批量更新规则)
      • [2.2 公式符号说明](#2.2 公式符号说明)
    • [3. 后向视图(Backward View):资格迹实现](#3. 后向视图(Backward View):资格迹实现)
      • [3.1 更新规则](#3.1 更新规则)
      • [3.2 表格型特例](#3.2 表格型特例)
    • [4. 等价性证明:前向 = 后向](#4. 等价性证明:前向 = 后向)
    • [5. 离线 vs 在线更新](#5. 离线 vs 在线更新)
    • [5 资格迹的三种实现方式](#5 资格迹的三种实现方式)
      • [累积迹(Accumulating Trace)](#累积迹(Accumulating Trace))
      • [替换迹(Replacing Trace)](#替换迹(Replacing Trace))
      • [荷兰迹(Dutch Trace)](#荷兰迹(Dutch Trace))
    • [6. 资格迹版本的 Sarsa(λ) 与 Q(λ)](#6. 资格迹版本的 Sarsa(λ) 与 Q(λ))
    • [7. 关键公式总结表](#7. 关键公式总结表)

1. λ-回报(λ-return)

对于时刻 t 的状态 S t S_t St,λ-回报 G t λ G_t^\lambda Gtλ 是所有 n 步回报的指数加权平均
G t λ = ( 1 − λ ) ∑ n = 1 ∞ λ n − 1 G t ( n ) G_t^\lambda = (1-\lambda) \sum_{n=1}^{\infty} \lambda^{n-1} G_t^{(n)} Gtλ=(1−λ)n=1∑∞λn−1Gt(n)

其中 n 步回报 G t ( n ) G_t^{(n)} Gt(n) 定义为:
G t ( n ) = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ + γ n − 1 R t + n + γ n v ^ ( S t + n ) G_t^{(n)} = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots + \gamma^{n-1} R_{t+n} + \gamma^n \hat{v}(S_{t+n}) Gt(n)=Rt+1+γRt+2+γ2Rt+3+⋯+γn−1Rt+n+γnv^(St+n)

当 episode 在 T 时刻结束时, v ^ ( S T ) = 0 \hat{v}(S_T) = 0 v^(ST)=0,求和自动截断为有限项。

展开 λ-回报可见其本质:
G t λ = R t + 1 + γ [ ( 1 − λ ) v ^ ( S t + 1 ) + λ G t + 1 λ ] G_t^\lambda = R_{t+1} + \gamma \left[ (1-\lambda) \hat{v}(S_{t+1}) + \lambda G_{t+1}^\lambda \right] Gtλ=Rt+1+γ[(1−λ)v^(St+1)+λGt+1λ]

递推关系显示:

  • λ = 0 λ = 0 λ=0 : G t λ = R t + 1 + γ v ^ ( S t + 1 ) G_t^\lambda = R_{t+1} + \gamma \hat{v}(S_{t+1}) Gtλ=Rt+1+γv^(St+1) → 单步 TD 目标
  • λ = 1 λ = 1 λ=1 : G t λ = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ G_t^\lambda = R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots Gtλ=Rt+1+γRt+2+γ2Rt+3+⋯ → 蒙特卡洛回报

2. 前向视图(Forward View):时序差分学习

2.1 批量更新规则

前向视图基于"事后"视角,在 episode 结束后用 λ-回报更新所有历史状态:
w ← w + α ∑ t = 0 T − 1 [ G t λ − v ^ ( S t , w ) ] ∇ v ^ ( S t , w ) \mathbf{w} \leftarrow \mathbf{w} + \alpha \sum_{t=0}^{T-1} \big[ G_t^\lambda - \hat{v}(S_t, \mathbf{w}) \big] \nabla \hat{v}(S_t, \mathbf{w}) w←w+αt=0∑T−1[Gtλ−v^(St,w)]∇v^(St,w)

2.2 公式符号说明

符号 含义 维度/范围
w \mathbf{w} w 价值函数参数向量 R n \mathbb{R}^n Rn
v ^ ( S t , w ) \hat{v}(S_t, \mathbf{w}) v^(St,w) 状态 S t S_t St 的价值估计 R \mathbb{R} R
∇ v ^ ( S t , w ) \nabla \hat{v}(S_t, \mathbf{w}) ∇v^(St,w) 价值函数梯度 R n \mathbb{R}^n Rn
α \alpha α 学习率 ( 0 , 1 ) (0,1) (0,1)
γ \gamma γ 折扣因子 [ 0 , 1 ] [0,1] [0,1]
λ \lambda λ 迹衰减率 [ 0 , 1 ] [0,1] [0,1]

缺点 :必须等待序列结束才能计算 G t λ G_t^\lambda Gtλ,无法在线学习。

3. 后向视图(Backward View):资格迹实现

维护资格迹向量 z \mathbf{z} z 和价值函数参数向量 w \mathbf{w} w。

3.1 更新规则

后向视图每步增量更新,数学等价于前向视图:

资格迹更新
z t = γ λ z t − 1 + ∇ v ^ ( S t , w t ) \mathbf{z}t = \gamma \lambda \mathbf{z}{t-1} + \nabla \hat{v}(S_t, \mathbf{w}_t) zt=γλzt−1+∇v^(St,wt)

权重更新
w t + 1 = w t + α δ t z t \mathbf{w}_{t+1} = \mathbf{w}_t + \alpha \delta_t \mathbf{z}_t wt+1=wt+αδtzt

其中 TD 误差 δ t \delta_t δt 为:
δ t = R t + 1 + γ v ^ ( S t + 1 , w t ) − v ^ ( S t , w t ) \delta_t = R_{t+1} + \gamma \hat{v}(S_{t+1}, \mathbf{w}_t) - \hat{v}(S_t, \mathbf{w}_t) δt=Rt+1+γv^(St+1,wt)−v^(St,wt)

3.2 表格型特例

当使用表格型表示 时(每个状态独立参数, ∇ v ^ ( S t ) = 1 S t \nabla \hat{v}(S_t) = \mathbf{1}_{S_t} ∇v^(St)=1St),公式简化为:

状态 s 的资格迹
z t ( s ) = { γ λ z t − 1 ( s ) + 1 if s = S t γ λ z t − 1 ( s ) otherwise z_t(s) = \begin{cases} \gamma \lambda z_{t-1}(s) + 1 & \text{if } s = S_t \\ \gamma \lambda z_{t-1}(s) & \text{otherwise} \end{cases} zt(s)={γλzt−1(s)+1γλzt−1(s)if s=Stotherwise

状态价值更新
V ( S t ) ← V ( S t ) + α δ t z t ( S t ) V(S_t) \leftarrow V(S_t) + \alpha \delta_t z_t(S_t) V(St)←V(St)+αδtzt(St)

4. 等价性证明:前向 = 后向

回顾前向和后向更新的公式:

资格迹的展开式
z t = ∑ k = 0 t ( γ λ ) k ∇ v ^ ( S t − k , w t − k ) \mathbf{z}t = \sum{k=0}^{t} (\gamma\lambda)^k \nabla \hat{v}(S_{t-k}, \mathbf{w}_{t-k}) zt=k=0∑t(γλ)k∇v^(St−k,wt−k)

TD 误差的望远镜求和
G t λ − v ^ ( S t ) = ∑ k = 0 ∞ ( γ λ ) k δ t + k G_t^\lambda - \hat{v}(S_t) = \sum_{k=0}^{\infty} (\gamma\lambda)^k \delta_{t+k} Gtλ−v^(St)=k=0∑∞(γλ)kδt+k

证明过程

从后向视图的总更新量出发:
Δ w = ∑ t = 1 T α δ t z t = α ∑ t = 1 T δ t ∑ k = 0 t ( γ λ ) k ∇ v ^ ( S t − k ) \Delta \mathbf{w} = \sum_{t=1}^{T} \alpha \delta_t \mathbf{z}t = \alpha \sum{t=1}^{T} \delta_t \sum_{k=0}^{t} (\gamma\lambda)^k \nabla \hat{v}(S_{t-k}) Δw=t=1∑Tαδtzt=αt=1∑Tδtk=0∑t(γλ)k∇v^(St−k)

交换求和顺序(令 j = t − k j = t-k j=t−k):
Δ w = α ∑ j = 0 T ∇ v ^ ( S j ) ∑ t = j T ( γ λ ) t − j δ t = α ∑ j = 0 T [ G j λ − v ^ ( S j ) ] ∇ v ^ ( S j ) \Delta \mathbf{w} = \alpha \sum_{j=0}^{T} \nabla \hat{v}(S_j) \sum_{t=j}^{T} (\gamma\lambda)^{t-j} \delta_t = \alpha \sum_{j=0}^{T} \big[ G_j^\lambda - \hat{v}(S_j) \big] \nabla \hat{v}(S_j) Δw=αj=0∑T∇v^(Sj)t=j∑T(γλ)t−jδt=αj=0∑T[Gjλ−v^(Sj)]∇v^(Sj)

这正是前向视图的更新公式,证明两者在时间平均意义上完全等价。

5. 离线 vs 在线更新

离线更新(episodic)

权重在 episode 内保持不变 ,仅资格迹和 TD 误差计算使用固定权重:
w t ≡ w 0 ∀ t ∈ [ 0 , T ] \mathbf{w}_t \equiv \mathbf{w}_0 \quad \forall t \in [0,T] wt≡w0∀t∈[0,T]

收敛保证:严格收敛至 λ-误差最小化器。

在线更新(online)

权重每步实时更新,资格迹使用最新权重
z t = γ λ z t − 1 + ∇ v ^ ( S t , w t ) \mathbf{z}t = \gamma \lambda \mathbf{z}{t-1} + \nabla \hat{v}(S_t, \mathbf{w}_t) zt=γλzt−1+∇v^(St,wt)

实际表现:收敛速度更快,但理论分析更复杂。实践中几乎总是使用在线更新。

5 资格迹的三种实现方式

累积迹(Accumulating Trace)

适用于稀疏特征场景(如二进制特征),每次访问都累加:
e t ( i ) = { λ e t − 1 ( i ) + 1 若特征 i 在当前状态被激活 λ e t − 1 ( i ) 否则 e_t(i) = \begin{cases} \lambda e_{t-1}(i) + 1 & \text{若特征}i\text{在当前状态被激活} \\ \lambda e_{t-1}(i) & \text{否则} \end{cases} et(i)={λet−1(i)+1λet−1(i)若特征i在当前状态被激活否则

性质:同一特征在单步内可被多次激活,迹值可超过1。

替换迹(Replacing Trace)

适用于线性函数逼近,避免迹值无界增长:
e t ( i ) = { 1 若特征 i 在当前状态被激活 λ e t − 1 ( i ) 否则 e_t(i) = \begin{cases} 1 & \text{若特征}i\text{在当前状态被激活} \\ \lambda e_{t-1}(i) & \text{否则} \end{cases} et(i)={1λet−1(i)若特征i在当前状态被激活否则

性质:每次访问将迹重置为1,而非累积。

荷兰迹(Dutch Trace)

前两种的凸组合,在实践中更稳定:
e t ( i ) = ( 1 − α γ λ ) λ e t − 1 ( i ) + ∇ i v ^ ( S t ) e_t(i) = (1-\alpha\gamma\lambda)\lambda e_{t-1}(i) + \nabla_i \hat{v}(S_t) et(i)=(1−αγλ)λet−1(i)+∇iv^(St)

6. 资格迹版本的 Sarsa(λ) 与 Q(λ)

Sarsa(λ)(on-policy)

动作价值函数 q ^ ( S t , A t ) \hat{q}(S_t, A_t) q^(St,At) 的 TD 误差:
δ t = R t + 1 + γ q ^ ( S t + 1 , A t + 1 ) − q ^ ( S t , A t ) \delta_t = R_{t+1} + \gamma \hat{q}(S_{t+1}, A_{t+1}) - \hat{q}(S_t, A_t) δt=Rt+1+γq^(St+1,At+1)−q^(St,At)

状态-动作资格迹
z t = γ λ z t − 1 + ∇ q ^ ( S t , A t ) \mathbf{z}t = \gamma \lambda \mathbf{z}{t-1} + \nabla \hat{q}(S_t, A_t) zt=γλzt−1+∇q^(St,At)

Watkins' Q(λ)(off-policy)

资格迹仅在执行贪心动作 时累积,否则重置:
z t = { γ λ z t − 1 + ∇ q ^ ( S t , A t ) if A t = arg ⁡ max ⁡ a q ^ ( S t , a ) 0 otherwise \mathbf{z}t = \begin{cases} \gamma \lambda \mathbf{z}{t-1} + \nabla \hat{q}(S_t, A_t) & \text{if } A_t = \arg\max_a \hat{q}(S_t,a) \\ \mathbf{0} & \text{otherwise} \end{cases} zt={γλzt−1+∇q^(St,At)0if At=argmaxaq^(St,a)otherwise

7. 关键公式总结表

算法 TD 误差 δ t \delta_t δt 资格迹 z t \mathbf{z}_t zt 权重更新
TD(λ) R t + 1 + γ v ^ ( S t + 1 ) − v ^ ( S t ) R_{t+1} + \gamma \hat{v}(S_{t+1}) - \hat{v}(S_t) Rt+1+γv^(St+1)−v^(St) γ λ z t − 1 + ∇ v ^ ( S t ) \gamma \lambda \mathbf{z}_{t-1} + \nabla \hat{v}(S_t) γλzt−1+∇v^(St) w t + 1 = w t + α δ t z t \mathbf{w}_{t+1} = \mathbf{w}_t + \alpha \delta_t \mathbf{z}_t wt+1=wt+αδtzt
Sarsa(λ) R t + 1 + γ q ^ ( S t + 1 , A t + 1 ) − q ^ ( S t , A t ) R_{t+1} + \gamma \hat{q}(S_{t+1},A_{t+1}) - \hat{q}(S_t,A_t) Rt+1+γq^(St+1,At+1)−q^(St,At) γ λ z t − 1 + ∇ q ^ ( S t , A t ) \gamma \lambda \mathbf{z}_{t-1} + \nabla \hat{q}(S_t,A_t) γλzt−1+∇q^(St,At) 同上
Q(λ) 同上 贪心动作累积/重置 同上

收敛条件 : α \alpha α 需满足 Robbins-Monro 条件( ∑ α = ∞ \sum \alpha = \infty ∑α=∞, ∑ α 2 < ∞ \sum \alpha^2 < \infty ∑α2<∞),且特征向量线性无关。

相关推荐
NAGNIP3 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab4 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab4 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP8 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年8 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼8 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS8 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区9 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈9 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang10 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx