on-policy和offpolicy算法

发布于:2025-07-14 ⋅ 阅读:(17) ⋅ 点赞:(0)

一句话总结

  • On-policy(同策略):边学边用,用当前策略生成的数据更新当前策略
    例子:演员自己演完一场戏后,根据观众反馈改进演技。

  • Off-policy(异策略):学用分离,用其他策略(如旧策略、专家数据)生成的数据更新当前策略
    例子:演员通过看别人的表演录像来学习,不用自己亲自演。


On-policy 算法

特点
  1. 数据来源:必须用当前策略(正在训练的模型)与环境交互产生的数据。

  2. 数据时效性:更新一次策略后,旧数据立即失效,必须重新采样。

  3. 优缺点

    • ✅ 更稳定,数据与策略一致。

    • ❌ 样本效率低(大量数据只能用于一次更新)。

典型算法
  • REINFORCE:蒙特卡洛策略梯度,纯靠当前策略的完整轨迹更新。

  • PPO(近端策略优化):通过裁剪机制限制更新幅度,但仍需当前策略的数据。

  • A2C(Advantage Actor-Critic):同步版本的Actor-Critic算法。

类比
  • 厨师亲自尝菜调整配方:每改一次配方,就必须重新做一桌菜来试味道。


Off-policy 算法

特点
  1. 数据来源:可以用历史数据、其他策略的数据(如专家示范、旧策略)

  2. 数据复用:同一批数据可多次用于训练,提高样本效率。

  3. 优缺点

    • ✅ 样本效率高,适合真实场景(如机器人训练)。

    • ❌ 需要处理策略差异(如重要性采样),可能不稳定。

典型算法
  • Q-Learning / DQN:通过Q表或神经网络学习最优动作价值,不依赖当前策略。

  • DDPG / SAC:Actor-Critic框架下,用经验回放池(Replay Buffer)复用数据。

  • TD3:双延迟DDPG,进一步优化稳定性。

类比
  • 厨师看别人的做菜视频学新技术:不用自己反复试错,直接借鉴他人经验。


关键区别对比

特征 On-policy Off-policy
数据来源 必须当前策略生成 可用任意策略生成的数据
数据复用 不能复用,每次更新后丢弃 可复用(如经验回放池)
样本效率
稳定性 高(数据一致) 低(需处理策略差异)
典型算法 PPO, A2C, REINFORCE DQN, DDPG, SAC

通俗例子

  1. On-policy

    • 你学自行车:必须自己骑(当前策略),摔了才能调整姿势,不能靠看别人骑车来改进。

  2. Off-policy

    • 你学做菜:看菜谱视频(他人策略数据),不用每看一次就自己做一遍。


如何选择?

  • 选On-policy:需要高稳定性(如AI对话模型微调)。

  • 选Off-policy:数据稀缺或交互成本高(如机器人控制)。

理解这两者的区别,就能明白为什么PPO适合ChatGPT训练(稳定优先),而DQN适合游戏AI(数据复用优先)。


网站公告

今日签到

点亮在社区的每一天
去签到