跳转到内容

时序差分:TD(0)、SARSA 与 Q-learning

TD 用 r+γV(s′)r + \gamma V(s') 作为目标,结合了 DP 的自举与 MC 的采样。SARSA 是 on-policy 控制,Q-learning 是 off-policy 控制。本章比较两者的行为差异(悬崖行走),并介绍 TD(λ) 与资格迹。

时序差分(TD)学习对 MC 的两个痛点(必须等回合结束、方差大)做了一处改动:不等真实回报,用当前估计构造目标。每走一步就更新:

V(st)←V(st)+α( rt+1+γV(st+1)⏟TD target−V(st) ).V(s_t) \leftarrow V(s_t) + \alpha \big(\, \underbrace{r_{t+1} + \gamma V(s_{t+1})}_{\mathrm{TD\ target}} - V(s_t) \,\big).

括号里的差叫 TD 误差。目标 rt+1+γV(st+1)r_{t+1} + \gamma V(s_{t+1}) 中的 V(st+1)V(s_{t+1}) 是估计值而非真实值——这叫自举(bootstrapping)。TD 因此结合了两大传统:像 MC 一样用采样(不需模型),像 DP 一样自举(用估计更新估计)。

偏差换方差:目标依赖 V(st+1)V(s_{t+1}) 的准确度,所以 TD 有偏;但目标只包含一步随机性,方差远小于累积整条轨迹的 MC 回报。TD 可以在线更新(每步都学),且对无终止的持续任务天然适用。三个方法同框对比:

需要模型自举需要回合结束偏差方差
动态规划是是否无无(确定性)
蒙特卡洛否否是无高
TD(0)否是否有低

控制版本的区别在于目标里用的是哪个动作:

SARSA(on-policy):目标用实际执行的下一动作 at+1a_{t+1},名字来自更新所需的五元组 (s,a,r,s′,a′)(s, a, r, s', a'):

Q(st,at)←Q(st,at)+α[ rt+1+γ Q(st+1,at+1)−Q(st,at) ].Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha\big[\, r_{t+1} + \gamma\, Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t) \,\big].

它评估的是"当前探索性策略"的价值——包括 ϵ\epsilon-greedy 的随机性本身。

Q-learning(off-policy):目标对下一动作取最大,与实际执行什么无关:

Q(st,at)←Q(st,at)+α[ rt+1+γmax⁡a′Q(st+1,a′)−Q(st,at) ].Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha\big[\, r_{t+1} + \gamma \max_{a'} Q(s_{t+1}, a') - Q(s_t, a_t) \,\big].

它直接逼近 Q∗Q^*,行为策略可以是任何保证探索的策略。表格情形下两者都在温和条件下收敛。

悬崖行走:一个策略的两种性格

Section titled “悬崖行走:一个策略的两种性格”

Cliff Walking 是两者差异的标准实验:网格世界里有一条奖励为 −100-100 的悬崖,起点到终点之间。两种策略用同样的 ϵ\epsilon-greedy 行为、同样的 ϵ\epsilon:

  • Q-learning 学到贴着悬崖边的最优路径——它学的是最优策略的价值,而探索时踩悬崖的代价不计入目标;
  • SARSA 学到绕远但安全的路径——它把探索本身的期望代价(ϵ\epsilon 概率踩悬崖)也计入了价值。

两者都没有错,只是评估的对象不同:Q-learning 评估最优策略,SARSA 评估"当前这个会探索的策略"。哪个更好取决于部署时是否还保持探索。这个直觉在深度时代仍然成立,也是"训练时探索、执行时贪心"这一默认安排能自洽的原因。

TD(0) 与 MC 是一个谱系的两端:前者只看一步,后者看整条回合。TD(λ) 用资格迹(eligibility traces)在两者之间插值。前向视角:目标是所有 nn 步回报的几何加权平均;后向视角:每个状态维护一个随时间指数衰减的资格迹 e(s)e(s),TD 误差到达时按资格迹加权更新:

et(s)=γλ et−1(s)+1[st=s],V(s)←V(s)+α δt et(s),e_t(s) = \gamma \lambda\, e_{t-1}(s) + \mathbb{1}[s_t = s], \qquad V(s) \leftarrow V(s) + \alpha\, \delta_t\, e_t(s),

其中 δt=rt+1+γV(st+1)−V(st)\delta_t = r_{t+1} + \gamma V(s_{t+1}) - V(s_t) 是 TD 误差。λ=0\lambda = 0 退化为 TD(0),λ=1\lambda = 1 近似 MC(且每步在线更新)。资格迹在深度时代以 GAE 的形式成为标配(→ Actor-Critic 与 GAE),在分布式采样中以 V-trace 的形式修正 off-policy 数据(→ 向量化环境与分布式采样)。

把 Q(s,a)Q(s, a) 从表格换成神经网络,就得到 DQN——但这一步引入了致命三要素(函数逼近 + 自举 + off-policy),Q-learning 从"必然收敛"变成"经常发散"(→ 第三卷)。表格 TD 在此的价值是提供干净的参照系:DQN 的每一处设计(回放、目标网络)都是在弥补逼近引入的问题。

  • TD 有偏但低方差,可在线更新
  • Q-learning 学最优策略但执行时可能更危险
  • λ 在 MC(λ=1)与 TD(0) 之间插值