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(λ))
-
- Sarsa(λ)(on-policy)
- [Watkins' Q(λ)(off-policy)](#Watkins' Q(λ)(off-policy))
- [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<∞),且特征向量线性无关。