「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了( 二 )
下图展示了 RL 智能体是如何仅以游戏图像作为输入 , 来学习马里奥控制策略的 。
本文插图
为什么大量关于 RL 的研究都在 Atari 上进行 , 而不是其他更实际的问题?
关于 RL 的研究使用 Atari 作为基准的原因主要有如下几点:
Atari 环境能够让我们使用相同的算法测试多个不同的环境 , 验证 RL 算法的通用性;
由于输入仅为游戏图像 , 增加了问题的复杂性;
【「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了】Atari 为研究人员提供了一个公认的测试平台 , 能够较为公平地比较不同算法之间的性能;
RL 需要大量的交互数据进行学习 , 在真实环境中实际测试之前 , Atari 为算法的初期验证提供了一个安全、快速、低成本的测试平台 。
下图为一些 Atari 环境的展示:
本文插图
Atari、PySC2 之类环境与 PyBoy 对比
上一小节介绍了在 Atari 环境中训练 RL 智能体的诸多优势 , 然而随着 RL 的发展 , 这一相对较简单的环境逐渐不再适用于目前新的 RL 研究 。 不久之前 , 由 DeepMind 提出的 Agent57 在所有 Atari 环境中表现均超越了人类玩家平均水平 , 也预示着在 Atari 环境上的 RL 研究逐渐进入尾声 。
更困难环境有诸如 DeepMind 与暴雪合作的 PySC2 , 需要智能体学会复杂的协同、对抗策略 。 虽然 AlphaStar 在这一环境中取得了令人瞩目的成果 , 但仍存在很多亟待解决的问题 。 以下为 PySC2 环境示意图 。
本文插图
PyBoy 环境的难度可以说介于 Atari 与 PySC2 之间 , 它为我们提供了一个验证 RL 性能的新基准 。 在将 RL 应用于更复杂的实际问题之前 , 我们可以先在这一难度适中的环境中进行低成本、高效的测试 。
就像特斯拉的人工智能和自动驾驶视觉总监 Andrej Karpathy 说的 , 「One should always try a BB gun before reaching for the Bazooka.」
Github 介绍
如何安装?
如果已经配置了一个能够正常运行 Python 的环境 , 那么安装会非常简单:
通过软件包管理器安装 SDL2(sudo apt install libsdl2-dev 或是 brew install sdl2)
使用 pip install pyboy 安装 Pyboy
可以直接从终端 $ pyboy file.rom 使用 PyBoy 或者在 Python 脚本中使用:
from pyboy import PyBoypyboy = PyBoy('ROMs/gamerom.gb')while not pyboy.tick(): pass
该项目同时支持 macOS, Raspberry Pi (Raspbian), Linux (Ubuntu), 以及 Windows 10.
PyBoy API 文档
如果用户需要创建一个自己的机器人或者是 AI , 可以在 PyBoy Documentation (https://baekalfen.github.io/PyBoy/index.html) 找到所有用以支持的外部组件 , 其中各种类及其用法都非常详细 , 这里不再一一赘述 。 (如下图结构索引)
本文插图
简短示例
PyBoy 可以作为 Python 中的对象加载 。 所以它可以从另一个脚本进行初始化 , 并可以由该脚本控制和探测 。 看一下 gamewrapper_tetris.py 上一个粗糙的「机器人」 , 正在与游戏进行交互 。 当然 , 所有的外部组件都可以在 PyBoy 文档中找到 。
对于一般的 Game Boy 文档 , 可以查看 Pan Docs , 其中包含了每个主题的详细信息 。
以下是从屏幕读取数据的简短演示 , 该代码也可以在 gamewrapper_mario.py 中找到:
推荐阅读
- 语言最红语言Python跌落榜三,Rust最受喜爱!Stack Overflow 2020报告出炉
- CSDN|儿童节教你用 Python 画出童年回忆
- 新智元|机器学习团队常用工具总结,人生苦短,我用Python!
- 工具机器学习团队常用工具总结,人生苦短,我用Python!
- |从Excel中解救你!如何用Python实现报表自动化
- 不正经d玩家|2020 开发者调查:TypeScript 最受欢迎击败 Python,Scala 最赚
- cnBeta|微软飞行模拟器1.3.11.0今日发布 邀请更多玩家参与
- 千锋上海|学习Python语言具应用领域有哪些?
- 自己动手「焊」键盘,使用Python编写,一键放连招不在话下
- 外挂风险环境和外挂类型关系密切 加速器外挂在模拟器环境里最多
