强化学习中的Q-learning算法和Sarsa算法的区别

欢迎点击参观我的 ——> 个人学习网站

Q-learning

算法描述:
强化学习中的Q-learning算法和Sarsa算法的区别

Sarsa

算法描述:
强化学习中的Q-learning算法和Sarsa算法的区别

假设我们的 Q(s, a) 是一个 Q table ,如下图所示,该表格表示共有三个 state (状态): s1s2s3 ,每个状态都有三个可选 action (动作) :a1a2a3 ,对所有的状态-动作以 0 赋值:

Q(s, a) a1 a2 a3
s1 0 0 0
s2 0 0 0
s3 0 0 0

Q-learning 算法和 Sarsa 算法都是从状态 s 开始,根据当前的 Q table 使用一定的策略(ε - greedy)选择一个动作 a’ ,然后观测到下一个状态 s’ ,并再次根据 Q table 选择动作 a’

  • Q-learning 算法更新 Q(s, a)
    强化学习中的Q-learning算法和Sarsa算法的区别
  • Sarsa 算法更新 Q(s, a)
    强化学习中的Q-learning算法和Sarsa算法的区别
    可以看出更新 Q(s, a) 需要用到下一个状态的动作 a’ ,而两种算法的不同点正是选取 a’ 的方法不同。

不同点: 根据算法描述,在选择新状态 s‘ 的动作 a’ 时,Q-learning 使用贪心策略(greedy),即选取值最大的 a‘ ,此时只是计算出哪个 a‘ 可以使 Q(s, a) 取到最大值,并没有真正采用这个动作 a‘ ;而 Sarsa 则是仍使用 ε - greedy 策略,并真正采用了这个动作 a‘ 。如下图所示:

  • Q-learning 选取 a’
    强化学习中的Q-learning算法和Sarsa算法的区别
  • Sarsa 选取 a’
    强化学习中的Q-learning算法和Sarsa算法的区别