Logo

Menu

使用强化学习训练 Pokémon

Table of Contents

大家好!自 2020 年以来,我们一直在开发一个强化学习 (RL) 智能体来通关 1996 年的游戏《Pokemon Red》。 截至 2025 年 2 月,我们已经能够使用强化学习,以及小于 1000 万参数的策略(比 DeepSeekV3 小 60500 倍),并以最小的简化来击败《Pokemon Red》。 输出不是能够击败 Pokémon 的策略,而是生成 Pokémon 解决方案的技术。本网站介绍了该系统目前的状态。所有代码都是开源的,供您(读者)尝试 GitHub Repo stars 随着代码库的改进,更新日志也会随之更新。

What is Pokémon Red? #

《Pokemon Red》于 1996 年发布,是一款单人日式角色扮演游戏 (JRPG),讲述了一个新的“宝可梦训练师”的旅程。玩家捕捉宝可梦“生物”来与对方的宝可梦战斗,探索世界并完成游戏的故事剧情。《Pokémon》有两个目标:

我们专注于第二个(更受欢迎的)目标,即成为冠军。

Why Pokémon Red #

我们为什么要关心开发一个使用机器学习击败 Pokémon 的智能体?答案实际上更高级。我们相信,使用强化学习解决 JRPG 会带来当前 RL 环境中不存在的极其困难的挑战。我们希望 JRPG 能够为改进 AI 提供一个很好的基准。

在 JRPG 中,《Pokémon》相对容易编程。Pokémon Reverse Engineering Team (PRET) 和 PyBoy Python Gameboy Emulation 项目使得检查游戏并根据需要提取数据变得非常容易。在本网站中,我们将展示许多我们如何利用这些工具进行这项工作的例子。

Why Use RL #

如果我们想用机器学习击败《Pokemon Red》,我们可以采取很多方法。

在考虑的许多方法中,RL 最吸引我们。 RL 的特殊之处在于您收集训练数据的方式。数据几乎总是新鲜的。无需构建复杂的数据收集系统、管理大型数据集或担心数据集是否已过期。如果您可以构建一个可以即时创建新数据的系统,您就可以开始训练。 通过 RL,我们构建了一个带有超小型神经网络且没有预训练的智能体(该智能体实际上是从随机按按钮开始的!),但我们仍然取得了惊人的结果。 Next Page

Authors #

David Rubinstein, Keelan Donovan, Daniel Addis, Kyoung Whan Choe, Joseph Suarez, Peter Whidden

Acknowledgements #

Mads Ynddal #

感谢创建 PyBoy 和他的合作。

Death (PokeRL Discord handle) #

感谢他们花费无数时间制作世界地图素材。

Tina Zhu #

The PokeRL Discord Community #

Join the Discord server! Next Page

Changelog #

March 4, 2025 - v1 #