首页 >> 大全

sarsa算法和qlearning算法的不同之处的详细深入探讨(集百家所论)

2023-10-24 大全 22 作者:考证青年

理论介绍

SARSA(State---State-)算法和Q-(-)算法都是强化学习中的常见算法,用于训练智能代理在环境中学习并制定最佳策略。它们有一些关键的不同之处:

更新时刻的不同:

策略选择的不同:

收敛性和稳定性:

适用范围:

总之,SARSA和Q-都是强化学习中有用的算法,但它们在更新时刻、策略选择、收敛性和稳定性等方面存在不同。选择使用哪个算法通常取决于具体的问题和需求。

举例说明

让我通过一个例子来解释SARSA和Q-之间的不同,以便更容易理解。

假设你是一个机器人,你要学会在一个迷宫中找到宝藏。在这个迷宫中,你可以采取四个动作:向上、向下、向左和向右。每个动作会导致你移动到新的位置,并且每个位置都有一个数字,表示在那里找到宝藏的可能性。你的任务是找到一种策略,以最大化找到宝藏的机会。

SARSA算法:

Q-算法:

举个例子:

总之,SARSA和Q-之间的主要区别在于它们对策略选择的灵活性和探索的程度。SARSA会更受当前策略的限制,而Q-更倾向于尝试新的动作策略。

数学公式说明

让我用数学公式来说明SARSA和Q-之间的不同。

SARSA (State---State-) 算法:

SARSA的更新规则如下:

Q ( s , a ) = Q ( s , a ) + α ∗ [ R + γ ∗ Q ( s ′ , a ′ ) − Q ( s , a ) ] Q(s, a) = Q(s, a) + α * [R + γ * Q(s', a') - Q(s, a)] Q(s,a)=Q(s,a)+α∗[R+γ∗Q(s′,a′)−Q(s,a)]

Q- 算法:

Q-的更新规则如下:

Q ( s , a ) = Q ( s , a ) + α ∗ [ R + γ ∗ m a x ( Q ( s ′ , a ′ ) ) − Q ( s , a ) ] Q(s, a) = Q(s, a) + α * [R + γ * max(Q(s', a')) - Q(s, a)] Q(s,a)=Q(s,a)+α∗[R+γ∗max(Q(s′,a′))−Q(s,a)]

关键区别:

这意味着SARSA算法在更新Q值时会考虑当前策略下的动作,而Q-算法则选择具有最大Q值的动作,独立于当前策略。

通过7个问题,更深入理解(可能有些问题的答案有失偏驳,可以作为思路扩展) 问题1:max(Q(s’, a’))我有点不明白Q(s’, a’)不是一个数吗,怎么取最大值?

在Q-算法中,Q(s’, a’) 是一个数值,表示在状态 s’ 下采取动作 a’ 后的估计最大Q值。这个值是一个单一的数字,表示在状态 s’ 下采取动作 a’ 后的预期回报。

sarsa算法和qlearning算法的不同之处的详细深入探讨(集百家所论)__sarsa算法和qlearning算法的不同之处的详细深入探讨(集百家所论)

当我们说 “max(Q(s’, a’))” 时,我们实际上是在选择在状态 s’ 下能够获得的最大Q值。也就是说,我们考虑所有可能的动作 a’,并找到其中具有最大Q值的那个动作。

具体地说,Q-算法在每一步中,根据当前状态 s 以及在新状态 s’ 下的所有可能动作 a’ 的Q值,选择最大的Q值作为更新当前状态 s 和动作 a 的Q值。这意味着代理会选择当前策略中可能不会选择的动作,以便探索潜在的更好的策略。

所以,“max(Q(s’, a’))” 是代理在 Q- 算法中所选择的最大的 Q 值,它代表了在新状态 s’ 下的最佳可能回报。

问题2:那sarsa里的Q(s’, a’)就是不考虑所有可能的动作a’吗

是的。在SARSA(State---State-)算法中,Q(s’, a’) 不会考虑所有可能的动作 a’,而是基于代理在状态 s’ 下实际采取的动作 a’。

具体来说,SARSA算法在每一步中,会基于当前策略选择下一个动作 a’,然后根据这个实际采取的动作 a’ 来计算 Q(s’, a’)。这意味着它会考虑代理在当前策略下选择的动作 a’,并使用它来更新 Q 值。

