代理能否等到剧集结束才能确定 SARSA 中的奖励?
这里有几件事要分解。
首先要纠正这个:
例如,井字游戏的奖励在情节结束时决定,当玩家赢、输或平局时。奖励不是在每一步都可用.
在马尔可夫决策过程 (MDP) 中,每次总是有一个即时奖励从到(终端状态)。这是算法所称的奖励分布.
几乎所有的奖励都没有关系. 这仍然是一个奖励价值,即使它不是一个有趣或信息丰富的价值。一些环境在几乎所有时间步上都会有非零奖励。除了定义代理目标的一两个重要例外之外,某些环境可能对每次转换都零奖励。
所以在井字游戏中,如果游戏还没有结束,奖励将是因为没有一个玩家赢过或输过,而获得胜利是一个学习目标。如果你使用tic-tac-toe 中所有不完整时间步的奖励值,以及 Sutton & Barto 编写的 SARSA 算法,那么它将按预期工作。你不需要等到剧集结束,算法仍然会学习预测动作的价值,尽管经历了很多在游戏开始和中间。
您展示了 MC 预测算法,该算法确实等到每集结束,直到使用经验回报计算估计值。
我认为您可能想要查看的一件事是时间步后立即奖励之间的区别(注意) 并返回(注意)。两者之间存在关系. 所有基于价值的方法,例如 MC 预测或 SARSA,都是估计预期回报的方法给定一些上下文,例如当时的状态或状态和动作.
鉴于此,这应该回答您的其他问题。
确定每个行动的奖励是否是 SARSA 的要求?
这是 MDP 的一般要求,也是所有求解器所期望的。但是,默认为很好,如果环境是这样的话。强化学习 (RL) 算法都可以应对重要奖励值的延迟(例如输赢游戏的延迟)。更大的延迟 - 例如数千更有意义的值之间的奖励步骤 - 通常与更难解决的问题相关联,因此更简单的算法可能不实用。但只要有足够的经验,他们都能在理论上应付。
代理可以等到剧集结束来确定奖励吗?
不,您应该始终能够计算即时奖励值采取每一个动作后从状态.
但是,一般来说,等到您总结出更多这些奖励(例如到) 在估算回报之前更新价值估计。单步 SARSA(有时称为 SARSA(0))不等待 - 它使用单个即时奖励值进行更新步骤。然而,包括蒙特卡洛 (MC) 和 SARSA 的一些变体在内的其他代理类型可以并且确实等待 - 有时只是等待一些步骤,有时直到每集结束。
这是您在设计代理时可以做出的选择,这是有后果的。等到剧集结束(如在 MC 中)意味着您对价值进行了无偏估计,但需要更长的时间,并导致更新的可变性更高。在每一步之后使用奖励值(如在 SARSA(0) 中)意味着您可以进行更频繁的更新,这可能会收敛更多,但您会从有偏差的错误值开始。
