On-Policy vs Off-Policy RL
经典 RL 里另一组常被混淆的概念:更新目标策略时,经验是否必须来自「当前正在评估/改进的那条策略」?本节厘清 on-policy / off-policy 的定义、代表算法(SARSA、Q-learning)与重要性采样,并映射到 LLM 后训练;与上一节 4.4.3 离线 vs 在线 正交——后者问的是 训练期是否继续与环境交互,本节问的是 行为策略 与目标策略 是否一致。
1. 策略(Policy)与探索–利用
策略 是从状态 (或 prompt )到动作 (或 token / 回复 )的决策规则。智能体目标是在长期折扣回报下学到更优的 。
探索(Exploration):尝试未知动作以收集信息;利用(Exploitation):按当前认知选最优动作以拿即时奖励。-greedy、熵 bonus、温度采样等都是在二者间折中——无论 on-policy 还是 off-policy,都需要这一平衡,但两种范式对「用哪条策略产生的数据来更新」约束不同。
2. On-Policy:向当前策略学习
On-policy(同策略) 方法评估并改进的,就是 智能体当下正在执行的那条策略(含探索噪声)。数据分布与 行为策略 = 目标策略 对齐;策略一变,旧轨迹的统计意义就变弱,样本利用率通常较低,但 信用分配 更直白。
直观类比(GeeksforGeeks):自己学骑车——摔过的每一次都算在你 当前这套骑法 上,而不是看别人骑完再假装那是你的动作。
2.1 SARSA(典型 on-policy TD)
SARSA(State–Action–Reward–State–Action)用 实际执行的下一步动作 做 bootstrap:
其中 由 当前行为策略(如 -greedy 于当前 )采样,因此更新的是 「含探索」的 policy 的 value,与正在跑的 agent 一致。
| 符号 | 含义 |
|---|---|
| 在策略 下、从 出发的期望回报 | |
| 学习率 | |
| 折扣因子 | |
| 真实会执行的 下一动作,非 假想动作 |
2.2 其他 on-policy 代表
| 方法 | 说明 |
|---|---|
| 蒙特卡洛 on-policy | 整条 episode 回报,只沿当前策略轨迹 |
| A2C / A3C | 同步/异步 actor–critic, critic 估 ,actor 按当前 采样 |
| PPO | 裁剪 surrogate,要求 新策略贴近 rollout 时的旧策略(信任域),本质 on-policy |
| TRPO | 显式 KL 约束的 on-policy 策略梯度 |
3. Off-Policy:向目标策略学习,数据可来自别处
Off-policy(异策略) 方法用 行为策略 采集的数据,去估计或改进 目标策略 (常取最优或部署策略)。可以「看别人骑」:日志来自旧版模型、人类示范或更激进的探索策略,而优化对象仍是当前的 。
3.1 Q-Learning(典型 off-policy TD)
Q-learning 在更新时用 下一状态上的最大 Q(隐含 greedy 目标策略),与 实际采样的 可以不一致:
行为上仍可用 -greedy 探索,但 bootstrap 的是 最优动作价值,故为 off-policy。
3.2 重要性采样(Importance Sampling)
当必须用 的数据训练 时,需对分布 mismatch 做校正。轨迹层面的重要性权重:
实践中常 截断 / 归一化 以控方差(PPO 的 ratio clipping、离线 RL 的 conservative Q 等都可看作相关思想)。没有校正时,off-policy 估计会 有偏或方差爆炸。
3.3 其他 off-policy 代表
| 方法 | 说明 |
|---|---|
| DQN + Replay | 行为用 -greedy,目标网络估 |
| DDPG / TD3 / SAC | 确定性/随机 actor 与 replay,目标策略与行为策略分离 |
| 离线 RL(CQL、IQL 等) | 仅用固定日志, 常为历史策略 |
| 行为克隆(BC) | 人类轨迹 → 学 ,典型 off-policy |
4. On-Policy vs Off-Policy:对比
| 维度 | On-Policy | Off-Policy |
|---|---|---|
| 数据与目标策略 | 一致(含探索版) | 可不一致; |
| 样本效率 | 通常较低,旧数据易「过期」 | 可复用 replay、历史日志 |
| 实现与方差 | 相对直接;PPO 用 clip/KL 稳 ratio | 需 IS 或保守目标;离线场景要防 OOD |
| 典型算法 | SARSA、PPO、A2C | Q-learning、DQN、DPO(见下) |
| 探索–利用 | 探索 计入 被评估策略 | 可用更猛的 探索,目标仍 greedy / |
| 安全 / 部署 | 训练分布≈部署分布(若探索适中) | 易利用 更好示范;也易 分布偏移 |
SARSA vs Q-Learning:更新差异一览
| SARSA(on-policy) | Q-Learning(off-policy) | |
|---|---|---|
| Bootstrap | , 按当前策略采 | |
| 估计对象 | 当前 含探索 策略的价值 | 最优 动作价值 |
| 数据复用 | 差(策略一变轨迹失效) | 好(replay 常见) |