对手的回合会影响 DQN 代理动作的奖励吗?

人工智能 强化学习 dqn 开放式
2021-11-11 05:25:13

我为 2 人纸牌游戏制作了一个引擎,现在我正在尝试制作一个类似于 OpenAI Gym envs 的环境,以简化训练。

但是,我无法理解这件事:

  1. 如果我使用step(agentAction),我在游戏中轮到代理,计算奖励。
  2. 玩对手的回合(这将是一个随机的 AI 或基于规则的 AI)

问:
对手的回合会影响计算的奖励吗?据我所知,奖励应该只是代理人行动的结果吧?

谢谢你。

1个回答

对手的回合会影响计算的奖励吗?

是的,一般来说可以。显而易见的情况是,在两人游戏中,对手可以轮到自己赢或输,但有其他选择。

据我所知,奖励应该只是代理人行动的结果吧?

在定义明确的 MDP 中,奖励应该是当前状态和代理行为的随机函数。随机部分可以包括由于对手玩家造成的任何变化。

如果对手玩家是随机的,或者遵循定义明确且固定的策略,那么您将他们视为环境的一部分。所以这个要求在技术上是满足的。奖励只取决于当前状态和代理的行为。实际结果可能发生在对手的回合,但这并不重要。

在对手的牌被隐藏并影响他们的策略的纸牌游戏中,严格来说可能并非如此,因为可见状态不会决定对手的行为。问题不再是 MDP,而是开始成为 POMDP。这是否会影响代理将取决于策略在多大程度上依赖于这些卡片的隐藏性质。在二十一点中,在打出之前不知道对手的牌几乎没有影响 - 隐藏牌和在代理人打出后随机确定的牌之间几乎没有区别。所以你可以假装它是一个正常的 MDP。在扑克中,隐藏牌的知识几乎是游戏的一切,因此需要 POMDP 或其他跟踪可能隐藏状态的方法。

请注意,学习击败随机玩家或专家玩家通常与学习最佳游戏不同(除非您的专家玩家已经是最佳玩家)。为此,您可能需要自我游戏和学习双方玩家策略的代理。