SARSA(State-Action-Reward-State-Action)是一种 On-policy 时序差分 (TD) 强化学习算法,用于在存在延迟奖励的环境中学习决策的最优策略。它根据智能体与环境交互的经验来更新动作值估计(Q 值)。与 Q-learning 等 Off-policy 方法不同,SARSA 学习的是其当前遵循的策略(包括像 ε-greedy 这样的探索策略)的值。其名称反映了更新中使用的事件序列:智能体观察到一个状态(S),采取一个动作(A),接收一个奖励(R),转移到一个新状态(S'),并在根据当前策略选择下一个动作(A')后更新 Q 值。
SARSA 的核心在于其更新规则: Q(S, A) = Q(S, A) + α [R + γQ(S', A') - Q(S, A)]
其中,α(学习率)控制新信息对旧估计的覆盖程度,γ(折扣因子)衡量未来奖励的权重。R + γQ(S', A')
项代表 TD 目标,结合了即时奖励和下一个状态-动作对的折扣值。例如,在网格世界导航任务中,如果智能体从状态 S 向右移动(动作 A),接收奖励 R=0,然后在状态 S' 中选择动作 A'=上,SARSA 会使用 Q(S', up) 来更新 Q(S, right)。这种方法确保智能体考虑其将要采取的实际下一个动作,这取决于其探索策略。
SARSA 在策略的探索行为影响安全性或性能的场景中特别有用。例如,一个避开障碍物的机器人可能会使用 ε-greedy 探索,其中偶然的随机动作可能导致碰撞。SARSA 学习的策略会将这些探索风险考虑在内,从而形成比 Q-learning 更保守的路径,后者可能会忽略探索的后果。然而,在某些情况下,SARSA 的收敛速度可能比 Off-policy 方法慢,因为它依赖于当前策略的动作。开发者通常在智能体必须在学习过程中考虑实时探索权衡时选择 SARSA,例如在真实世界的机器人或安全关键模拟中,如悬崖行走环境,其中走最短路径可能比稍微长一点、更安全的路径风险更高。