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

欢迎点击参观我的 ——> 个人学习网站 & 技术杂谈

Q-learning

算法描述:
强化学习中的Q-learning算法和Sarsa算法的区别_第1张图片

Sarsa

算法描述:
强化学习中的Q-learning算法和Sarsa算法的区别_第2张图片

假设我们的 Q(s, a) 是一个 Q table ,如下图所示,该表格表示共有三个 state (状态): s 1 s_{1} s1 s 2 s_{2} s2 s 3 s_{3} s3 ,每个状态都有三个可选 action (动作) : a 1 a_{1} a1 a 2 a_{2} a2 a 3 a_{3} a3 ,对所有的状态-动作以 0 赋值:

Q(s, a) a 1 a_{1} a1 a 2 a_{2} a2 a 3 a_{3} a3
s 1 s_{1} s1 0 0 0
s 2 s_{2} s2 0 0 0
s 3 s_{3} s3 0 0 0

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

  • Q-learning 算法更新 Q(s, a)
    这里写图片描述
  • Sarsa 算法更新 Q(s, a)
    这里写图片描述
    可以看出更新 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算法的区别_第3张图片
  • Sarsa 选取 a’
    强化学习中的Q-learning算法和Sarsa算法的区别_第4张图片

你可能感兴趣的:(强化学习,强化学习)