Q-Learning 中新状态的最大 Q 值从不存在

人工智能 q学习
2021-10-21 20:25:18

我正在为 2 人棋盘游戏实施 Q-Learning 算法。

在此处输入图像描述

我遇到了我认为可能是个问题。当需要用贝尔曼方程(上图)更新 Q 值时,最后一部分指出,为了获得最大的期望奖励,必须在s'采取行动后找到达到的新状态中的最高 q 值a

但是,似乎 I 从来没有 state 的 q 值s'我怀疑s'只能从 P2 移动。由于 P1 的操作,可能无法达到此状态。因此,棋盘状态s'永远不会由 P2 评估,因此它的 Q 值永远不会被计算。

我将尝试描绘我的意思。假设 P1 是随机玩家,P2 是学习代理。

  1. P1 随机移动,导致 state s
  2. P2 评估棋盘s,找到最佳动作并采取它,从而产生状态s'在更新 pair 的 Q 值的过程中(s,a),它发现maxQ'(s', a) = 0,因为状态还没有遇到。
  3. s',P1 再次随机移动。

如您所见,s'P2 永远不会遇到 state,因为它是一种仅作为 P2 移动的结果出现的棋盘状态。因此等式的最后一部分将始终导致0 - current Q value

我看对了吗?这会影响学习过程吗?任何输入将不胜感激。

谢谢。

1个回答

您的问题在于您如何定义s.

代理的下一个状态不是代理的动作立即将环境置于其中的状态。它是下一次采取行动时的状态。对于一些更被动的环境,这些是相同的。但对于许多环境,它们不是。例如,在迷宫中导航的机器人可能会采取行动向前移动。下一个状态不会在它开始执行动作时立即发生(当它仍然处于相同位置时),而是在稍后的时间,在动作被环境处理一段时间之后(并且机器人处于新位置),并且机器人已准备好采取另一行动。

因此,在您使用常规 Q 学习的 2 人游戏示例中,下一个状态s因为 P2不是P2 下手后的状态,而是 P1 下手后的状态。从 P2 的角度来看,P1 是环境的一部分,情况与随机环境没有什么不同。

一旦你从这个角度看待什么s是,那么 Q 学习将正常工作。

但是,您应该注意,针对特定对手(例如随机对手)的最佳行为与游戏中的最佳游戏不同。还有其他方法可以将强化学习理念应用于 2 人游戏。其中一些可以使用与上述相同的方法 - 例如训练两个代理,一个用于 P1,一个用于 P2,每个代理都将另一个视为环境的一部分。其他人使用不同的方式来反转代理的视图,以便它可以更直接地与自己对战——在这些情况下,您可以将每个玩家的即时输出视为s,但需要修改学习代理。对 Q 学习的一个简单修改是交替服用maxamina取决于轮到你评估谁(假设 P1 的目标是最大化他们的分数,而 P2 的目标是最小化 P1 的分数 - 进而在任何零和游戏中最大化他们自己的分数)