SARSA的Zeta变量(lamda)

时间:2018-04-12 01:31:52

标签: c++ machine-learning reinforcement-learning sarsa

zeta在评论方法中代表什么?我相信它会跟踪状态 - 动作对并表示资格跟踪,这是状态动作的临时记录,但是zeta究竟代表什么以及它在c ++中的外观如何(例如双打矢量)?

评论家 Critic

1 个答案:

答案 0 :(得分:1)

就像你已经说过的那样,zeta代表了资格痕迹。这可以直观地理解为包含“在所有先前时间步骤中遇到的所有状态 - 动作特征向量的衰减混合”。这是我们之前看到的一些事情,因此我们现在应该给予奖励以获得奖励。

更正式地说,如果你想在RL算法中编写增量实现(计算时间均匀分布在所有时间步长上),那么这只是需要的东西,当以更简单/明显/天真的方式编写时,只能以非增量方式实现,因为它们具有需要来自您的剧集中所有时间步的信息的更新规则(例如,lambda-returns / Monte Carlo返回)。这可能听起来相当复杂,但最好坚持直观的解释。

至于它在C ++中的外观,是的,几乎是双打的载体。图像中第一行代码之前的“z \in R^d”就意味着它,它是实数的d - 维向量(C ++中的双精度或浮点数),其中d是状态 - 动作特征向量的维度(phi)。

您还可以通过将其添加到其他d维向量(d和{{1在伪代码中的其他几个地方。如果zeta本身也是phi维向量,那么只能在数学上正确地解决这个问题。