Sarsa强化学习算法的探索和学习
Sarsa名字来源于更新过程所涉及的五个元素:State:当前状态Action:当前动作Reward:获得的奖励State:下一状态Action:下一动作它是一个on-policy的TD控制算法,评估和改进的正是当前正在执行探索的策略。因为要生成更新所需的元组,智能体必须在状态时根据策略选择动作,然后在状态时再根据同一策略选择动作。换句话说,更新所用的目标值依赖于策略本身,且该策略同时控制着行为。
强化学习核心是智能体agent通过与环境交互,学习如何选择动作以最大化累积奖励。
值函数value function是评估状态或状态-动作对优劣的工具,其中动作值函数Q(s,a)表示在状态 s下采取动作a后,遵循某策略所能获得的期望累积回报。
时间差分学习Temporal-Difference Learning,即TD,结合了蒙特卡洛方法和动态规划,通过当前奖励和下一状态的估计值来更新当前状态的估计值,不需要等待完整轨迹结束。
Sarsa 算法正是TD方法在动作值函数学习中的典型代表。
这里尝试基于网络资料,探索和学习Sarsa算法。
1 Sarsa概述
1.1 概念
Sarsa名字来源于更新过程所涉及的五个元素:
State:当前状态
Action:当前动作
Reward:获得的奖励
State:下一状态
Action:下一动作
它是一个on-policy的TD控制算法,评估和改进的正是当前正在执行探索的策略。
1.2 更新公式
Sarsa的更新公式如下:
其中:
-
是学习率(步长);
-
是折扣因子;
-
是在状态
下执行动作
后得到的即时奖励;
-
是执行动作后到达的下一个状态;
-
是在下一状态
下根据当前策略,例如
-greedy,选择的动作。
关键点在于,更新使用的目标值中的
正是实际将要执行的下一动作。
这使得 Sarsa 紧密依赖于当前策略,反映了on-policy策略学习的特性。
2 Sarsa原理
2.1 Sarsa原理
Sarsa的推导基于Bellman方程对于动作值函数的最优性条件。
在策略下,动作值函数满足Bellman 期望方程:
然而,在无模型环境中,我们无法直接计算期望,因此采用采样更新。
Sarsa 使用单步样本来近似期望,从而得到更新规则:
这实际上是增量式地最小化 TD 误差。
与 Q-learning 不同,Q-learning 的目标值中使用的是下一状态的最大 Q 值 ,这是一个off-policy的更新,因为它独立于实际遵循的策略。
Sarsa 的目标值依赖于实际采取的下一动作,因此更新的方向与当前策略一致。
2.2 为什么是On-Policy策略
因为要生成更新所需的元组,智能体必须在状态
时根据策略选择动作
,然后在状态
时再根据同一策略选择动作
。
换句话说,更新所用的目标值依赖于策略本身,且该策略同时控制着行为。
因此,Sarsa 学习的是当前策略的值函数,并在此基础上改进策略。
3 Sarsa 训练
3.1 Sarsa训练流程
Sarsa 的训练通常采用 -greedy策略进行探索与利用的平衡。
算法流程如下,以表格型 Q 函数为例:
1. 初始化:
对于所有状态
和动作
,任意初始化
,通常设为零或小随机数。设定参数
。
2. 对每个回合(episode)循环:
- 初始化状态,例如环境起始状态。
- 根据当前Q值使用-greedy贪心策略从状态
选择动作
,即以概率
随机选择,否则选择
。
- 对回合中的每一步循环:
- 执行动作,观察奖励
和下一状态
。
- 根据当前 Q 值使用-greedy贪心策略从状态
选择动作
(注意:这一步不立即执行,仅用于更新)。
- 进行 Sarsa 更新:
- 更新当前状态和动作:,
。
- 如果
是终止状态,则结束回合,否则继续。
3. 重复直到收敛或达到指定回合数。
在训练过程中需要注意以下点:
在更新后立即将作为下一步的实际动作,保证了策略的连续性。
当是终止状态时,定义
,因为终止后没有未来奖励。
通常随着训练衰减,以逐渐减少探索、增加利用。
3.2 . 收敛性与策略改进
Sarsa 在一定条件下保证收敛到最优动作值函数和最优策略。
这些条件包括:
- 所有状态-动作对被无限次访问;
- 策略的贪婪极限,即,满足贪婪策略;
- 学习率满足随机逼近条件,如
,
。
由于 Sarsa 是on-policy策略的,它通常比Q-learning更稳定,尤其是在存在函数近似的情况下。
因为它更新的目标值直接来自当前策略,避免了离策略方法中可能出现的自举偏差放大问题。
策略改进方面,Sarsa 在每个回合中基于当前 Q 值使用-greedy贪心生成行为,而Q值本身是通过对当前策略的评估得到的。这符合广义策略迭代的思想:策略评估和策略改进交替进行,最终收敛到最优。
3.3 简单实例-网格世界
考虑一个经典的网格世界示例:智能体在网格中移动,目标为右下角格子(奖励 +1),其余移动奖励 0,碰到边界不移动。
使用 Sarsa 学习最优路径。在初始阶段,由于探索,智能体可能走弯路,但 Sarsa 会逐步调整 Q 值,使得沿着目标路径的状态-动作对的值升高。由于 Sarsa 考虑实际下一步动作,它会学到一条安全路径,避免危险区域,如果存在负奖励惩罚。
相比之下,Q-learning 可能在学习过程中更冒险,因为它总是假设下一步采取最优动作。
4 Sarsa总结
Sarsa是基础而重要的算法,其on-policy策略特性使其在某些问题中比离策略方法更可靠。
它的更新公式直接源于 Bellman 期望方程的单步采样近似,体现了 TD 学习的核心思想。通过-贪心策略,Sarsa 能够平衡探索与利用,并在满足条件下收敛。
在实际应用中,Sarsa 可以扩展到函数近似,如线性近似、神经网络,形成深度 Sarsa(Deep Sarsa)等变体。
reference
---
强化学习-学习笔记7 | Sarsa算法原理与推导
https://www.cnblogs.com/Roboduster/p/16454245.html
On the Convergence of SARSA with Linear Function Approximation
https://arxiv.org/abs/2202.06828
State-Separated SARSA: A Practical Sequential Decision-Making Algorithm with Recovering Rewards
https://arxiv.org/abs/2403.11520
Convergence of SARSA with linear function approximation: the random horizon case
https://www.tandfonline.com/doi/full/10.1080/0952813X.2025.2541954?scroll=top&needAccess=true
AI学习笔记——Sarsa算法
更多推荐

所有评论(0)