资格跟踪:在线与离线 λ-return 算法

Posted

技术标签:

【中文标题】资格跟踪:在线与离线 λ-return 算法【英文标题】:Eligibility Traces: On-line vs Off-line λ-return algorithm 【发布时间】:2019-07-26 19:03:09 【问题描述】:

对于书中的 λ-return 算法的在线版本,为什么您需要重新访问每个地平线上的情节中的所有时间步长,我遇到了一些问题:Reinforcement Learning: An Introduction, 2nd Edition, Chapter 12, Sutton & Barto

这里所有的权重向量序列 W1, W2,..., Wh 对于每个地平线 h 都从 W0 开始(上一集结束时的权重)。然而,它们似乎并不依赖于前一阶段的回报/权重,并且可以独立计算。在我看来,这只是为了澄清起见,您只能在剧集结束时计算最终水平 h=T 的值。这将与算法的离线版本所做的相同,实际更新规则是:

毫不奇怪,在 19 个状态的随机游走示例中,两种算法的结果完全相同:

在书中提到,在线版本的性能应该更好一点,在这种情况下,它应该与真正的在线 TD(λ) 具有相同的结果。在实现后者时,它确实优于离线版本,但我无法弄清楚简单而缓慢的在线版本。

任何建议将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

在我看来,这只是为了澄清,您只能在剧集结束时计算最终水平 h=T。

这不是真的。在线 λ-return 算法的全部意义在于它是在线的:它在剧集中进行更新。这在控制设置中至关重要,因为选择的操作由当前值估计确定。即使在预测设置中,为较早的视野所做的权重更新也会产生影响。

这是因为来自最后一个范围的最终权重向量总是用于计算更新目标,截断的 lambda 返回。所以 w_1^1 用于计算 h=2 的所有目标,而 w_2^2 用于计算 h=3 的所有目标。因为目标是使用最新的权重向量计算的,所以它们通常更准确。

即使在预测设置中,在线 lambda 返回算法也优于离线版本,因为它使用的目标更好。

【讨论】:

@philip_raesghasem 你是对的,在控制设置中它会更重要。在在线版本中,价值估计值更新为与离线版本相同,唯一的区别是终止时间 T 被替换为地平线 h,最后使用 Gt:h 而不是仅 Gt。我想念的一点是,为什么最终地平线 T 之前的那些更新会很重要,如果在书中他们在你的引用之前说几句话:“每个序列中第一个权重向量 0 是从前一集继承的(所以它们是所有 h)" 是的,关于我同意的更多信息更新。我只是想知道为什么最后它并没有像书中那样给出比离线版本更好的结果。谢谢 @xenomeno,我重新审视了这个问题并意识到我错了。我编辑的答案对您的代码有一些具体的更改。 哪里是 w_1^1 用作 h=2 的目标,还是 w_2^2 用作 h=3 的目标?对于每个 h:w_0^h 是相同的初始权重向量(继承自上一集,而不是地平线),并且仅使用来自同一地平线的 w_t^h,例如他们不依赖前一个地平线的 w_t^(h-1)? @xenomeno 每次更新的目标是截断的 lambda 返回 G。有关如何计算它,请参见 (12.9) 和 (12.1)。它最终是一些权重 w 的函数。您在计算每个水平 h 的 G 时使用的权重是 w_h-1^h-1。

以上是关于资格跟踪:在线与离线 λ-return 算法的主要内容,如果未能解决你的问题,请参考以下文章

『图论』LCA 最近公共祖先

『图论』LCA最近公共祖先

在线诊断和离线诊断

Reinforcement Learning: An Introduction Second Edition - Chapter 12

blender学习笔记:python脚本使用与离线渲染

blender学习笔记:python脚本使用与离线渲染