

RL学习笔记(6): 时序差分学习
时序差分学习(Temporal Difference Learning)
views
| comments
时序差分 (TD) 学习概述#
动机: 结合动态规划 (DP) 与蒙特卡洛 (MC) 的优点
- DP: 利用 自举 (Bootstrapping),即基于其他状态的 估计值 来更新当前状态的估计值 (例如,)。但它需要知道环境的 完整模型。
- MC: 无模型,直接从 完整经验片段 的最终 实际回报 中学习 (例如,)。它不使用自举,必须等待片段结束。
- TD 学习: 旨在融合两者的长处
- 无模型 (Model-Free): 像 MC 一样,直接从经验中学习,无需环境模型 。
- 自举 (Bootstrapping): 像 DP 一样,更新当前状态 的价值时,会使用 后续状态 的当前价值估计 ,而 不需要等到片段结束。
核心思想: TD 学习在智能体与环境交互的每一步之后,利用观测到的 即时奖励 和 下一状态 的当前价值估计 来构建一个 目标值 (TD Target)。然后,用这个目标值来更新当前状态 的价值估计 。
TD(0) 更新规则 (最简单的 TD 算法):
- TD 目标 (TD Target): 。这是对未来总回报 的一个估计,它仅使用了一步的真实奖励 和一步之后状态的价值估计 。
- TD 误差 (TD Error) : 。它衡量了当前价值估计 与基于下一步信息的“更好”的估计 (TD 目标) 之间的差异,可以看作是对当前价值的一个调整信号。
TD 学习的特点: 自举与采样 (Bootstrapping and Sampling)
- 采样 (Sampling): 更新是基于智能体实际经历的转移 (),而不是像 DP 那样考虑有可能的后续状态和奖励。
- 自举 (Bootstrapping): 更新的目标值中包含了 当前的价值估计 ,而不是像 MC 那样依赖最终观测到的完整回报 。
学习内容: 接下来我们将介绍 TD 如何用于策略评估 (TD 预测) 和策略改进 (TD 控制)。
TD 预测 (TD Prediction)#
目标: 在给定策略 的情况下,估计其状态价值函数 。
TD(0) 算法 (用于估计 ):
输入: 需要评估的策略 π
算法参数: 步长 α ∈ (0, 1]
初始化:
对于所有状态 s ∈ S⁺ (S⁺ 是包含终止状态的状态集):
V(s) ← 任意值 (例如 V(s)=0)
V(终止状态) ← 0
循环 对每个 episode:
初始化 S (该 episode 的第一个状态)
循环 对 episode 中的每一步:
A ← 根据策略 π 在状态 S 选择的动作
执行动作 A, 观察得到奖励 R 和下一状态 S'
// TD 更新
V(S) ← V(S) + α * [R + γ * V(S') - V(S)]
S ← S' // 转移到下一状态
直到 S 是终止状态plaintext主要特点: TD(0) 算法在 每一步 交互后都进行价值更新,无需等待一个 episode 结束。这使得 TD 学习非常适合 在线 (Online) 学习场景。
TD 与 MC 的比较: 性质与权衡#
TD 和 MC 作为无模型学习方法,各有优势:
- 更新时机与数据需求:
- TD可 在线学习,每步更新;MC 需等待 episode 结束才能更新 (离散更新)。
- TD 能从 不完整 的 episode 中学习;MC 必须基于完整的 episode。
- TD 天然适用于 连续性任务 (无终止状态);MC 主要用于 分幕式任务。
- 偏差与方差 (Bias vs Variance): 这是两者最核心的区别之一。
- MC 目标 (): 是 的 无偏 (Unbiased) 估计。因为 是从 时刻开始实际获得的总回报,其期望就是 。但 的 方差较高,因为它受到从 到片段结束所有的随机因素 (动作选择、状态转移、奖励) 的影响。
- TD(0) 目标 (): 是 的 有偏 (Biased) 估计。因为目标中使用的 本身就是当前的估计值,可能并不准确。然而,这个目标的 方差较低,因为它只依赖下一个时间步的随机性 ()。
- 总结:
- MC: 高方差,零偏差。对初始值不敏感。
- TD: 低方差,有偏差。通常比 MC 学习效率更高 (收敛更快),但对初始值比较敏感。
- 对马尔可夫性质的利用:
- TD 隐式地利用了马尔可夫性质,它假设状态 的价值 足够概括未来信息。在满足马尔可夫性的环境中,这种假设有助于提高概率。
- MC 不做此假设,它直接使用实际发生的完整回报序列。这使得 MC 在 非马尔可夫环境 下可能比 TD(0) 更稳健。
- 批量学习 (Batch Learning) 下的行为差异:
- 当使用一个固定的、有限的经验数据集进行学习时:
- 批量 MC 收敛到的价值函数,能最小化训练数据中
- 当使用一个固定的、有限的经验数据集进行学习时: