我最近开始学习强化学习。目前,我正在尝试实现SARSA 算法。但是,我不知道如何处理, 什么时候是终端状态。首先,在这种状态下没有可供选择的动作。二、这-factor 也永远不会更新,因为这一集在到达了。我应该初始化吗到随机数以外的东西?或者我应该忽略-因素并简单地提供奖励进入更新?
在实施 SARSA 时,我应该如何处理终端状态下的动作选择?
人工智能
强化学习
执行
萨尔萨
2021-11-07 00:18:41
2个回答
价值应始终实现为简单地等于对于任何终端状态(点而不是动作作为第二个参数表明我刚刚写的内容应该适用于任何动作,只要是终端)。
通过剖析更新规则中不同术语的含义,更容易理解为什么会出现这种情况:
在此更新中,红色术语(出现两次)是我们对价值的旧估计处于状态并执行动作. 蓝色术语是估计相同数量的不同版本. 假设第二个版本稍微准确一些,因为它不“只是”一个预测,而是以下的组合:
- 我们真正观察到的东西:, 加上
- 一个预测:
在这里,组件是我们在执行后观察到的即时奖励在, 接着是我们期望之后仍然收集的所有内容(即,在执行之后在并过渡到)。
现在,假设是一个终结状态,我们仍然期望在同一集中在未来收集什么奖励?自从是终局,并且这一集已经结束,只能有一个正确答案;我们希望准确收集未来的奖励。
从您链接到的算法的描述中,它说“重复直到 s 是终端”。所以你会在那个时候结束这一集,你的直觉是成立的。
实际上,如果一个人正在实现一个奖励功能,其中特定奖励与剧集的结尾相关联,例如“r(机器人撞墙)= -100”,那么可以想象在此之后有一个终端状态' wall hit' 状态,因此代理可以看到此奖励。然后这一集将处于终止状态,因此将结束。
其它你可能感兴趣的问题