强化学习算法:Q-learning与Sarsa(区别与联系)


Q − l e a r n i n g Q-learning Qlearning S a r s a Sarsa Sarsa都是基于 Q t a b l e Q table Qtable的算法, Q − l e a r n i n g Q-learning Qlearning属于离线学习策略, S a r s a Sarsa Sarsa属于在线学习策略。

Q-learning

Q − l e a r n i n g Q-learning Qlearning算法伪代码:在这里插入图片描述

Sarsa

S a r s a Sarsa Sarsa算法伪代码:
在这里插入图片描述

二者主要区别

Q − l e a r n i n g Q-learning Qlearning S a r s a Sarsa Sarsa的唯一区别在于 Q t a b l e Q table Qtable的更新方式。

Q − l e a r n i n g Q-learning Qlearning更新 Q Q Q值的方式:
在这里插入图片描述
S a r s Sars Sarsa更新 Q Q Q值的方式:
在这里插入图片描述

区别详解

① 对于 Q − l e a r n i n g Q-learning Qlearning来说:在状态 S t S_t St下,根据某策略(如 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略)执行动作 A t A_t At到达状态 S t + 1 S_{t+1} St+1之后,利用在状态 S t + 1 S_{t+1} St+1下采取所有动作中最大的那个 Q ( S t + 1 , a ) Q(S_{t+1},a) Q(St+1,a),来更新 Q ( S t , a ) Q(S_t,a) Q(St,a),但是其并不真正采取 ( S t + 1 , a ) (S_{t+1},a) (St+1,a)。对于在状态 S t + 1 S_{t+1} St+1出选择要执行的动作可以理解为 S t = S t + 1 S_t=S_{t+1} St=St+1,即在状态 S t + 1 S_{t+1} St+1下选择要执行的动作依然要使用相同的某策略(如 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略)。

② 对于 S a r s a Sarsa Sarsa来说:在状态 S t S_t St下,根据某策略(如 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略)执行动作 A t A_t At到达状态 S t + 1 S_{t+1} St+1之后,此时用来更新 ( S t , a ) (S_t,a) (St,a) Q Q Q值的方法依然采用某策略(如 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略),并且真正采取 ( S t + 1 , a ) (S_{t+1},a) (St+1,a)

③ 我们要把选取动作和更新 Q Q Q表值区分开来,对于两个算法来说,选择动作都是采用某策略(如 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略),区别就在于 Q − l e a r n i n g Q-learning Qlearning更新 Q Q Q值的方式为贪婪策略,即直接选择最大的 Q ( S t + 1 , a ) Q(S_{t+1},a) Q(St+1,a),而 S a r s a Sarsa Sarsa更新 Q Q Q值的方式依然为某策略(如 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略)。

Q − l e a r n i n g Q-learning Qlearning选取动作和更新 Q Q Q表值的方法不同,而 S a r s a Sarsa Sarsa选取动作和更新 Q Q Q表值的方法相同。

Q − l e a r n i n g Q-learning Qlearning每次选取动作和更新 Q t a b l e Q table Qtable后就会生成一个 < s , a , r , s ′ > <s,a,r,s'> <sars>序列,成为一个sample。同理, S a r s a Sarsa Sarsa每次选取动作和更新 Q t a b l e Q table Qtable后会生成另一个 < s , a , r , s ′ > <s,a,r,s'> <sars>序列,成为另一个sample。

Q-learning与Sarsa图解

Q − l e a r n i n g Q-learning Qlearning
在这里插入图片描述
S a r s a Sarsa Sarsa
在这里插入图片描述

cliff-walking代码实例

Sutton的《强化学习》例题6.6的代码。

运用Q-learning和Sarsa两种算法进行训练,并进行对比。

GitHub链接:
https://github.com/chenyiqun/TD/tree/master

  • 18
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Q-learningSARSA都属于时序差分强化学习方法,而不是蒙特卡洛强化学习方法。 时序差分强化学习是一种结合了动态规划和蒙特卡洛方法的强化学习方法。它通过使用经验数据进行增量式的更新,同时利用了当前和未来的估计值来逼近最优值函数。 具体来说,Q-learningSARSA都是基于Q值函数的时序差分强化学习算法。 1. Q-learning:Q-learning是一种基于动态规划的无模型强化学习算法。它使用了时序差分(TD)方法,通过不断迭代更新Q值函数的估计值,使其逼近最优的Q值。Q-learning算法通过将当前状态和动作的估计值与下一个状态和动作的最大估计值相结合,来更新Q值函数的估计值。 2. SARSASARSA是一种基于时序差分的强化学习算法,也是一种模型-free的强化学习算法SARSA算法使用了时序差分的方法,通过不断迭代更新Q值函数的估计值。与Q-learning不同的是,SARSA算法采用了一个策略(Policy)来决定下一个动作,并在更新Q值时使用下一个动作的估计值。 时序差分强化学习方法与蒙特卡洛强化学习方法相比,具有更高的效率和更好的适应性。它可以在每个时间步骤中进行更新,不需要等到任务结束后才进行更新,从而更快地收敛到最优策略。而蒙特卡洛强化学习方法则需要等到任务结束后才能获取完整的回报信息,进行全局更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值