![]() |
1
3
你说得对,
在第一次更新中
,所有奖励和更新仍将是
然而,资格的痕迹
合格记录表
衰退
每一步(乘以
代码的第一部分如下:
所以,每一个新的时代,它们都是从使用
所以,我怀疑,当运行代码生成输出时,初始位置只是随机选择为目标左侧两步的位置,而不是左下角的位置。如果随机选择的初始位置已经接近目标,则代理只访问您看到非零更新的这两个状态,因此这些状态也是资格跟踪表中唯一具有非零条目的状态,因此也是唯一具有非zer的状态更新。
如果初始位置确实是左下角的位置,则算法的正确实现将确实更新该路径上所有状态的值(假设没有添加额外的技巧,例如将条目设置为
我还想指出,实际上在该页的代码中有一个错误:它们没有将资格跟踪表的所有条目重置为
|
![]() |
2
2
您缺少一个小而重要的详细信息,更新规则将应用于
所有状态
,而不仅仅是当前状态。所以,实际上,你正在更新
编辑
这个
我不知道为什么在python实现中(我没有仔细检查过)输出只更新了2个值,但是请验证前5个状态的合格性跟踪是否与0不同,如果不是这样,请尝试理解原因。有时你不想把轨迹保持在一个很小的阈值(如10e-5)下,因为它在学习过程中影响很小,而且浪费了计算资源。 |
|
3
0
可以看出,是用来计算状态效用的。但是,使用下一个州的实用程序,如 article . 这意味着对于td(0),它将更新所有状态,因为要计算ut,我们需要计算下一个状态的u,依此类推。
在td(»)中,在计算中添加合格跟踪时,也会有额外的减少。 上面的结论是,在第一次迭代中,前面的值是0,因为所有实用程序在开始时都是0,在td()中,当更新时,它们会因合格性跟踪而大大减少。你可以说它们非常小,太小,无法计算或考虑。 |