两个智能体如何知道自我博弈强化学习中的最终奖励?

人工智能 强化学习 游戏-ai 自我游戏 井字游戏
2021-11-05 15:49:23

在自我对战 RL 与“正常”RL 中,最终奖励的接收/处理方式似乎存在重大差异,这让我感到困惑。

我以正常方式实现井字游戏,其中单个代理与管理状态的环境对战,并以新动作进行回复。在这种情况下,代理收到的最终奖励为+1,01分别为胜、平、负。

接下来,我以自我对弈模式实现井字游戏,两个智能体一个接一个地移动,环境只管理状态并返回奖励。在这种情况下,代理只能获得最终奖励+1或者0,因为在他自己移动之后,他永远不会处于他输掉的最终状态(只有代理 2 可以以这种方式终止游戏)。这意味着:

  1. 在自我游戏中,剧集以这样一种方式结束,即只有一名玩家可以看到最终状态和最终奖励。

  2. 由于第一点,代理无法知道他是否做出了让对手赢得这一集的坏举动。仅仅因为他没有得到负回报。

这对我来说似乎很奇怪。我究竟做错了什么?或者如果我没有错,我该如何处理这个问题?

2个回答

当一个代理移动时,从另一个代理的角度来看,该移动应该被视为“由环境”执行的“状态转换”的一部分。

例如,假设作为“中立的第三方”,我们将游戏视为如下状态、动作和最终奖励的序列。A用来表示第一个玩家选择的B动作,并表示第二个玩家选择的动作:

S1 -> A1 -> S2 -> B1 -> S3 -> A2 -> S4 -> B2 -> S5 -> A3 -> Terminal Reward

然后,第一个玩家应该只得到以下观察结果:

S1 -> A1 -> S3 -> A2 -> S5 -> A3 -> Terminal Reward

注意状态S2S4是如何被完全跳过的,从第一个玩家的角度来看,它们并不是真正的状态,它们只是由第一个玩家的动作引起的过渡的一半,对第一个玩家来说并不有趣。

同样,第二个玩家应该只得到以下观察结果:

S2 -> B1 -> S4 -> B2 -> Terminal Reward

如果您在两人零和游戏中运行自我游戏,那么您可以执行以下操作:

  • 任意决定玩家A的赢、平、输奖励方案为+1、0、-1

  • 玩家A的目标是最大化奖励,玩家 B的目标是最小化奖励。

这意味着您可以将玩家对位置和游戏价值的看法结合到一个指标中,可以根据您的算法学习和/或搜索该指标。搜索时,您可以使用 MCTS 和/或 minimax 算法。当使用 Q-learning 时,唯一要应用的调整不是选择最大化动作,玩家 B 将想要选择最小化动作(因此将使用玩家 A 将使用的 和 函数min-请记住在计算 TD 误差时,您正在评估一个玩家的位置,但将使用奖励 + 下一个玩家移动的最大/最小值。argminmaxargmax