「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了


机器之心报道
机器之心编辑部
感觉用 Atari 游戏研究人工智能有点「不够接地气」?现在我们可以使用 Gameboy 模拟器了 。
「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了
本文插图

对于很多 80 后、90 后来说 , 任天堂 Gameboy 代表了青春的很大一部分 。 很多我们耳熟能详的游戏都是最初搭载在这款 8 位游戏掌机上的 , 包括鼎鼎有名的《马里奥》、《塞尔达》系列 。 对于国内玩家来说 , 我们玩得最多的则应该是《口袋妖怪》系列了 。
「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了
本文插图

这款游戏机距离首次发布已过去了 30 年时间 , 不过人们对于它的热情却丝毫不减 。 昨天 , 一款利用 Python 编写的 Gameboy 模拟器在社交网络上吸引了人们的广泛关注 。
「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了
本文插图

爷的青春回来了?作者在 Reddit 上发出的帖子迅速获得了上千点赞 。
该项目的作者之一 Mads Ynddal 宣布 , PyBoy 的 1.0 版正式发布 。
PyBoy 是什么?
「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了
本文插图

简而言之 , 它是一个完全用 Python 从头开始编写的 Game Boy 模拟器 , 并且支持通过 API 编写脚本 。 研究者添加了类型定义 , 使其可以使用 Cython 编译软件 , 从而获得与用 C 和 C++编写的模拟器相媲美的性能 。
项目链接:https://github.com/Baekalfen/PyBoy
特点
PyBoy 被设计成通过 Python 访问 , 因此支持并鼓励人们做实验研究 , 机器人和人工智能在作此尝试 。 研究者正在构建游戏特定的包装器 , 目前 , 包装器可让程序员与俄罗斯方块和超级玛丽进行交互 , 而不需要对 Game Boy 有深入的了解 。 可以参考该文档:https://docs.pyboy.dk 。
项目作者还想学习和尝试更多奇特的功能 , 根据大学项目的研究 , 他们向模拟器添加了倒回功能 , 也就是说 , 您可以在任何游戏中倒回时间 。
PyBoy 模拟器架构
1990 年 , 任天堂为 Game Boy 申请了专利 。 下图展示了该专利中 CPU、RAM、盒带和显示屏之间的集成与连接 。
「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了
本文插图

Game Boy 专利中的架构图 。
PyBoy 项目成员基于此在 Python 中为每个组件制定类(class) , 从而在「主机系统」上为「客户系统」搭建了基础(系统运行 Python) 。 该客户系统就是虚拟的 Game Boy 硬件 , 理论上它能够运行为 Game Boy 编写的每一个软件部分 。
下图展示了 PyBoy 模拟器中所有类及其关系:
「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了
本文插图

PyBoy 对强化学习的意义以及与其他环境的比较
这些年来 , 已有很多人开发过 Gameboy 模拟器 , 现在的电脑和手机上都有可运行的工具 。 为什么要用 Python 来写一款呢?当然是用来训练人工智能的 。
「」用Python写Gameboy模拟器,还能训练AI模型:丹麦小哥大学项目火了
本文插图
想打游戏?Gameboy 对于现在的人来说恐怕有点「难以上手」 。
最接近通用人工智能的方法——强化学习
通用人工智能这一概念指的是机器能够成功完成任意一件人类能够做到的智力型任务 。 目前我们对 AI 的研究距离这一目标还差很远的距离 , 吴恩达之前就表示过 , 深度学习做的仅是高维的「curve fitting」 。
不同于那些依靠预先收集数据(甚至需要大量人工标记)的机器学习算法 , 强化学习是一种仅通过环境奖赏进行训练的算法 , 其工作机制类似于人体内部的多巴胺系统 。 强化学习是目前最接近于人类从经验中学习这一能力的机器学习算法 , 尤其适用于智能体需要根据其所处环境进行决策的情景 。


推荐阅读