强化学习入门:手算Sarsa算法图解与实战解析
SARSA 是一种基于值的在线无模型强化学习算法,完全依赖动作价值函数引导决策,无法直接优化策略,因此在高维连续动作空间中表现受限。它通过 Q 表存储状态-动作价值,并依据当前回合真实执行的动作进行时序差分更新;探索与利用的平衡由 ε-贪心策略控制,同时借助折扣因子与学习率调整参数,每一步交互即完成迭代。整体上,SARSA 的训练风格偏向保守,稳定性较高,但探索能力较弱,且随着状态与动作空间规模增长,同样会面临 Q 表维度爆炸的问题。
基础Sarsa结构
Sarsa算法的决策
SARSA 的决策流程基于动作价值函数与 ε-贪心策略协同运作。假设当前处于状态 s1,存在候选动作 a1、a2,首先查询 Q 表获取对应 Q 值,然后通过 ε-贪心策略选定待执行动作。执行后状态跃迁至 s2,再以相同 ε-贪心策略在 s2 下选出实际执行的动作。全程循环采样真实动作、执行交互,逐步完成训练收敛。
Sarsa算法的更新
Q-learning:选最大 Q 值(贪心最优),激进大胆
SARSA:选实际执行动作(ε 贪心随机),保守稳定
SARSA 基于时序差分实现 Q 值的迭代更新。智能体在状态 s1 根据贪心策略选出动作 a1,执行后获得奖励 r 并进入状态 s1,再以相同策略选出下一动作 a2,结合两轮状态与动作的 Q 值计算更新 Q(s1, a2),如此循环直至训练终止。
手动计算过程
通过一个手动计算示例加深理解:首先在状态 s1 下查询 Q 表,依据动作价值函数得到各动作的 Q 值,例如 Q(s1,a1)=−2,Q(s1,a2)=1。随后智能体采用 ε-贪心策略进行动作选择——以大概率 1−ε 选取当前 Q 值较高的动作,以小概率 ε 随机探索。本例中,智能体最终选择了动作 a2。执行后,环境反馈即时奖励 rt=3,同时系统从状态 s1 转移到新状态 s2。
进入新状态后,SARSA 并不直接选取最大 Q 值对应的动作,而是继续以 ε-贪心策略选出下一步真实执行的动作。假设在状态 s2 中,虽然 Q(s2,a2)=2 大于 Q(s2,a1)=0.5,但由于探索机制,本轮实际选中动作 a1。此时 SARSA 使用真实执行动作对应的价值更新 Q 值,依据更新公式
代入本例具体数值:
因此 Q(s1,a2) 从 1 提升至 1.245。此后智能体在新状态中重复“选择动作—执行动作—获得奖励—更新 Q 值”的迭代,直至任务结束。整个过程中,SARSA 始终依据下一状态中真实执行的动作进行学习,而非直接取最大 Q 值,故策略更新更趋保守稳定,安全性与鲁棒性表现优异。





