标签: sarsa

Q学习与SARSA有什么区别?

虽然我知道SARSA是在政策上,而Q-learning不合时宜的,但在查看他们的公式时,很难(对我而言)看到这两种算法之间存在任何差异.

根据" 强化学习:引言"(Sutton和Barto)一书.在SARSA算法中,给定策略,相应的动作值函数Q(在状态s和动作a,在时间步t),即Q(s t,a t),可以更新如下

Q(s t,a t)= Q(s t,a t)+α*(r t +γ*Q(s t + 1,a t + 1) - Q(s t,a t))

另一方面,Q学习算法的更新步骤如下

Q(s t,a t)= Q(s t,a t)+α*(r t +γ*max a Q(s t + 1,a) - Q(s t,a t))

也可以写成

Q(s t,a t)=(1 - α)*Q(s t,a t)+α*(r t +γ*max a …

artificial-intelligence reinforcement-learning q-learning sarsa

50
推荐指数
4
解决办法
2万
查看次数

资格跟踪SARSA-Lambda实施中的剧集之间的重新初始化

我正在研究这个SARSA-Lambda实现(即:具有资格跟踪的SARSA),还有一个我仍然没有得到的细节.

在此输入图像描述

(图片来自http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node77.html)

所以我理解所有Q(s,a)都是更新的,而不仅仅是代理为给定时间步长选择的Q(s,a).我也理解E矩阵在每集开头都没有重置.

让我们假设一分钟图7.12的面板3是第1集的结束状态.

在第2集开始时,代理人向北而不是向东移动,让我们假设这给它奖励-500.这不会影响前一集中访问过的所有州吗?

如果想要奖励那些在当前剧集中被访问过的状态,那么为什么在每集开头都没有重置包含所有e(s,a)值的矩阵?看起来在这个实现中,在上一集中访问过的状态对于代理在这一新剧集中所做的动作是"惩罚"或"奖励".

machine-learning reinforcement-learning sarsa

15
推荐指数
1
解决办法
2473
查看次数

Q-learning和SARSA的贪婪选择是否相同?

Q学习和SARSA之间的区别在于Q学习比较当前状态和最佳可能的下一状态,而SARSA将当前状态与实际下一状态进行比较.

如果使用贪婪的选择策略,即100%的时间选择具有最高动作值的动作,那么SARSA和Q学习是否相同?

reinforcement-learning q-learning sarsa

6
推荐指数
1
解决办法
7391
查看次数

具有神经网络的情景半梯度 Sarsa

在尝试实现Episodic Semi-gradient Sarsa with神经网络作为逼近器时,我想知道如何根据当前学习的网络权重选择最佳动作。如果动作空间是离散的,我可以计算当前状态下不同动作的估计值,并选择给出最大值的那个。但这似乎并不是解决问题的最好办法。此外,如果动作空间是连续的(例如自动驾驶汽车的加速),它就不起作用。

所以,基本上我想知道如何解决Choose A' as a function of q(S', , w)Sutton 伪代码中的第 10 行: 在此输入图像描述

这些问题通常是如何解决的?有人可以推荐一个使用该算法的好例子吗Keras

编辑:使用网络作为逼近器时是否需要修改伪代码?那么,我是否可以简单地最小化MSE网络的预测和奖励R

reinforcement-learning neural-network sarsa

6
推荐指数
1
解决办法
1992
查看次数

为什么 Sutton 的 RL 书中没有 n-step Q-learning 算法?

我想我把事情搞砸了。

我一直认为:
- 1-step TD on-policy = Sarsa
- 1-step TD off-policy = Q-learning

因此我得出结论: - n-step TD on-policy = n-step Sarsa
- n-step TD off-policy = n-step Q-learning

然而,在 Sutton 的书中,他从未介绍过 n-step Q-Learning,但他确实介绍了 n-step off-policy Sarsa。现在我感到很困惑。

有人可以帮我命名吗?

链接到 Sutton 的书(第 149 页的 Off-Policy n-step Sarsa)

reinforcement-learning q-learning sarsa

5
推荐指数
1
解决办法
2416
查看次数

SARSA实施

我正在学习SARSA算法的实现,并有一个问题.我理解一般的"学习"步骤采取以下形式:

机器人(r)处于状态s.有四种可用的动作:

North (n), East (e), West (w) and South (s)
Run Code Online (Sandbox Code Playgroud)

这样的行动清单,

a = {n,w,e,s}
Run Code Online (Sandbox Code Playgroud)

机器人随机选择一个动作,并按如下方式更新:

Q(a,s) = Q(a,s) + L[r + DQ(a',s1) - Q(a,s)]
Run Code Online (Sandbox Code Playgroud)

哪里L是学习率,r被关联到奖励(a,s),Q(s',a')从诉讼的预期回报a'在新的状态s',并D为贴现因子.

首先,我不会理解这个术语的作用 - Q(a,s),为什么我们要重新减去当前的Q值呢?

其次,在选择行动时a,a'为什么这些必须是随机的?我知道在某些实施或SARSA中,所有可能的Q(s', a')都被考虑在内并且选择了最高值.(我相信这是Epsilon-Greedy?)为什么不选择Q(a,s)更新哪个值呢?或者为什么不Q(a,s)为当前更新全部s

最后,为什么SARSA仅限于一步前进?比方说,为什么不考虑假设Q(s'',a'')呢?

我想总的来说,我的问题归结为什么使得SARSA比另一种先呼吸或深度优先搜索算法更好?

machine-learning sarsa

3
推荐指数
1
解决办法
1668
查看次数