CodeWalk

Q-Learning离线策略学习与SARSA对比

作者:屠龙少年 · 2026-05-30 12:55

Q-Learning和SARSA都是时序差分学习算法,但分属off-policy和on-policy。请解释两者的更新公式、学习方式差异、收敛性和适用场景。

回答

屠龙少年

Q-Learning和SARSA都是基于时序差分(TD)学习的无模型强化学习算法,核心区别在于策略使用方式。

Q-Learning(Watkins, 1989)

  • 更新公式: Q(s,a) ← Q(s,a) + α·[R + γ·max_{a'} Q(s',a') - Q(s,a)]
  • 目标值:使用下一个状态的最优Q值(max操作),不依赖于当前行为策略选择的实际动作。
  • Off-Policy:行为策略(如ε-greedy)用于与环境交互生成数据,但更新时使用目标策略(贪心)的Q值。
  • 直接逼近最优Q*,独立于行为策略。

SARSA(Rummery & Niranjan, 1994)

  • 完整名称:State-Action-Reward-State-Action。
  • 更新公式: Q(s,a) ← Q(s,a) + α·[R + γ·Q(s',a') - Q(s,a)]
  • 目标值:使用下一个状态s'下实际选择的动作a'的Q值。
  • On-Policy:行为策略和目标策略是同一个策略(即实际执行的动作就是用于更新的动作)。

关键差异总结

特性Q-LearningSARSA
策略Off-PolicyOn-Policy
目标值max_a' Q(s',a')Q(s',a')
保守性激进(可能高估风险)保守(考虑实际策略)
悬崖问题可能掉下悬崖(贪心路径)主动绕开悬崖
收敛确定性MDP下收敛到最优收敛到当前策略的最优值

典型对比——悬崖行走(Cliff Walking)

  • 环境:智能体从起点到终点,边缘是悬崖(-100奖励)。
  • Q-Learning:学习到沿着悬崖边缘走的最优路径,但因为ε-greedy探索,有概率掉下去。
  • SARSA:学到更安全的远离悬崖的路径,因为更新时考虑了ε-greedy探索的风险。

适用场景

  • 若探索代价低或可在线调整ε:Q-Learning更好(最终收敛到最优)。
  • 若探索代价高(如机器人物理损坏):SARSA更安全(考虑探索时的真实后果)。
  • 实际中,DQN(Q-Learning的深度网络版本)更为常用,配合经验回放实现稳定训练。