知识中等
On-policy 与 Off-policy 的核心区别是什么?两者对历史数据的复用方式有何不同,这会怎样影响样本效率?
On-policy 的梯度只能用当前策略产生的数据、更新后旧数据即失效;off-policy 用 replay buffer 复用任意行为策略的历史数据、靠重要性采样或 Bellman 目标校正,样本效率高但自举更不稳。
标准答案
区别在「评估哪个策略、数据由谁产生」。On-policy(PPO、GRPO):优势与梯度按当前策略计算,每次参数更新后旧 rollout 即过期,需大 batch 重采样;ratio + clip 只容忍少量陈旧(跨 mini-batch epoch)。Off-policy(SAC、DQN、TD3):replay buffer 存历史经验反复采样,行为策略可与目标策略不同——值方法靠 Bellman 目标天然 off-policy,策略梯度则需重要性采样校正。样本效率:off-policy 复用经验、每次真机交互被多次学习,适合采样昂贵的场景,代价是自举带来的过估计与不稳定;on-policy 数据一次性消耗、样本效率低,但梯度无偏易稳、天然适配大规模并行仿真 rollout。
深入理解
边界情形是常见追问:PPO 在同一 batch 上跑多个 epoch 还算不算 on-policy——ratio+clip 正是在处理这种「轻度 off-policy」;off-policy 策略梯度的序列级重要性权重连乘导致方差爆炸,所以 SAC 改走「最大 Q 的 pathwise 梯度」。能从「数据分布由谁控制」一句话讲透本质,再落到真机选 SAC 类、仿真选 PPO 类的工程结论即可。