On-policy 与 Off-policy:数据属于谁的策略

02-无模型价值方法 核心 约 20 分钟 #on-policy#off-policy#重要性采样#数据复用 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照 Sutton & Barto 教材复核。

一句话定义

on-policy 算法评估/改进"产生数据的那条策略"本身(SARSA、REINFORCE、PPO),off-policy 算法用"别的策略"(行为策略)产生的数据学习"另一条策略"(目标策略,如 Q-Learning 学贪心)——这决定数据能否复用、旧样本是否过期、以及是否需要重要性采样校正。

为什么重要

这组概念解释了现代算法的几乎所有结构性设计:DQN 为什么能用经验回放(off-policy),PPO 为什么要 clip 比率(on-policy 数据每轮作废),离线 RL 为什么全是 off-policy 的极致形态(kp-023)。选型、调参与读论文都被这个分野贯穿。

前置知识

kp-008(SARSA 与 Q-Learning 的行为学差异)。

核心概念

  • 行为策略(behavior policy):实际与环境交互、产生数据的策略。
  • 目标策略(target policy):正在被评估/改进、将来要部署的策略。
  • on-policy:行为=目标(SARSA、A2C、PPO);数据新鲜、样本利用率低(更新后旧数据失效)。
  • off-policy:行为≠目标(Q-Learning、DDPG、SAC);可复用旧数据/回放池/他人演示,但需要修正分布差异。
  • 重要性采样(importance sampling, IS):off-policy 估计的校正器——目标策略下期望 = 行为策略下期望 × 似然比 $\rho = \frac{\pi(a|s)}{\mu(a|s)}$。

原理与机制

为什么 off-policy 能复用数据:目标函数是期望,期望不挑数据来源——只要按行为策略的分布加权(IS)就能无偏估计目标策略下的量。Q-Learning 的 max 目标天然与行为分布解耦(它学的是贪心策略的价值,不需要 IS);而"估计任意目标策略的 v^π"就必须显式 IS。

IS 的代价:似然比方差随轨迹长度指数级增长(每步都乘一个比率,长轨迹方差爆炸)——这是"朴素 off-policy 策略梯度不实用"的原因,也解释了 ACER/IMPALA(V-trace 截断)等算法为什么都在"截断/剪裁 IS"上做文章。

on-policy 的代价:PPO 每次梯度更新后策略就变了,旧 rollout 的分布假设即刻失效——只能"采样一大批 → 更新几轮(在其仍近似有效时)→ 丢弃重来"。样本利用率低是 PPO 类算法的固有税,换来的是训练稳定性(数据分布始终近似当前策略,kp-017)。

经验回放 = off-policy 红利:DQN(kp-010)把历史样本存池子反复抽样——打破时间相关性 + 提高样本利用率;前提正是 Q-Learning 的 off-policy 性质(旧数据用旧策略采集也无妨)。on-policy 算法不能这么干。

图示

on-policy (SARSA/PPO):
  行为策略 π == 目标策略 π   数据"新鲜"但用完即弃
off-policy (Q-Learning/DQN/SAC):
  行为 μ (ε-greedy/回放池/旧数据) ≠ 目标 π (贪心/当前策略)
  校正: max 目标(Q-Learning 免 IS) 或 IS 比率 ρ=π/μ (有界截断)

实例或案例

  • DQN 回放池:百万帧历史反复训练——off-policy 红利的标准展示;换 SARSA 则池子里全是"过期策略"的数据,直接失效。
  • IMPALA/分布式 rollout:多个采集器用"落后几步"的策略采数据,V-trace 截断 IS 修正——大规模工程对 off-policy 修正的工业化解法。
  • 人类演示预训练:把演示数据当行为数据,用 off-policy RL 继续学——演示复用的理论基础。

常见误区

  • 误区一:"on-policy 数据不能用回放池"。不能直接用旧策略的数据做 on-policy 更新;但同一策略在一轮内产生的数据可以小步复用(PPO 的 mini-epoch,依赖 clip 抑制比率偏移)。
  • 误区二:"off-policy 一定更省样本"。省的是"重采样"成本,但分布偏移与 IS 方差可能反噬;off-policy 程度越深(离线 RL)问题越难(kp-023)。
  • 误区三:"SAC 是 on-policy"。SAC 用回放池、目标策略与行为策略不同(行为=带熵的随机策略,目标=soft 策略)——是 off-policy 的。

与其他知识点的关系

  • kp-008:SARSA/Q-Learning 是最小对照。
  • kp-010:经验回放是 off-policy 的最大工程红利。
  • kp-016/017:TRPO/PPO 的信任域与 clip 是"on-policy 数据有限复用"的边界工具。
  • kp-023:离线 RL = 行为策略固定且是历史数据的 off-policy 极限。

自测题

  1. 定义行为策略与目标策略,各举一个 on/off-policy 算法。

答:行为=产生数据的策略,目标=被评估改进的策略;SARSA/PPO on-policy(两者同一),Q-Learning/DQN off-policy(μ=ε-greedy,π=贪心)。

  1. 重要性采样比率是什么?长轨迹下有什么问题?

答:$\rho=\prod_t \pi(a_t|s_t)/\mu(a_t|s_t)$ 校正分布差异;每步相乘使方差随轨迹长度指数增长,实践中需截断(V-trace)或改用免 IS 目标。

  1. 为什么 PPO 不能像 DQN 一样用大回放池?

答:PPO 是 on-policy——数据分布假设是"当前策略采样",策略一更新旧数据即过期;DQN 目标是贪心 max,与数据来源无关,故可复用。

延伸阅读

  • Sutton & Barto 教材 §5.5、§6.4-6.5(off-policy 与重要性采样)。
  • Espeholt 等, "IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures"(ICML 2018,V-trace)。
  • Degris 等, "Off-Policy Actor-Critic"(2012)。