通过两人游戏中的自玩游戏来提高Q学习代理的性能(MCTS?)[关闭]

问题描述 投票:0回答:1

我正在使用Q学习(第131页的Sutton's book中指定的非政策性TD-控件)来训练一个业务代表玩连接四。我的目标是纯粹通过自我游戏来创造强大的玩家(超人性能?),而无需针对外部获得的其他特工进行训练。

我正在使用具有一些卷积层和几个完全连接的层的神经网络体系结构。这些令人惊讶地有效地训练了他们的对手,他们是一个随机的玩家,或者是之前通过Q学习训练过的另一个特工。不幸的是,由此产生的模型不能很好地推广。 5000个情节似乎足以对每个对手获得高(> 90%)的获胜率,但是在> 20 000个情节之后,它们仍然很容易被我自己击败。

为了解决这个问题,我现在训练一批模型(每批约10个模型),然后将其作为新对手分组使用,即:

  • 我针对完全随机的代理训练了一批模型(我们称它们为第一代)
  • 然后我训练第二代特工对抗第一代特工
  • 然后我训练第三代对抗第二代
  • ...

到目前为止,这有助于创建稍微更强/更通用的连接四模型,但是改进并不如我所希望的那样好。仅仅是训练足够的模型/代数,还是有更好的方法将Q学习与自学结合使用?

我知道最成功的技术(例如alpha零)依赖于MCTS,但我不知道如何将其与Q学习相结合? MCTS如何帮助解决模型的泛化问题?

感谢您的帮助!

machine-learning reinforcement-learning q-learning connect-four
1个回答
0
投票

Q学习定义为无模型的强化学习算法。 Q学习的目标是学习策略,该策略告诉代理在什么情况下要采取什么行动。它不需要环境模型(因此具有“无模型”的含义),并且可以处理随机过渡和奖励问题,而无需进行适应。”

简而言之,您要做的是维护一个q表(保持状态和过渡对的奖励),您与一个随机玩家(总是随机选择)或任何玩家对战,并在继续进行时更新q表直到终端状态。重复此操作进行一些迭代[〜10 ^ 5],然后您将获得一个最终的q表,可以将其用于操作。

[kaggle正在进行connect-x竞赛,提供了许多好的解决方案。因此,它可能是一个很好的参考:https://www.kaggle.com/c/connectx/overview/description

特别看一下此笔记本[上述想法的示例实现]:https://www.kaggle.com/phunghieu/connectx-with-q-learning

此外,请查看这些学习资源,它们可能会很有用。 https://www.kaggle.com/learn/intro-to-game-ai-and-reinforcement-learning

[此资源讨论了不同的技术,例如最小-最大算法和alpha-beta修剪以及deep-q学习,每种技术都是有效解决问题的技术。

© www.soinside.com 2019 - 2024. All rights reserved.