Monte Carlo、TD 与控制¶
在模型未知时,Bellman 期望无法直接枚举,但环境会给出样本转移 \((s_t,a_t,r_t,s_{t+1})\)。Monte Carlo 用完整采样回报学习,temporal-difference learning 用一步 reward 加当前 value 进行 bootstrap;控制算法再把“评估一个策略”变成“边评估边改进策略”。
先分 prediction 与 control¶
- Prediction / policy evaluation:策略 \(\pi\) 固定,估计 \(V^\pi\) 或 \(Q^\pi\)。
- Control:同时寻找更好的策略,目标是 \(V^*\) 或 \(Q^*\)。
这一区分比算法名称更重要。TD(0) 可以做 prediction;SARSA 和 Q-learning 则用 TD target 做 control。价值函数与 Bellman 递推给出它们共同逼近的固定点,MDP、POMDP 与回报定义样本所属的决策过程。
Monte Carlo:等到回报落地¶
若真正终止的 episode 含 transition \(0,\ldots,T-1\),时刻 \(t\) 的采样回报是
增量更新可写为
若 \(\alpha=1/N(s_t)\),就是 sample mean。first-visit MC 每个 episode 只更新某状态第一次出现的位置;every-visit MC 更新所有出现位置。两者在适当条件下都收敛到 \(V^\pi\),有限数据下方差和权重不同。
MC target 不依赖当前 value,因而没有 bootstrap bias;代价是必须等待未来 reward,长 horizon 下方差高,也无法自然处理永不终止的 continuing task。
外部截断尤其需要小心。若轨迹只是因为时间或 token 预算停止,截断点之后的 return 并不等于零:
加入边界 \(V\) 后,它已经是 bootstrapped n-step target,而不是纯粹的 complete-episode MC。
TD(0):一步以后交给当前估计¶
TD error 为
更新为
其中 \(d_t=\mathbf 1[\text{terminated at }t]\),而不是
terminated or truncated。TD 可以在每一步在线更新,并把新信息逐步向前传播;它的 target 方差通常低于 MC,却依赖当前估计,因此会引入 bootstrap bias。
Sutton 在 1988 年系统化了 TD prediction,并展示它如何在 complete return 与动态规划之间搭桥。后来的 n-step return、TD(\(\lambda\)) 与 GAE 都沿用这个“采样多少步、其余部分 bootstrap”的连续谱,见多步回报、资格迹与 GAE。
MC 与 TD 不是简单优劣关系¶
| 维度 | Monte Carlo | TD(0) |
|---|---|---|
| target | 完整采样回报 | 一步 reward + bootstrap |
| episode 未结束能否更新 | 通常不能 | 能 |
| 对 transition model 的要求 | 不需要 | 不需要 |
| target 方差 | 通常较高 | 通常较低 |
| bootstrap bias | 无 | 有 |
| continuing task | 不自然 | 自然 |
| 对初始 value 的依赖 | target 不依赖 | target 依赖 |
MC 的“无偏”也有条件:episode 必须来自目标策略,return 必须完整,且没有基于结果的选择性过滤。TD 的低方差也不保证稳定;结合函数逼近和 off-policy 数据时,需要考虑致命三元组。
从 prediction 到 control¶
control 需要一边估计 action value,一边让 behavior policy 保持探索并逐步变得 greedy。常见的 \(\epsilon\)-greedy policy 为
有多个 greedy action 时,应把 \(1-\epsilon\) 均分给这些并列动作。
SARSA:更新当前 behavior policy¶
SARSA 使用实际选择的下一动作:
若 \(a_{t+1}\) 来自当前 \(\epsilon\)-greedy behavior,target 就在评估这条含探索的策略,因此 SARSA 是 on-policy control。
Expected SARSA:对下一动作取期望¶
它把 SARSA 下一动作的采样噪声积分掉,但需要知道目标策略的动作概率。
Q-learning:直接逼近 optimality target¶
behavior 可以是 \(\epsilon\)-greedy,target 却是 greedy policy,因此 Q-learning 是 off-policy control。Watkins 与 Dayan 给出的表格收敛结果要求有限 MDP、充分访问状态动作、合适学习率等条件;它不能直接推出 neural Q-learning 稳定。
三个算法的差别集中在同一个位置:SARSA 采样 behavior 的下一动作,Expected SARSA 对 target policy 取期望,Q-learning 则使用 greedy target。
紧凑的 target 与更新¶
下面的实现只保留最关键的 target 语义。truncated=True 会结束当前采样片段,但不抹掉下一状态价值。
import numpy as np
def control_target(Q, r, s_next, terminated, truncated, gamma, method,
target_probs=None, a_next=None):
assert not (terminated and truncated)
if terminated:
return float(r)
elif method == "sarsa":
if a_next is None:
raise ValueError("SARSA needs the sampled next action")
bootstrap = Q[s_next, a_next]
elif method == "expected_sarsa":
if target_probs is None or not np.isclose(target_probs.sum(), 1.0):
raise ValueError("Expected SARSA needs normalized target probabilities")
bootstrap = target_probs @ Q[s_next]
elif method == "q_learning":
bootstrap = Q[s_next].max()
else:
raise ValueError(method)
return r + gamma * bootstrap
Q = np.array([[0.0, 0.0], [4.0, 2.0]])
p = np.array([0.9, 0.1])
q_cut = control_target(Q, 1.0, 1, False, True, 0.9, "q_learning")
q_end = control_target(Q, 1.0, 1, True, False, 0.9, "q_learning")
exp = control_target(Q, 1.0, 1, False, False, 0.9, "expected_sarsa", target_probs=p)
assert np.isclose(q_cut, 4.6) and np.isclose(q_end, 1.0) and np.isclose(exp, 4.42)
MC return 与 Q update 边界测试
import numpy as np
def discounted_returns(rewards, gamma, bootstrap=0.0):
out = np.empty(len(rewards), dtype=float)
carry = float(bootstrap)
for index in range(len(rewards) - 1, -1, -1):
carry = rewards[index] + gamma * carry
out[index] = carry
return out
def update_q(Q, state, action, target, alpha):
Q[state, action] += alpha * (target - Q[state, action])
returns = discounted_returns([1.0, 2.0], gamma=0.5, bootstrap=4.0)
assert np.allclose(returns, [3.0, 4.0])
Q = np.zeros((2, 2))
update_q(Q, state=0, action=0, target=4.6, alpha=0.5)
assert np.isclose(Q[0, 0], 2.3)
terminal = discounted_returns([1.0], gamma=0.9, bootstrap=0.0)
truncated = discounted_returns([1.0], gamma=0.9, bootstrap=5.0)
assert np.isclose(terminal[0], 1.0) and np.isclose(truncated[0], 5.5)
discounted_returns 的 bootstrap 只有在真终态才应设为零;截断时可传入边界 value。control_target 同时展示了 SARSA、Expected SARSA 与 Q-learning 的唯一核心分叉。完整训练循环还需要环境 reset、探索 schedule 和 visitation 条件,但这些不改变这里的估计量。
MC、TD(0)、\(n\)-step return 与表格控制的组合实验见手撕:强化学习 · n-step Return。
On-policy、off-policy 与探索¶
需要分开三个角色:
- behavior policy \(\mu\):实际产生转移;
- target policy \(\pi\):想要评估或改进的策略;
- learned table/function:当前的 \(V\) 或 \(Q\) 估计。
SARSA 常令 \(\mu=\pi\)。Q-learning 允许 \(\mu\) 探索而 target greedy,但这不意味着任意历史数据都安全:behavior 必须覆盖目标动作,函数逼近会引入分布与投影问题,旧数据还可能来自不同环境版本。
表格控制的经典充分探索条件常写成 GLIE:所有状态动作被无限访问,同时策略在极限上变得 greedy。实际深度 RL 很少严格满足它,只能通过 replay coverage、entropy、随机化和独立评测观察是否发生探索坍缩。Off-policy 校正继续处理目标与行为分布不同带来的 ratio 和方差。
映射到语言模型¶
对固定 prompt 的整段 response,终局 reward 可以直接形成 Monte Carlo policy-gradient 信号;若训练 value head,则可用同一 response return 做回归。对 token-level MDP,中间 reward 常为零:
这会让 TD 信息一次只向前传播一步,n-step return 或 GAE 更常见。value head 在 prefix 上预测当前 policy 的未来 response reward,不能把 reward model 的输出直接当作每个 prefix 的真实 \(V^\pi\)。
Q-learning 通常不是开放式语言生成的默认选择。虽然单个 token 动作有限,但:
- horizon 很长,reward 极稀疏;
- vocabulary 上的逐 token greedy 不等于全序列最优;
- policy 本身能直接给采样动作的 log-probability;
- 多轮工具环境常部分可观察且状态分布随策略显著变化。
因此语言后训练多沿 policy-gradient 或 actor–critic 路线展开。response reward 的 token、turn 与 episode 归因见语言模型中的信用分配,动作尺度与 mask 见语言模型作为策略。
常见误区¶
- “MC 不 bootstrap,所以总是更准确。”单条 complete return 方差可能极高;是否更好取决于 horizon、reward 噪声与 value bias。
- “TD target 是环境标签。”它含当前 value estimate;学习目标会随参数变化。
- “SARSA 比 Q-learning 更保守,所以一定更差。”SARSA 优化的是含探索的实际行为,在危险路径或探索代价存在时可能学到不同且更合适的策略。
- “Q-learning 使用 off-policy target,所以任何离线数据都能训练。”仍需要支持集覆盖;函数逼近还可能在分布外动作上产生任意高估。
- “Expected SARSA 就是 Q-learning。”只有 target policy 退化为 deterministic greedy 时,两者 target 才相同。
- “所有 episode 边界都把 bootstrap 清零。”外部截断通常保留 continuation value,真正终止才清零。
- “token 是离散动作,因此 DQN 自然适合语言模型。”可枚举一步动作不解决长序列组合优化、稀疏反馈和部分可观察性。
Reference¶
- Sutton, Learning to Predict by the Methods of Temporal Differences
- Watkins and Dayan, Q-learning
- Sutton and Barto, Reinforcement Learning: An Introduction, Second Edition
- van Seijen et al., A Theoretical and Empirical Analysis of Expected Sarsa
- Gymnasium, Handling Time Limits