基于值函数的强化学习算法之SARSA详解
SARSA是一种基于值函数的强化学习算法,属于同策略(On-Policy)方法,其核心思想是通过当前策略生成的实际动作序列来更新Q值。前文我们已经了解过Q-Learning,而Q-Learning是异策略(off-policy),即使用一个策略来探索,另一个策略来更新。与Q-Learning不同,SARSA严格遵循“行动策略即学习策略”的原则,这意味着它在学习过程中遵循的策略与用于行动的策略是相同的。这一点是SARSA的核心区别。具体的我们从SARSA的名字来源State-Action-Reward-State-Action就可知,说明它是基于当前状态、动作、奖励、下一个状态和下一个动作来进行更新的。因此SARSA特别适用于需要平衡探索与利用的安全敏感场景(如机器人避障、无人机飞行)。
同时,SARSA也属于时间差分学习(Temporal Difference, TD)方法的一种。这个在后面的内容中继续学习。
有关Q-Learning可以看我的文章:基于值函数的强化学习算法之Q-Learning详解-CSDN博客
一、核心思想
同策略学习:SARSA使用当前策略(如ε-贪婪策略)生成的动作序列来更新Q值,即更新依赖于实际执行的动作(包括探索动作)。
更新公式:基于贝尔曼方程,用实际下一步动作的Q值计算目标值:
其中a′是实际在状态s′下选择的动作。
SARSA使用的是实际执行的下一个动作的Q值。因此,SARSA的更新更依赖于实际采取的策略,这在某些情况下可能更安全,但收敛可能较慢。
二、算法流程
SARSA的流程与Q-Learning类似,但关键区别在于动作选择和Q值更新:
1.初始化
创建Q值表Q(s,a),初始化为零或随机值。
设置超参数:学习率α、折扣因子γ、探索率ϵ。