因此,SARSA在更新 Q 值时,考虑了代理的策略。这使得SARSA成为一个在策略上稳定的算法,因为它在学习时受到当前策略的限制。这也是SARSA和Q-之间的一个主要不同之处,因为Q-是离策略的,它选择的动作 a’ 不受当前策略的限制。

问题3:那我怎么知道a’是什么值?

在SARSA算法中,你可以通过执行一系列步骤来确定a’的值。具体步骤如下:

代理位于当前状态 s,根据当前策略选择一个动作 a(例如,根据 ε- 策略选择)。

执行动作 a 并观察环境的响应,包括新的状态 s’ 和获得的奖励 r。

在新的状态 s’ 下,再次使用相同的策略来选择下一个动作 a’。这个步骤可以是根据 ε- 策略来选择 a’,其中 ε 是一个小数,表示随机性的程度。如果 ε 较小,代理更倾向于选择具有最高 Q 值的动作,而如果 ε 较大,代理更倾向于随机选择动作。

使用观察到的状态、动作、奖励和新状态来更新 Q 值。

在SARSA中,动作 a’ 是在新状态 s’ 下执行的实际动作,而不是所有可能动作的最大值。这是因为SARSA是一个基于策略的算法,它考虑代理当前的策略。代理根据当前策略来选择 a’,并根据这个选择来更新 Q 值。

所以,你知道 a’ 的值是根据代理当前策略在新状态 s’ 下的动作选择来确定的。在训练的过程中,代理会逐渐改进策略,以便更好地选择动作 a’。

问题4:根据 ε- 策略来选择 a’怎么选择?

根据ε-策略来选择动作a’的过程非常简单,你可以按照以下步骤进行:

生成一个随机数r,通常是一个均匀分布的随机数,范围在0到1之间。

检查随机数r是否小于ε(即r < ε)。

这样,你在每个决策点上都可以根据ε-策略来选择动作a’。这个策略在探索和利用之间建立了平衡,以帮助代理在学习过程中更好地探索新策略并逐渐改进已知的策略。

问题5:这不也是选择最高Q值吗,和不是一样的吗?

你的观察是正确的。ε-策略在选择a’时确实有可能选择具有最高Q值的动作,这与Q-算法中选择最大Q值的动作是相似的。

然而,关键的不同在于,ε-策略会以ε的概率随机选择一个动作,即进行探索,而以(1-ε)的概率选择最大Q值的动作,即进行利用。这个随机性使得代理在一定程度上能够探索新的动作策略,而不仅仅是一味地选择最大Q值的动作。

Q-算法在选择a’时不引入随机性,总是选择具有最大Q值的动作,这使得它更加倾向于利用已知策略,而不太倾向于探索新的动作策略。

虽然在一些情况下ε-策略和Q-的策略看起来相似,但ε-策略引入了探索行为,使得代理在学习过程中具有更大的灵活性,可以在一定程度上尝试不同的动作策略,这是它与Q-不同的关键之处。

问题6:也就是说q-不用ε-策略吗?

对的,通常情况下,Q-不需要ε-策略。Q-是一个离策略学习算法,它总是选择在给定状态下具有最高Q值的动作,而不引入随机性。这是因为Q-假设代理已经获得了足够的探索经验数据,并且不再需要引入额外的探索随机性。

在Q-中,代理会根据已经学到的Q值表,总是选择具有最高Q值的动作,以最大化长期累积奖励。这使得Q-更倾向于利用已知策略,而不太倾向于探索新的动作策略。代理在学习的过程中已经通过采取不同动作获得了足够的探索数据,因此不需要ε-策略来引入探索随机性。

ε-策略通常更适用于在线学习的情况,或者在代理没有足够的经验数据时,以便在探索和利用之间建立平衡。在这些情况下,代理可以使用ε-策略来确保继续探索并发现新的策略。

问题7:那我如果把q-加入了ε-策略是不是就是sarsa?

是的,如果你将Q-算法与ε-策略结合使用,你将得到一个与SARSA算法相似的学习算法。在这种情况下,你会使用ε-策略来选择a’,即在每一步中以ε的概率进行探索,以(1-ε)的概率进行利用(选择具有最高Q值的动作)。

这种结合的方式确实会使Q-算法表现出一些与SARSA相似的特性,因为它引入了探索随机性。然而,需要注意的是,尽管它们在某种程度上相似,但SARSA和Q-仍然有一些根本性的差异,如更新规则和状态-动作选择的方式。

所以,如果你想要一个更接近SARSA算法的学习算法,可以将Q-与ε-策略结合使用,这将增加探索的随机性。这个组合将使Q-在某种程度上类似于SARSA,但仍然有一些不同之处。

后续

我发现了很优秀的文章,讲得比我清楚很多,特意在此附上

和Sarsa的区别到底是什么?为什么说勇敢而Sarsa胆小谨慎?(这篇文章偏感性,能从直觉上有个大致感受)

强化学习笔记2:彻底搞清楚什么是Q-与Sarsa(这篇文章偏理性,能真正明白,也终于说到了我困惑的地方怎么解释,其第三部分,即(三、Q-如何实现更加有效的探索?)个人感觉是全文精华部分,再次重新排版重写一下,方便大家查阅)

我们的目的是更新黄色状态的动作价值 Q ( S = y e l l l o w , A ) Q(S=,A) Q(S=,A)

假设我们已知在黄色状态下只有2种状态可选,即灰动作和黑动作。蓝色和绿色状态下的最大价值动作都是红动作。

在某个回合()中,在第n步时,状态为黄色,并且在第k-1次更新 Q ( S = y e l l o w , A ) Q(S=,A) Q(S=,A)时,已知灰动作价值比黑动作大,即 Q k ( S n , a n = g r a y ) > Q k ( S n , a n ′ = b l a c k ) Q_k(S_n,a_n=gray)>Q_k(S_n,a'_n=black) Qk​(Sn​,an​=gray)>Qk​(Sn​,an′​=black)

在通过 ε-策略选择动作时,会有两种情况,我们用①和②表示

①有 1 − ε / 2 1-ε/2 1−ε/2的概率选择当前价值Q最大的灰动作 a n a_n an​

而黑动作就不更新,即 Q k + 1 ( S n , a n ′ ) = Q k ( S n , a n ′ ) Q_{k+1}(S_n,a'_n)=Q_{k}(S_n,a'_n) Qk+1​(Sn​,an′​)=Qk​(Sn​,an′​)

其中 S n = y e l l o w S_n= Sn​=, S n + 1 = b l u e S_{n+1}=blue Sn+1​=blue

②有 ε / 2 ε/2 ε/2的概率选择价值Q较小的黑动作 a n ′ a'_n an′​

Q k + 1 ( S n , a n ′ ) = Q k ( S n , a n ′ ) + α [ R n + 1 + m a x Q i ( S n + 1 ′ , a n + 1 ′ ) − Q k ( S n , a n ′ ) ] Q_{k+1}(S_n,a'_n)=Q_{k}(S_n,a'_n)+\alpha[R_{n+1}+(S'_{n+1},a'_{n+1})-Q_k(S_n,a'_n)] Qk+1​(Sn​,an′​)=Qk​(Sn​,an′​)+α[Rn+1​+maxQi​(Sn+1′​,an+1′​)−Qk​(Sn​,an′​)]

而灰动作就不更新,即 Q k + 1 ( S n , a n ) = Q k ( S n , a n ) Q_{k+1}(S_n,a_n)=Q_{k}(S_n,a_n) Qk+1​(Sn​,an​)=Qk​(Sn​,an​)

其中 S n = y e l l o w S_n= Sn​=, S n + 1 ′ = g r e e n S'_{n+1}=green Sn+1′​=green

无论是情况①还是②,黄色状态下灰动作与黑动作的价值的大小关系都可能发生变化!!,我们通过最大值更新目标策略 π \pi π

Q k + 1 π ( S = y e l l o w , A ) = m a x { Q k + 1 ( S n , a n ) , Q k + 1 ( S n , a n ′ ) } Q_{k+1}^{\pi}(S=,A)=max\{Q_{k+1}(S_n,a_n),Q_{k+1}(S_n,a'_n)\} Qk+1π​(S=,A)=max{Qk+1​(Sn​,an​),Qk+1​(Sn​,an′​)}

比如,当出现情况②时,探索了黑动作后,更新后有 Q k + 1 ( S n , a n ) < Q k + 1 ( S n , a n ′ ) Q_{k+1}(S_n,a_n)Qk+1​(Sn​,an​)

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了