与对手的深度 Q 网络有哪些好的学习策略?

人工智能 强化学习 q学习 dqn 游戏-ai 井字游戏
2021-11-09 06:42:04

我正在尝试找出针对 Deep Q-Network 与对手的一些好的学习策略。我们以著名的井字游戏为例:

  • 应该如何实施对手以获得良好和快速的改进?
  • 与随机玩家或完美玩家对抗更好还是对手也应该是DQN玩家?
1个回答

在两人零和游戏中(如果我赢了,你就输了,反之亦然),那么你可以从自我博弈中学习一个简单而有效的解决方案。

应该如何实施对手以获得良好和快速的改进?

您无需考虑代理人与对手的关系,而是将球员的目标编码为单个 Q 函数。如果玩家 A 获胜,得分 +1,如果玩家 B 获胜,得分 -1,平局得分为零。然后玩家 A 的目标是最大化分数,玩家 B 的目标是最小化分数。

然后,您可以使用 minimax 在同一个自学学习课程和同一个 Q 函数中实施和学习这两种玩家策略。在实践中,这意味着在 Q 学习中,您通常会选择下一个状态的最大化动作来引导 Q 值,在minimax变体中,您根据轮到谁来选择最大化或最小化动作。否则Q学习算法和正常一样。我已经实现了这个,但不是为 DQN 实现的,只是为了表格 Q 学习- 随意学习、复制和/或重用该代码的任何部分。

与随机玩家、完美玩家或对手也应该是 DQN 玩家对抗是否合理?

Q 学习者将学习优化对抗你让它对抗的任何玩家。对抗随机玩家,它不一定会学得好,只要好到足以打败随机性。它甚至可能会故意犯错误——例如没有阻止获胜线——因为随机对手而知道它有更好的获胜机会。

tic tac toe 可以对抗完美的玩家(因为您可以构建这样的玩家),尽管训练的 Q 值可能存在差距 - 游戏状态从未见过 - 这意味着不完美的对手实际上可以击败训练有素的代理!在实践中,这不适用于更复杂的未解决游戏,因为不存在完美的玩家。

另一个 DQN 播放器应该可以正常工作。你最终会得到两个特工,每个特工都专门玩一个玩家的回合。这比单个基于 minimax 的播放器效率低,但没有预期的问题。它可能是某些游戏的首选,尤其是在它们不是零和游戏的情况下。