使用强化学习从零开始教计算机玩井字游戏
这篇文章讲什么?
目前,人工智能领域的每个人都在磨练他们的强化学习(RL)技能,特别是在Q学习方面,源自于关于OpenAI新的AI模型Q*的最近传闻,而我也参与其中。然而,我不打算对Q*进行猜测或重新审视Q学习的旧论文和例子,而是决定利用我的对棋盘游戏的热情,给大家介绍一下Q学习的基础知识 🤓
在这篇博文中,我将从零开始创建一个简单的程序,教一个模型如何玩井字游戏(TTT)。我将避免使用任何RL库,如Gym 或Stable Baselines;所有代码都是使用原生Python手动编写的,脚本只有100行。如果你对如何教导AI玩游戏感兴趣,请继续阅读。
你可以在GitHub上找到所有的代码,链接为 https://github.com/marshmellow77/tictactoe-q。
这有什么重要性?
教一个AI玩井字游戏(TTT)可能看起来并不那么重要。然而,这确实提供了一个(希望是)清晰明了的Q学习和RL入门部分,在生成式AI(GenAI)领域可能是很重要的,因为有人猜测,诸如GPT-4这样的独立GenAI模型对于重大进展来说是不够的。它们受限于只能预测下一个令牌,而不能进行任何推理。人们认为RL有望解决这个问题,并可能增强GenAI模型的响应能力。
但不管你是为了期待这些进展而提高你的RL技能,还是只是想要一个有趣的Q学习入门介绍,这篇教程都适合你 🤗
理解Q学习
在本质上,Q学习是一种算法,它学习了一个特定状态下的动作的价值,然后利用这些信息找到最佳动作。让我们考虑冰湖游戏的例子,这是一个常用的用于演示Q学习的单人游戏。