我正在查看此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)值的矩阵?似乎通过这种实施方式,对于在新情节中代理执行的操作,“惩罚”或“奖励”了在前一情节中访问过的状态。
最佳答案
我100%同意你的看法。未能在每个情节开始时重置电子矩阵,正是您所描述的问题。据我所知,这是伪代码中的错误。您引用的参考非常流行,因此该错误已传播到许多其他参考。但是,this well-cited paper非常清楚地指出,应在情节之间重新初始化电子矩阵:
资格跟踪被初始化为零,并且在情节任务中
每次播放后,它们都会重新初始化为零。
作为进一步的证据,this paper的方法:
在每个情节开始时,将迹线e设置为0。
和this paper中的脚注3:
...在每次试验开始时,资格跟踪都重置为零。
提示这是常见的做法,因为两者都涉及情节之间的重新初始化。我希望还有更多这样的例子。
在实践中,此算法的许多用法不涉及多个情节,或者相对于其衰减率而言具有如此长的情节,因此这最终不会成为问题。我希望这就是为什么尚未在互联网上其他地方更明确地阐明它的原因。
关于machine-learning - SARSA-Lambda实现中情节之间的资格跟踪重新初始化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29904270/