Sarsa算法
Sarsa算法是一种基于策略的强化学习算法,用于解决马尔可夫决策过程(MDP)中的控制问题。它是一个在线、基于时间差分(TD)的算法,通过与环境交互学习策略。Sarsa 的名字来源于其更新公式中的五个元素:状态(State)、动作(Action)、奖励(Reward)、下一个状态(Next State)、和下一个动作(Next Action)。
Sarsa算法的核心思想
Sarsa是一个单步时间差分控制算法,它在每个时间步更新动作值函数(Q值),从而改进策略。其主要特点是它是一种基于动作的策略,即在更新 Q 值时考虑了当前的策略选择。
Sarsa算法的工作流程
-
初始化:
- 初始化 Q 值表 ( Q(s, a) ) 为一个小的随机值或零。
- 选择初始状态 ( s_0 )。
-
选择动作:
- 根据当前状态 ( s ) 和 Q 值表选择动作 ( a ),通常使用 ε-贪婪策略。
-
执行动作:
- 执行动作 ( a ),观察奖励 ( r ) 和下一个状态 ( s’ )。
-
选择下一个动作:
- 在状态 ( s’ ) 中,根据 Q 值表选择下一个动作 ( a’ )。
-
更新Q值:
- 使用以下更新公式更新 Q 值:
Q ( s , a ) ← Q ( s , a ) + α [ r + γ Q ( s ′ , a ′ ) − Q ( s , a ) ] 其中, α 是学习率, γ 是折扣因子。 Q(s, a) \leftarrow Q(s, a) + \alpha [r + \gamma Q(s', a') - Q(s, a)] \\ 其中,\alpha 是学习率,\gamma 是折扣因子。 Q(s,a)←Q(s,a)+α[r+γQ(s′,a′)−Q(s,a)]其中,α是学习率,γ是折扣因子。
- 使用以下更新公式更新 Q 值:
-
状态和动作更新:
- 更新状态 s ← s ′ 和动作 a ← a ′ ,重复步骤 3 至 5 ,直到达到终止状态。 更新状态 s \leftarrow s' 和动作 a \leftarrow a' ,重复步骤 3 至 5,直到达到终止状态。 更新状态s←s′和动作a←a′,重复步骤3至5,直到达到终止状态。
Sarsa算法的特点
-
基于策略:
- Sarsa 算法是一个基于当前策略的算法,它更新 Q 值时考虑了当前策略选择的动作。
-
在线学习:
- Sarsa 是一种在线学习算法,即它在与环境交互时实时更新策略。
-
策略敏感性:
- Sarsa 在更新 Q 值时使用当前策略,因此它对策略的选择较为敏感。
Sarsa与Q-learning的区别
-
更新机制:
- Sarsa 是基于当前策略进行更新,而 Q-learning 是基于最优策略进行更新。
- Q-learning 更新 Q 值时使用最大化的未来价值,而 Sarsa 使用当前策略的未来价值。
-
策略性质:
- Sarsa 是一个保守的算法,因为它遵循当前策略进行学习。
- Q-learning 是一个偏乐观的算法,因为它总是假设能采取最优动作。
Sarsa算法的应用
Sarsa算法常用于需要在线学习的强化学习任务,如机器人控制、游戏 AI、推荐系统等。它的保守性质使其在不确定环境中较为稳定。
总结
Sarsa算法是一种基于策略的时间差分算法,通过实时更新 Q 值来学习策略。它对策略的选择敏感,适用于在线学习任务。与 Q-learning 的主要区别在于更新机制和策略选择。
笔记