17

我正在查看这个 SARSA-Lambda 实现(即:带有资格跟踪的 SARSA),并且有一个我仍然没有得到的细节。

在此处输入图像描述

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

所以我知道所有 Q(s,a) 都会更新,而不仅仅是代理为给定时间步选择的一个。我也了解 E 矩阵在每集开始时不会重置。

让我们假设图 7.12 的面板 3 是第 1 集的结束状态。

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

如果这个想法是为了奖励在当前情节中访问过的那些状态,那么为什么包含所有 e(s,a) 值的矩阵不在每一情节开始时重置?在这个实现中,上一集中访问过的状态似乎因为代理在新一集中所做的操作而受到“惩罚”或“奖励”。

4

1 回答 1

25

我100%同意你。未能在每集开始时重置电子矩阵正是您所描述的问题。据我所知,这是伪代码中的错误。您引用的参考文献非常受欢迎,因此该错误已传播到许多其他参考文献。然而,这篇被广泛引用的论文非常清楚地指出,应该在剧集之间重新初始化 e-matrix:

资格跟踪被初始化为零,并且在情节任务中,它们在每一情节之后重新初始化为零。

作为进一步的证据,本文的方法:

轨迹 e 在每集开始时设置为 0。

本文脚注#3 :

...资格痕迹在每次试验开始时重置为零。

表明这是常见的做法,因为两者都指情节之间的重新初始化。我希望还有更多这样的例子。

在实践中,该算法的许多用途不涉及多个情节,或者相对于它们的衰减率具有如此长的情节,这最终不会成为问题。我希望这就是为什么它还没有在互联网上的其他地方更明确地澄清的原因。

于 2015-05-03T07:07:34.207 回答