On-Policy和Off-Policy

绫波波 发布于 20 天前 82 次阅读


概述

在强化学习(Reinforcement Learning,RL)中,On-Policy(同策略)和Off-Policy(异策略)代表了两种不同的训练数据使用策略。其中,On-Policy在算法学习中使用的“数据来源”和“当前执行动作的策略”一致,用当前策略产生的数据训练自身;Off-Policy则利用历史数据(甚至其他策略生成的数据)进行训练,在灵活性和数据利用率差异显著。

策略对比

维度 On-Policy Off-Policy
数据与策略的关系 训练使用的数据必须由当前待优化的策略(π)产生 训练用的数据可以来自历史策略(如探索策策略μ)或者其他策略,无需和当前优化策略(π)保持一致
核心目标 直接优化正在执行动作的策略,保证数据和策略的即时匹配 从任意可用数据中学习最优策略,不依赖当前策略的实时数据生成
典型特征 数据即用即生成,无法复用历史数据 可复用历史数据、离线数据,数据利用率高

典型案例

On-Policy:
假设机器人用 ε-贪心策略(ε-greedy) 探索(90%概率选当前认为最优的步幅,10%随机试错):

  • 它每走一步(执行动作),都会记录“当前状态(如地面坡度)→ 动作(步幅10cm)→ 奖励(是否摔倒/走稳)”的数据;
  • 训练时,只能用这组“刚走出来的数据”更新策略(比如调整步幅到12cm);
  • 下次走路时,用更新后的新策略重新生成数据,再继续训练——旧策略生成的“步幅8cm”的数据无法复用,因为当前策略已变。
    典型算法:Sarsa(时序差分学习的同策略版本)

Off-Policy:参考别人的走路记录,来优化走法
机器人依然用ε-贪心策略(μ)探索(负责“试错、收集数据”),但训练时:

  • 它会记录“探索策略μ的所有数据”(比如步幅8cm、10cm、15cm的尝试结果);
  • 训练时,不直接优化探索策略μ,而是从这些数据中提取“对最优策略π有用的信息”(比如发现“步幅12cm时摔倒最少”,即使探索策略很少选12cm);
  • 甚至可以复用“去年其他机器人学走路的历史数据”,无需自己重新试错——数据来源完全独立于当前优化的策略π。

典型算法:Q-Learning(时序差分学习的异策略版本)、DQN

Talk is cheap, show me the code.
最后更新于 2026-04-12