一句话总结
On-policy(同策略):边学边用,用当前策略生成的数据更新当前策略。
例子:演员自己演完一场戏后,根据观众反馈改进演技。Off-policy(异策略):学用分离,用其他策略(如旧策略、专家数据)生成的数据更新当前策略。
例子:演员通过看别人的表演录像来学习,不用自己亲自演。
On-policy 算法
特点
数据来源:必须用当前策略(正在训练的模型)与环境交互产生的数据。
数据时效性:更新一次策略后,旧数据立即失效,必须重新采样。
优缺点:
✅ 更稳定,数据与策略一致。
❌ 样本效率低(大量数据只能用于一次更新)。
典型算法
REINFORCE:蒙特卡洛策略梯度,纯靠当前策略的完整轨迹更新。
PPO(近端策略优化):通过裁剪机制限制更新幅度,但仍需当前策略的数据。
A2C(Advantage Actor-Critic):同步版本的Actor-Critic算法。
类比
厨师亲自尝菜调整配方:每改一次配方,就必须重新做一桌菜来试味道。
Off-policy 算法
特点
数据来源:可以用历史数据、其他策略的数据(如专家示范、旧策略)。
数据复用:同一批数据可多次用于训练,提高样本效率。
优缺点:
✅ 样本效率高,适合真实场景(如机器人训练)。
❌ 需要处理策略差异(如重要性采样),可能不稳定。
典型算法
Q-Learning / DQN:通过Q表或神经网络学习最优动作价值,不依赖当前策略。
DDPG / SAC:Actor-Critic框架下,用经验回放池(Replay Buffer)复用数据。
TD3:双延迟DDPG,进一步优化稳定性。
类比
厨师看别人的做菜视频学新技术:不用自己反复试错,直接借鉴他人经验。
关键区别对比
特征 | On-policy | Off-policy |
---|---|---|
数据来源 | 必须当前策略生成 | 可用任意策略生成的数据 |
数据复用 | 不能复用,每次更新后丢弃 | 可复用(如经验回放池) |
样本效率 | 低 | 高 |
稳定性 | 高(数据一致) | 低(需处理策略差异) |
典型算法 | PPO, A2C, REINFORCE | DQN, DDPG, SAC |
通俗例子
On-policy:
你学自行车:必须自己骑(当前策略),摔了才能调整姿势,不能靠看别人骑车来改进。
Off-policy:
你学做菜:看菜谱视频(他人策略数据),不用每看一次就自己做一遍。
如何选择?
选On-policy:需要高稳定性(如AI对话模型微调)。
选Off-policy:数据稀缺或交互成本高(如机器人控制)。
理解这两者的区别,就能明白为什么PPO适合ChatGPT训练(稳定优先),而DQN适合游戏AI(数据复用优先)。