在强化学习中,同策略 (on-policy) 和异策略 (off-policy) 方法的区别在于它们如何使用数据来更新智能体的策略。同策略方法 专门从智能体当前策略产生的经验中学习。 这意味着用于探索环境的动作和用于改进策略的动作受相同策略的约束。 异策略方法,相比之下,可以从不同策略(例如,智能体的旧版本或完全不同的行为策略)产生的经验中学习。 这将探索(收集数据)与利用(改进策略)分离,从而在数据重用方面提供更大的灵活性。
同策略学习的一个关键例子是 SARSA 算法。 SARSA 基于当前策略的下一个动作更新智能体的 Q 值(动作质量的估计)。 例如,如果智能体使用 epsilon-greedy 策略(以概率 epsilon 随机探索),SARSA 会将策略在下一状态中将采取的实际动作纳入考虑。 这种紧密耦合确保更新与智能体当前的行为保持一致,但限制了数据重用。 像 Q-learning 这样的异策略方法采用不同的方法。 Q-learning 使用下一个状态的最大估计值更新 Q 值,而不管当前策略将采取什么动作。 这使得 Q-learning 可以从探索性或过时的策略生成的数据中学习,从而可以更有效地重用过去的经验(例如,存储在重放缓冲区中)。
这些方法之间的权衡非常重要。 像 近端策略优化 (PPO) 这样的同策略方法通常需要来自当前策略的新数据,这在计算上可能很昂贵。 但是,它们往往更稳定,因为更新直接与智能体的行为相关联。 像 深度 Q 网络 (DQN) 这样的异策略方法擅长通过重用历史数据来提高样本效率,但可能会面临诸如由于过时或不匹配的数据而导致的不稳定性等挑战。 例如,如果 DQN 智能体使用充满随机探索数据的重放缓冲区,则如果环境动态发生变化,它可能会高估 Q 值。 开发人员通常为需要精确控制的任务(例如,机器人技术)选择同策略方法,而为数据收集成本高的环境(例如,在模拟中训练智能体)选择异策略方法。