我正在看这个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)值的矩阵?看起来像这个实现状态已经在前一集中访问过的状态被惩罚了#39;或者奖励'代理人在新剧集中所做的动作。
答案 0 :(得分:22)
我100%同意你的意见。在每集开始时未能重置电子矩阵正是您所描述的问题。 据我所知,这是伪代码中的错误。您引用的引用非常流行,因此错误已传播到许多其他引用。但是,this well-cited paper非常明确地指出应该在剧集之间重新初始化电子矩阵:
资格痕迹初始化为零,并在情节任务中初始化 每集后它们都会重新初始化为零。
作为进一步的证据,this paper的方法:
来自this paper的在每集开头,曲目e设为0。
和脚注#3:
......在每次试验开始时,资格痕迹都重置为零。
建议这是常见的做法,因为两者都是指剧集之间的重新初始化。我希望还有更多这样的例子。
在实践中,该算法的许多用途不涉及多个剧集,或者相对于其衰减率具有如此长的剧集,这不会成为问题。我希望这就是为什么它还没有在互联网上更明确地澄清。