一文弄懂,Q-learning和Sarsa的区别

2023.3.6
本文主要参考莫烦老师内容

1. 理解Q_learning算法

主要看下面讲解,就不抄了:
https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/intro-q-learning

读懂几个内容:

1.1 三块内容轻微解释

  • Epsilon greedy是个概率值。也就是有一定创造性,有一定概率会跳出Q表的值,不去选最大值,随机一个动作。如果没有这个,始终按最大值动作走,那么有些动作可能永远取不到。
  • 算法决策:算法怎么往下走的,整体的流程。
  • 算法更新:那就是怎么优化这个Q表格(这点类似于梯度下降在神经网络的作用)。

最终目的:得到一个Q表,我们根据规则,又快又准的找到目标

1.2 对Q(s1,a2)现实

们在 s1 采取了 a2, 并到达 s2, 这时我们开始更新用于决策的 Q 表, 接着我们并没有在实际中采取任何行为, 而是再想象自己在 s2 上采取了每种行为, 分别看看两种行为哪一个的 Q 值大, 比如说 Q(s2, a2) 的值比 Q(s2, a1) 的大, 所以我们把大的 Q(s2, a2) 乘上一个衰减值 gamma (比如是0.9) 并加上到达s2时所获取的奖励 R (这里还没有获取到我们的棒棒糖, 所以奖励为 0), 因为会获取实实在在的奖励 R , 我们将这个作为我现实中 Q(s1, a2) 的值

在这里插入图片描述
所以现实Q = R+r*[XXX]

1.3 估计Q(s1,a2)理解

估计Q(s1,a2)理解那就是Q表里对应的那个值

1.4 QLearning 中的 Gamma理解

  • gamma = 0:只看见眼前的奖励
  • gamma = 1:上帝视角,也就是机器人能清清楚楚地看到之后所有步的全部价值

在这里插入图片描述

2. Q-learning和Sarsa的区别

在这里插入图片描述

算法上其实就是算Q现实时候不一样,上一步的Q现实
Q_learing下一步q表最大值+r
Sarsa具体的某一步估计q值+r

2.1 理解为什么Q_learning更激进

我们通过1.4QLearning 中的 Gamma理解,就知道当前的Q值,和以后所有的Q都是有关系的,越近影响越大。

  • Q_learning:取max,也就是不考虑最终走到很大负奖励的值,只考虑会不会最终获得最大奖励,如果获得了,那这条路就牛逼,所以么Q_learning更勇猛,不害怕错,更激进
  • Sarsa :是取某具体的一步,只要周围有错(很大的负奖励),那么就有机会获得这个不好的奖励,那么整条路反馈都会评分很差。之后会尽量避开。那么最终导致Sarsa会对犯错更敏感,会远离犯错的点,更保守

最终结果呈现是:
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