时序差分(Temporal Difference Learning,TD Learning) 是强化学习(Reinforcement Learning, RL)里的一类估值更新方法:不等一整局跑完看最终结果,而是用"下一步的估值"来修正"当前这一步的估值",边走边改。
它是怎么工作的
开车去公司,导航说"还要 20 分钟",这是它对当前状态的估值 V(s)。开了 3 分钟(即时奖励 r)到下个路口,导航重新估"还要 18 分钟",这是下一状态的估值 V(s')。
从起点看,更靠谱的估计是 3 + 18 = 21 分钟。旧估计 20,新证据 21,差的这 1 分钟就是 TD 误差(TD error)。导航不会一次跳过去,而是按学习率 α 挪一点:
> 新估值 ← 旧估值 + α ×(即时奖励 + γ × 下一状态估值 − 旧估值)
γ 是折扣因子,管"未来的奖励打几折":越远越不确定,权重越低。
注意更新目标里含"下一状态自己的估计"。用估计去更新估计,这叫 自举(bootstrapping),是 TD 最核心的标志。
和相邻概念的区别
| 方法 | 要等一局结束? | 要环境模型? | 更新目标从哪来 |
|---|---|---|---|
| 时序差分 TD | 不用 | 不用 | 即时奖励 + 下一状态估值(自举) |
| 蒙特卡洛(Monte Carlo, MC) | 要 | 不用 | 整条轨迹的真实回报 |
| 动态规划(Dynamic Programming, DP) | 不用 | 要 | 对所有可能下一状态求期望 |
一句话:蒙特卡洛是走到底看真实结果,动态规划是规则全知道就穷举推演,TD 是边走边猜、边猜边改。TD 偏差大、方差小;蒙特卡洛无偏但方差大。TD(λ) 和 n 步回报,就是在这两端之间调档位。
为什么从业者要关心
- 它是价值型算法的更新引擎:Q-learning、SARSA、DQN 都靠 TD 误差来算学习目标。
- 演员-评论家(Actor-Critic)里,评论家(Critic)输出的正是 TD 误差,相当于对演员每一步的即时点评:"这步比预期好还是差"。
- 自举的好处是不用等终局、不必知道环境规则,可以在线学习;代价是目标自己在动,训练容易不稳。经验回放(experience replay)和定期固定的目标网络(target network)就是为了压住这种晃动。
- 调参上要盯学习率 α 和折扣 γ;用 max 选动作时估值容易偏高,Double Q-learning 这类方法就是冲这个问题去的。具体实现以各框架官方文档为准。
对普通职场人的启发
TD 给的是一种反馈节奏:不要等年终总结才知道今年做得怎么样,而是每完成一小步就取一个即时信号,立刻调整对"接下来该怎么走"的判断。小步、高频、可持续。但要记住:如果每一步的信号本身有系统性偏差,反复迭代会把它放大,所以快反馈也要定期拿真实结果校准一次。
