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

Eligibility trace reinitialization between episodes in SARSA-Lambda implementation

我正在查看这个 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) 值的矩阵?对于此实施状态,在上一集中访问过的状态似乎是 'punished' 或 'rewarded',代表代理在这一新集中完成的操作。

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

The eligibility traces are initialized to zero, and in episodic tasks they are reinitialized to zero after every episode.

作为进一步的证据,this paper:

的方法

The trace, e, is set to 0 at the beginning of each episode.

this paper 中的脚注 #3:

...eligibility traces were reset to zero at the start of each trial.

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

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