我将在明年开展一个项目,创建一个自学 AI 来玩赛车游戏,目前游戏将是 Mario Kart 64。
我有几个问题希望能帮助我入门:
- 人工智能的哪些方面最适用于为赛车游戏创建自学游戏人工智能(Q-Learning、NEAT 等)
- 已经学会玩马里奥赛车 64 的 ANN 或 NEAT 可以用来学习玩其他赛车游戏吗?
- 我应该阅读哪些书籍/材料来进行这个项目?
- 在整个项目中我还应该考虑哪些其他因素?
谢谢您的帮助!
我将在明年开展一个项目,创建一个自学 AI 来玩赛车游戏,目前游戏将是 Mario Kart 64。
我有几个问题希望能帮助我入门:
谢谢您的帮助!
人工智能的哪些方面最适用于为赛车游戏创建自学游戏人工智能(Q-Learning、NEAT 等)
一般来说,您正在研究一个涉及顺序决策的问题,在机器学习环境中。
如果您想构建一个可以通过接收屏幕图像来学习的代理,那么 NEAT 无法直接扩展到这种复杂性。尽管您可以应用深度学习和进化算法的巧妙组合,但在深度强化学习中将找到最深入探索和可能成功的解决方案。DQN、A3C、A2C、PPO 等算法。. . 有几十个需要考虑,但所有这些都是基于代理使用经验样本来更新衡量以某种方式(策略)行事的“价值”或直接估计最佳策略的函数。
已经学会玩马里奥赛车 64 的 ANN 或 NEAT 可以用来学习玩其他赛车游戏吗?
在限度内,是的。您将构建一个接受像素输入并输出控制器消息的系统。如果您在任何兼容的 N64 游戏(具有相同的屏幕分辨率和相同的控制器输出)上从头开始重新开始训练,它就有机会学会玩好新游戏。由于 N64 上的其他驾驶游戏是所有游戏的子集,并且比滚动射击游戏或冒险游戏更相似,因此能够成功学习一个的代理也可能学习另一个。
马里奥赛车经纪人不太可能在没有重新培训的情况下立即擅长另一场比赛。视觉和控制差异可能会太大。不过你可以试试。一个有趣的实验是让你训练有素的代理,或者它的一部分,看看从这开始是否会缩短新游戏的学习时间。这称为迁移学习。
我应该阅读哪些书籍/材料来进行这个项目?
您至少需要介绍强化学习的第一部分。如果你的目标是只做代理,那么你可以跳过理论重的部分,但在有限的范围内你理解的理论越多,就越容易改变代码特性以使某些东西工作。我可以提出以下建议:
Sutton & Barto, Reinforcement Learning: An Introduction这本书涵盖了基本 RL 背后的理论,在线草稿是免费的
来自伦敦大学学院的强化学习讲座课程,由 David Silver 撰写。视频讲座涵盖与 Sutton & Barto 书籍相同的主题。
这本书深度强化学习动手,你需要购买。正如标题所示,它涵盖了构建 RL 系统的更多实际方面。它使用 Python 和 PyTorch。随着 RL 近年来越来越流行,还有很多其他类似的书——我没有理由向他们推荐这本,但我现在正在阅读它,而且质量已经足够了。
在整个项目中我还应该考虑哪些其他因素?
在开始之前,您应该知道这可能是一个雄心勃勃的项目,使用当前可用的工具包需要大量的计算时间。您需要提前考虑一下,因为您将面临以下决定:
另外,我可以想到以下几点:
打造您的马里奥赛车玩家是一个长期目标。您需要从更简单的代理开始,以了解您希望应用于马里奥赛车的技术。
您可能需要比您现有的更多的计算能力来解决这个游戏。
您将需要解决 N64 仿真器的自动控制问题。至少有一个现有的模拟器Mupen64Plus - 我不知道它是否适合你,但至少有人试图在gym-mupen64plus 项目中包装它以进行自动学习。