如何在多智能体设置中处理 SARSA 中的终端状态?

人工智能 强化学习 执行 多代理系统 萨尔萨
2021-10-28 20:32:46

我正在训练一个 SARSA 代理来更新 Q 函数,但我对你如何处理最终状态感到困惑。在这种情况下,当游戏结束并且没有小号'.

例如,代理根据状态执行操作小号,因此,代理赢了或输了,没有小号'过渡到。

那么,考虑到状态实际上并没有改变,你如何用那个场景中的最后一个奖励来更新 Q 函数呢?那案子小号'等于小号即使执行了一个动作并且代理收到了奖励(他们最终赢了或输了,所以做出非常重要的更新!)。

我是否向状态“代理获胜”和“游戏完成”添加额外的输入,这就是两者之间的区别小号小号'最后的Q更新?

为了清楚起见,这是指多代理/玩家系统。因此,代理采取的最终行动可能会产生与之相关的成本/回报,但其他代理随后采取的后续行动可能会进一步确定该代理的更大收益或损失以及它是赢还是输。因此,最终状态和选择的动作实际上可以产生不同的奖励,而无需代理采取进一步的行动。

1个回答

SARSA 更新规则如下所示:

(小号,一个)(小号,一个)+α[R+γ(小号',一个')].

非常相似,-learning 更新规则如下所示:

(小号,一个)(小号,一个)+α[R+γ最大限度一个'(小号',一个')].

这两个更新规则都是为单代理马尔可夫决策过程制定的。有时您可以使它们在多代理设置中正常工作,但重要的是要记住,这些更新规则仍应始终“从单个学习代理的角度”实施,该代理不知道其他代理的存在和假装他们是环境的一部分。

这意味着各州小号小号'您在更新规则中提供的确实必须都是允许学习代理进行下一步操作的状态(例外是小号'被允许成为终端游戏状态。

所以,假设你有三个后续状态小号1,小号2, 和小号3,学习代理可以选择状态中的动作小号1小号3,并且对手可以在状态中选择一个动作小号2. 在更新规则中,您应该完全忽略 小号2. 这意味着你应该采取小号=小号1, 和小号'=小号3.

按照我上面描述的推理,确实可能会导致一个棘手的情况,即从过渡到终端状态获得奖励,因为从技术上讲,每一集只有一个代理直接导致过渡到终端状态。这个问题(加上我上面重复的一些解释)在“如何在自我对弈强化学习中看到最终奖励?”中进行了讨论。这个网站上的问题。