Play Open
Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait Loading Please wait

2.6 时序差分方法(Temporal Difference, TD)

2.6 时序差分方法(Temporal Difference, TD)

时序差分(Temporal Difference, TD)是一类经典的 model-free 强化学习方法:在不知道环境动力学(即不知道状态转移概率 p(s′∣s,a)p(s'|s,a)p(s′∣s,a)、也无法写出完整 MDP 转移方程)的情况下,仅通过 Agent 与环境交互采样得到的轨迹数据 来学习价值函数与策略。现实世界中,环境的转移规律往往复杂且难以精确建模,因此 model-free 方法具有非常强的实用性。

TD 方法要解决的核心问题是:如何评估"当前状态(或当前状态-动作)有多好"。它的关键思想可以用一句话概括:

用对"下一步及未来"的价值估计,来更新"当前"的价值估计。

这使得 TD 同时继承了两类方法的优点:

像蒙特卡洛(MC)一样:不需要知道环境模型,可以直接从采样数据中学习;

像动态规划(DP)一样:使用贝尔曼思想,用后继状态的价值来更新当前状态的价值(bootstrap,自举)。

1. 从 MC 到 TD:为什么要引入"自举"?

1.1 蒙特卡洛(MC)的增量更新回顾

MC 评估 Vπ(s)V^\pi(s)Vπ(s) 的基本思路是:对每次访问状态 sss 后得到的 完整回报 GGG 做平均。常见的增量形式为:

V(s)←V(s)+1N(s)G−V(s) V(s) \leftarrow V(s) + \frac{1}{N(s)}\leftG - V(s)\\right V(s)←V(s)+N(s)1G−V(s)

其中:

V(s)V(s)V(s):当前对状态价值的估计;

N(s)N(s)N(s):状态 sss 被访问的次数;

GGG:从当前时刻开始直到终止的累计折扣回报。

MC 的关键限制在于:必须等到一整个 episode 结束,才能算出 GGG。这在许多情形下很不方便:

episode 很长甚至近似无终止;

希望在线实时更新(例如边交互边学习);

回报方差可能很大(因为 GGG 叠加了很多随机性)。

1.2 TD 的动机:用"一步估计"替代"完整回报"

根据状态价值函数的定义:

Vπ(s)=EπGt∣St=s V^{\pi}(s) = \mathbb{E}_{\pi}G_t\|S_t=s Vπ(s)=EπGt∣St=s

并且由贝尔曼期望方程可以写成:

Vπ(s)=EπRt+γVπ(St+1)∣St=s V^{\pi}(s) = \mathbb{E}_{\pi}R_t + \\gamma V\^{\\pi}(S_{t+1})\\mid S_t=s Vπ(s)=EπRt+γVπ(St+1)∣St=s

这条等式说明:从状态 sss 的期望回报 ,等价于 一步即时奖励 + 下一状态价值的折扣 的期望。

TD 的做法是:不再等待完整 GtG_tGt,而是在每一步交互后,用样本 rt,st+1r_t, s_{t+1}rt,st+1 直接构造一个目标:

目标(一步 TD 目标):

Targett=rt+γV(st+1) \text{Target}t = r_t + \gamma V(s{t+1}) Targett=rt+γV(st+1)

然后让 V(st)V(s_t)V(st) 朝这个目标靠近。这样做的本质是 用估计量 V(st+1)V(s_{t+1})V(st+1) 替代真实未来回报,因此:

相比 MC:方差更低(因为只用一步随机量);

代价是:引入偏差 (因为 V(st+1)V(s_{t+1})V(st+1) 不是精确真值,而是估计)。

2. TD(0):时序差分的增量更新与 TD 误差

TD(0) 的典型增量更新公式为:

V(st)←V(st)+αrt+γV(st+1)−V(st) V(s_t) \leftarrow V(s_t) + \alpha\leftr_t + \\gamma V(s_{t+1}) - V(s_t)\\right V(st)←V(st)+αrt+γV(st+1)−V(st)

其中:

α∈(0,1]\alpha \in (0,1]α∈(0,1]:学习率(步长),控制每次更新幅度;

γ∈[0,1)\gamma \in [0,1)γ∈[0,1):折扣因子;

方括号内的项称为 时序差分误差(TD error):

δt=rt+γV(st+1)−V(st) \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) δt=rt+γV(st+1)−V(st)

2.1 TD 误差的直观含义

δt\delta_tδt 描述了"当前估计"和"基于一步样本构造的目标"之间的差距:

如果 δt>0\delta_t > 0δt>0:说明当前 V(st)V(s_t)V(st) 估计偏小,应上调;

如果 δt<0\delta_t < 0δt<0:说明当前 V(st)V(s_t)V(st) 估计偏大,应下调;

如果 δt≈0\delta_t \approx 0δt≈0:说明估计与当前一步目标一致。

2.2 一个非常具体的例子:走迷宫的"一步更新"

设想一个简单迷宫任务,折扣因子 γ=0.9\gamma = 0.9γ=0.9,学习率 α=0.1\alpha = 0.1α=0.1。

在某一步:

当前状态 sts_tst 的价值估计 V(st)=2.0V(s_t)=2.0V(st)=2.0

执行动作后获得即时奖励 rt=−1r_t = -1rt=−1

到达下一状态 st+1s_{t+1}st+1,估计 V(st+1)=4.0V(s_{t+1}) = 4.0V(st+1)=4.0

则 TD 目标为:

rt+γV(st+1)=−1+0.9×4.0=2.6 r_t + \gamma V(s_{t+1}) = -1 + 0.9 \times 4.0 = 2.6 rt+γV(st+1)=−1+0.9×4.0=2.6

TD 误差:

δt=2.6−2.0=0.6 \delta_t = 2.6 - 2.0 = 0.6 δt=2.6−2.0=0.6

更新:

V(st)←2.0+0.1×0.6=2.06 V(s_t) \leftarrow 2.0 + 0.1 \times 0.6 = 2.06 V(st)←2.0+0.1×0.6=2.06

这一更新不需要等待 episode 结束,交互一步就能学一点,这就是 TD 的核心优势。

3. 从 V(s)V(s)V(s) 到 Q(s,a)Q(s,a)Q(s,a):动作价值与控制问题

仅评估 Vπ(s)V^\pi(s)Vπ(s) 还不够,因为最终目标通常是学到一个"更优的决策方式"(控制)。在控制里更常用的是 动作价值函数:

Qπ(s,a)=EπGt∣St=s,At=a Q^\pi(s,a) = \mathbb{E}_\piG_t \\mid S_t=s, A_t=a Qπ(s,a)=EπGt∣St=s,At=a

直观上:

Vπ(s)V^\pi(s)Vπ(s):处于状态 sss 的好坏;

Qπ(s,a)Q^\pi(s,a)Qπ(s,a):在状态 sss 下选择动作 aaa 的好坏(更细粒度)。

4. SARSA:on-policy 的 TD 控制算法

4.1 SARSA 的更新公式

SARSA 是经典的 on-policy TD 控制算法,它用 TD 的方式直接学习 Q(s,a)Q(s,a)Q(s,a),更新形式为:

Q(st,at)←Q(st,at)+αrt+γQ(st+1,at+1)−Q(st,at) Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha\leftr_t + \\gamma Q(s_{t+1},a_{t+1}) - Q(s_t,a_t)\\right Q(st,at)←Q(st,at)+αrt+γQ(st+1,at+1)−Q(st,at)

这里的 TD 误差同样可以写为:

δt=rt+γQ(st+1,at+1)−Q(st,at) \delta_t = r_t + \gamma Q(s_{t+1},a_{t+1}) - Q(s_t,a_t) δt=rt+γQ(st+1,at+1)−Q(st,at)

注意关键点:目标里用的是 Q(st+1,at+1)Q(s_{t+1}, a_{t+1})Q(st+1,at+1) ,而 at+1a_{t+1}at+1 是按照"当前正在使用的策略"选出来的动作,这就是 on-policy 的含义。

4.2 为什么叫 SARSA?

因为更新用到了五元组:

(st,at,rt,st+1,at+1) (s_t, a_t, r_t, s_{t+1}, a_{t+1}) (st,at,rt,st+1,at+1)

这五个量的首字母拼起来就是 SARSA。

5. ϵ\epsilonϵ-greedy:在探索与利用之间折中

在学习 QQQ 的过程中,如果每一步都选择当前估计最大的动作(纯贪婪),会带来严重问题:很多动作永远不被尝试,导致学习停留在局部最优甚至错误估计。

因此常用 ϵ\epsilonϵ-greedy 策略:

以概率 1−ϵ1-\epsilon1−ϵ 选择当前 QQQ 最大的动作(利用);

以概率 ϵ\epsilonϵ 在动作空间中随机采样(探索)。

写成概率形式:

π(a∣s)={1−ϵ+ϵ/∣A∣,如果 a=arg⁡max⁡a′Q(s,a′)ϵ/∣A∣,否则 \pi(a|s)= \begin{cases} 1-\epsilon+\epsilon/|\mathcal{A}|, & \text{如果 } a=\arg\max_{a'}Q(s,a') \\ \epsilon/|\mathcal{A}|, & \text{否则} \end{cases} π(a∣s)={1−ϵ+ϵ/∣A∣,ϵ/∣A∣,如果 a=argmaxa′Q(s,a′)否则

其中 ∣A∣|\mathcal{A}|∣A∣ 是动作数量。

5.1 一个例子:为什么必须探索?

设想在某状态 sss 有两个动作:

a1a_1a1:当前估计 Q(s,a1)=5Q(s,a_1)=5Q(s,a1)=5

a2a_2a2:当前估计 Q(s,a2)=4Q(s,a_2)=4Q(s,a2)=4

如果一直选 a1a_1a1,你将永远不知道 a2a_2a2 可能实际上能带来更高回报(比如真实最优是 a2a_2a2,但由于从未尝试过,估计一直偏低)。ϵ\epsilonϵ-greedy 允许以小概率试一试 a2a_2a2,从而纠正估计并发现更优策略。

6. SARSA 的流程(概念层面)

SARSA 的典型交互过程可以概括为:

初始化 Q(s,a)Q(s,a)Q(s,a);

每个 episode 开始,观察初始状态 sss,用 ϵ\epsilonϵ-greedy 从 QQQ 中选动作 aaa;

执行动作得到 rrr 与下一状态 s′s's′;

在 s′s's′ 用同样的 ϵ\epsilonϵ-greedy 选出下一动作 a′a'a′;

用 (s,a,r,s′,a′)(s,a,r,s',a')(s,a,r,s′,a′) 更新 Q(s,a)Q(s,a)Q(s,a);

令 s←s′,a←a′s\leftarrow s', a\leftarrow a's←s′,a←a′ 继续。

SARSA 的本质:更新目标与行为策略一致,因此学习到的策略会把"探索带来的风险"也考虑进去(这在一些有风险代价的环境里会更保守、更安全)。

7. SARSA-λ\lambdaλ:用多步回报折中偏差与方差

7.1 MC vs TD:偏差-方差的经典权衡

MC:无偏(unbiased),但方差大(因为回报由许多随机奖励累积)。

TD(0):方差小,但有偏(因为用估计 V(st+1)V(s_{t+1})V(st+1) 或 Q(st+1,at+1)Q(s_{t+1},a_{t+1})Q(st+1,at+1) 自举)。

自然的折中思路是:不要只看一步,也不要等到终点,而是看 nnn 步。

7.2 nnn 步 SARSA 的更新(多步 TD)

nnn 步的目标可以写为"前 nnn 步真实奖励 + 第 nnn 步后的 bootstrap 项":

Gt(n)=rt+γrt+1+⋯+γn−1rt+n−1+γnQ(st+n,at+n) G_t^{(n)} = r_t + \gamma r_{t+1} + \cdots + \gamma^{n-1}r_{t+n-1} + \gamma^n Q(s_{t+n}, a_{t+n}) Gt(n)=rt+γrt+1+⋯+γn−1rt+n−1+γnQ(st+n,at+n)

对应的更新为:

Q(st,at)←Q(st,at)+αGt(n)−Q(st,at) Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha\leftG_t\^{(n)} - Q(s_t,a_t)\\right Q(st,at)←Q(st,at)+αGt(n)−Q(st,at)

这里:

当 n=1n=1n=1:退化为普通 SARSA(一步 TD);

当 nnn 很大、接近 episode 结束:接近 MC(用更长回报,偏差更小但方差更大)。

7.3 SARSA-λ\lambdaλ 的思想

SARSA-λ\lambdaλ 进一步把不同步长的 nnn 步回报 加权融合 ,用一个参数 λ∈0,1\lambda \in 0,1λ∈0,1 控制"更偏向短期自举"还是"更偏向长期回报":

λ\lambdaλ 小:更像 TD(0)(更短视,低方差,高偏差);

λ\lambdaλ 大:更像 MC(更长视,低偏差,高方差)。

在概念层面,SARSA-λ\lambdaλ 让学习既能利用 TD 的快速更新优势,也能从更长的真实奖励链条中纠正偏差。

(很多教材会进一步引入 eligibility trace 来实现高效更新,但这里只强调其核心动机与目标形式。)

8. Q-learning:off-policy 的 TD 控制算法

SARSA 是 on-policy:目标使用 at+1a_{t+1}at+1(由当前策略实际选出的动作)。

Q-learning 则是 off-policy:目标使用"下一状态下的最优动作价值",即不管你实际下一步怎么选,更新都朝最优方向逼近。

8.1 最优贝尔曼方程与 Q∗Q^*Q∗

最优动作价值函数 Q∗(s,a)Q^*(s,a)Q∗(s,a) 满足最优贝尔曼方程:

Q∗(s,a)=r(s,a)+γ∑s′∈Sp(s′∣s,a)max⁡a′∈AQ∗(s′,a′) Q^*(s,a)= r(s,a) + \gamma \sum_{s'\in\mathcal{S}} p(s'|s,a)\max_{a'\in\mathcal{A}} Q^*(s',a') Q∗(s,a)=r(s,a)+γs′∈S∑p(s′∣s,a)a′∈AmaxQ∗(s′,a′)

该式表达了"最优原则":

在当前 (s,a)(s,a)(s,a) 的长期最优回报,等于即时奖励加上下一状态能取得的最大长期回报(折扣后)。

8.2 Q-learning 的更新公式

Q-learning 用样本 (rt,st+1)(r_t, s_{t+1})(rt,st+1) 构造 TD 目标:

rt+γmax⁡a′Q(st+1,a′) r_t + \gamma \max_{a'} Q(s_{t+1},a') rt+γa′maxQ(st+1,a′)

并更新:

Q(st,at)←Q(st,at)+αrt+γmax⁡a′Q(st+1,a′)−Q(st,at) Q(s_t,a_t) \leftarrow Q(s_t,a_t) + \alpha\leftr_t + \\gamma \\max_{a'}Q(s_{t+1},a') - Q(s_t,a_t)\\right Q(st,at)←Q(st,at)+αrt+γa′maxQ(st+1,a′)−Q(st,at)

对应的 TD 误差:

δt=rt+γmax⁡a′Q(st+1,a′)−Q(st,at) \delta_t = r_t + \gamma \max_{a'}Q(s_{t+1},a') - Q(s_t,a_t) δt=rt+γa′maxQ(st+1,a′)−Q(st,at)

8.3 一个直观例子:SARSA vs Q-learning 的差别

设想下一状态 st+1s_{t+1}st+1 有两个动作:

Q(st+1,a1)=10Q(s_{t+1}, a_1)=10Q(st+1,a1)=10

Q(st+1,a2)=0Q(s_{t+1}, a_2)=0Q(st+1,a2)=0

并且当前策略是 ϵ\epsilonϵ-greedy,有一定概率会选到差的动作 a2a_2a2。

SARSA 的目标使用实际选到的 at+1a_{t+1}at+1,如果这次因为探索选了 a2a_2a2,则目标会变成 rt+γQ(st+1,a2)r_t + \gamma Q(s_{t+1},a_2)rt+γQ(st+1,a2),可能较小;

Q-learning 的目标永远使用 max⁡a′Q(st+1,a′)\max_{a'}Q(s_{t+1},a')maxa′Q(st+1,a′),即 rt+γ×10r_t + \gamma \times 10rt+γ×10,始终朝"最优动作"对齐。

因此:

SARSA 更"现实":会把探索导致的潜在损失纳入学习,策略可能更保守;

Q-learning 更"理想":学习目标直接逼近最优策略,即使行为策略仍在探索。

9. Q-learning 的流程(概念层面)

Q-learning 的典型交互过程可以概括为:

初始化 Q(s,a)Q(s,a)Q(s,a);

每个 episode 开始,观察状态 sss;

用 ϵ\epsilonϵ-greedy 从 QQQ 中选择动作 aaa(行为仍需探索);

执行动作得到 rrr 和下一状态 s′s's′;

用 r+γmax⁡a′Q(s′,a′)r+\gamma\max_{a'}Q(s',a')r+γmaxa′Q(s′,a′) 更新 Q(s,a)Q(s,a)Q(s,a);

令 s←s′s\leftarrow s's←s′ 继续。

核心要点:行为使用 ϵ\epsilonϵ-greedy,但更新目标是"下一状态最优",因此属于 off-policy。

10. 总结:TD 家族的核心脉络

TD 的关键创新:用自举思想把"等待终点的完整回报"替换成"一步(或多步)目标",实现在线、低方差更新。

SARSA:on-policy,用实际下一步动作 at+1a_{t+1}at+1 做 bootstrap,学习到的策略更贴近当前探索行为。

SARSA-λ\lambdaλ:用多步回报融合,调节偏差-方差,兼顾稳定与准确。

Q-learning:off-policy,用 max⁡a′Q(s′,a′)\max_{a'}Q(s',a')maxa′Q(s′,a′) 逼近最优 Q∗Q^*Q∗,更新更激进地朝最优策略收敛。

在实践中,TD 方法的价值在于:它把"学习"拆成了每一步可执行的小更新,使得强化学习可以在长序列、在线交互、未知环境模型等现实条件下有效运作。

Copyright © 2088 足球小将世界杯_1999年美国女足世界杯 - omaili.com All Rights Reserved.
友情链接