我看这个SARSA-Lambda实现(即: SARSA与资格跟踪),有一个细节,我仍然没有得到。

(图片来源于http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node77.html)
所以我知道所有的Q(s,a)都是更新的,而不仅仅是代理为给定的时间步骤选择的。我也明白E矩阵不是在每一集开始时重置的。
让我们假设图7.12的第3面板是第1集的结束状态。
在第二集开始的时候,特工向北移动而不是向东移动,让我们假设这给了它一个-500的奖励。这不也会影响所有在前一集访问的州吗?
如果这个想法是奖励那些在当前事件中访问过的状态,那么为什么包含所有e(s,a)值的矩阵不在每集开始时重置?在这个实现过程中,上一集中访问过的状态似乎会因为代理在这一新事件中所做的行为而受到“惩罚”或“奖励”。
发布于 2015-05-03 07:07:34
我百分之百同意你的意见。没有在每一集开始时重置电子矩阵,就有你所描述的问题。据我所知,是伪码中的一个错误。您引用的引用非常流行,因此错误已经传播到许多其他引用中。然而,this well-cited paper非常清楚地指出,应该在两集之间重新初始化电子矩阵:
资格跟踪被初始化为零,在片段任务中,它们在每一集之后被重新初始化为零。
作为进一步的证据,this paper的方法
跟踪e在每集开始时设置为0。
和this paper的脚注3
每次试验开始时,...eligibility痕迹被重置为零。
建议这是常见的做法,因为两者都指的是重新初始化之间的插曲。我希望有更多这样的例子。
在实践中,这个算法的许多用法不涉及多个插曲,或者相对于它们的衰变率有如此长的插曲,所以这并不是一个问题。我希望这就是为什么它还没有在互联网其他地方得到更明确的澄清的原因。
https://stackoverflow.com/questions/29904270
复制相似问题