SARSA是一种基于价值、在线无模型的强化学习算法,依赖Q表存储动作价值,采用ε-贪心策略平衡探索与利用,每步交互即时序差分更新。其训练风格保守稳定,但探索能力偏弱,且状态动作空间增大时存在Q表爆炸问题。
SARSA 是一种基于价值的在线无模型强化学习算法。它仅通过动作价值指导决策,无法直接优化动作策略,因此在连续动作空间较大时适用性有限。算法依赖 Q 表存储价值,根据当前回合中真实执行的动作进行时序差分更新,并采用 ε-贪心策略平衡探索与利用,依靠折扣因子和学习率调整参数,每步交互即可完成迭代。整体上,训练风格较为保守,稳定性较高,但探索能力偏弱,当状态和动作空间增大时,同样会遇到 Q 表爆炸的问题。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
基础 Sarsa 结构
SARSA 的决策过程基于动作价值函数配合 ε-贪心策略来完成。假设当前处于状态 s1,存在动作 a1 和 a2,先查表获取对应的 Q 值,然后用 ε-贪心策略选出当前要执行的动作。执行后状态切换至 s2,再用同样的 ε-贪心策略选出 s2 下的实际动作。全程循环采样真实动作、执行交互,逐步完成训练。

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 值,因此策略更新更加保守、稳定,安全性和鲁棒性都较好。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述