用Python写出Gameboy模拟器,还能训练AI模型:丹麦小哥的大学项目火了
机器之心机器之心报道机器之心编辑部察觉到运用Atari游戏去开展人工智能的研究, 似乎有着那么些许“不够贴近实际场景氛围”之感么? 此时此刻呀, 我们能够去采用模拟器了。对不少八十年代出生以及九十年代出生的人而言, 任天堂占据了青春相当大的部分。众多我们熟知的游戏最初均搭载于这款八位游戏掌机上诸如声名远扬的《马里奥》、《塞尔达》系列。在国内玩家这里, 玩得最多的当属《口袋妖怪》系列了。这一款游戏机, 从首次发布开始算, 到现在已经过去了 30 年时间段, 然而呢, 人们针对它的那种热情, 却一点都没有减少。就在昨天, 有一款借助编写所弄出来的模拟器, 在社交网络之上, 吸引到了人们的广泛关注。爷的青春回来了作者在 上发出的帖子迅速获得了上千点赞。Mads, 作为该项目的作者之一发出宣告, PyBoy的1.0版正式实现发布。PyBoy 是什么简言之, 它是个Game Boy模拟器, 是完全从头编写的, 还支持通过API编写脚本。研究者添加了类型定义, 使得它能够使用编译软件, 进而获得与用C和C编写的模拟器相匹敌的性能。项目链接特点PyBoy 是这样被设想并设计的, 它是经由特定方式得到访问方面的塑造, 所以它存在支持之态且鼓励人们去开展实验研究, 在机器人以及人工智能这两者进行相关尝试做法时。研究者正着手去构建鉴于游戏而专门设定所形成的包装器, 就目前这种状况而言, 此包装器能够使得程序员与名叫俄罗斯方块以及超级玛丽这般的游戏进行交互, 在交互做这件事的过程里, 并不需要对于 Game Boy 有着深入层次的了解。这里存在一份可供参照的文档:项目的作者有着想要去学习, 并且尝试更多那些奇特功能的想法, 依据大学项目展开的相关研究, 他们给模拟器增添了倒回功能, 这意味着, 在任何一款游戏当中, 您都能够实现时间的倒回。PyBoy 模拟器架构在1990年, 任天堂针对Game Boy去申请了专利, 有一幅图, 它展示了, 在该专利里, CPU、RAM、盒带以及显示屏相互之间的集成, 并且以及它们之间的连接。Game Boy 专利中的架构图。PyBoy项目成员, 基于此, 在其中为每个组件制定类class, 进而在「主机系统」上为「客户系统」搭建基础, 其为系统运行, 该客户系统乃虚拟的Game Boy硬件, 理论上它能够运行为Game Boy编写的方方面面软件部分。下图展示了 PyBoy 模拟器中所有类及其关系PyBoy 对强化学习的意义以及与其他环境的比较过往多年间, 存在着许多人员开展过模拟器的开发工作, 当下于电脑以及手机之上均存有能够予以运行的工具, 然而为何要借助其来进行一款的书写呢, 当然是为了运用其对人工智能实施训练的事项了。想打游戏 对于现在的人来说恐怕有点「难以上手」。最接近通用人工智能的方法——强化学习通用人工智能这个概念所指的是, 机器能够成功达成任意一项人类能够做到的智力方面的任务, 当下我们对于AI的研究, 距离这个目标还差着很远的距离, 吴恩达以往就曾表示过, 深度学习做的仅仅是高维的「curve」。不同于那些借助预先收集数据进行训练, 甚至还得大量人工标记才能运行的机器学习算法, 强化学习, 是一种仅凭借环境奖赏来开展训练的算法, 它的工作机制, 类似人体内部的多巴胺系统, 强化学习, 是当前最接近人类从经验里学习这种能力的机器学习算法, 特殊适用于智能体得依据其所处环境来做决策的情景。该图呈现这样的情形, RL 智能体凭借游戏图像充当输入, 进而开展学习马里奥控制策略的相关操作。凭什么, 好多好多跟RL有关的研究, 统统都在Atari那儿开展, 却不在别的, 那些更具实际意义的问题上面搞, 对?针对于RL这项研究当中, 涉及采取Atari用作基准的此种情况, 其背后致使的具体缘由, 大体上呈现出像下面所讲述的这样几项要点:Atari环境可使我们运用相同算法去测试多个各异的环境, 以此验证RL算法的通用性。由于输入仅为游戏图像增加了问题的复杂性Atari给研究人员提供了一个被公认的测试平台, 该平台能比较相对公平地不同算法之间的性能。RL进行学习需要大量的交互数据, 在真实环境中实际测试以前, Atari为算法的初期验证提供了一个测试平台, 这个测试平台安全、快速、低成本。下图为一些 Atari 环境的展示Atari、PySC2 之类环境与 PyBoy 对比上一个小节详细讲述了于Atari环境之中开展训练时RL智能体所具备的众多优势, 可是随着RL不断地进行发展, 这样一处相比较而言较为简单的环境慢慢地就不再能够适合当下全新的RL研究了。没过多久之前, 由相关方面所提出问世的处于所有Atari环境里其表现全都超越了人类玩家平均水平的一种情况, 也同样暗示着在Atari环境之上而开展的RL研究渐渐地就要步入结束阶段了。有在诸如与暴雪合作的PySC2这样更困难的环境里, 此环境需要智能体学会复杂的协同策略以及对抗策略。尽管它在这一环境中取得了令人极为瞩目的成果, 然而却依旧存在着许多迫切地需要去解决的问题。以下是PySC2环境示意图。PyBoy环境拥有如此程度的难度, 其程度处于Atari和PySC2两者之间, 它能够给予我们一个进行验证 的全新基准, 这个基准是关于RL性能方面的。在把RL应用到更为复杂的实际问题之前, 存在这样一种情况, 我们能够先在这样一种难度适度的环境里展开低成本且高效的测验。像特斯拉人工智能那里的, 自动驾驶视觉总监所讲那般, 说到, “One try a BB gun for the.”。介绍如何安装假设已然配备了一个能够顺利运转的环境, 那么开展安装将会极为简便:借助软件包管理器来尝试安装SDL2, 使用的方法是sudo apt -dev, 或者是brew sdl2。使用 pip pyboy 安装 Pyboy在终端, 能够直接运用 PyBoy 通过 $ pyboy file.rom 这种方式, 或者可于脚本之时采用相应办法。源于“pyboy”, 等于“PyBoy(ROMs/.gb)”。当并非“pyboy.tick()”的时候, 就处于“通过”的状态。该项目对macOS予以支持, 给予Pi支持, 为Linux给予支持 , 同时也支持10点之处 , 且是同时进行的。PyBoy API 文档要是用户有创建属于自身的机器人或者是 AI 的需求, 能够在 PyBoy寻觅到全部用来支持的外部组件, 其中各类及其使用方法极为详尽, 此处不再逐个叙述。如下图示结构索引简短示例PyBoy能够当作其中的对象予以加载, 所以它可从另外一个脚本展开初始化, 并且能够被该脚本操控以及探测。瞧一瞧那个在.py上较为粗糙的「机器人」, 正与游戏开展交互。当然啦, 所有的外部组件均可于PyBoy文档当中寻觅到。一般的Game Boy文档, 可查看Pan Docs, 它里面含有每个主题的详尽信息。如下示例乃是关于从屏幕提取数据的简短呈现, 此代码此外在.py当中能够寻觅到:pyboy, PyBoy , #使得我们能够从os.path.(os.path.())sys.path.(0, /..)获取PyBoy , #检查是否给出了ROM , 如果len(sys.argv) 1: , 则sys. , 打印(Usage:.py), 然后退出(1)。这似乎并不是一个规范的可理解的句子结构, 原内容较为混乱且不符合正常语法表达规则, 难以依照要求准确改写。也许你可以检查并修正原始句子, 以便能得到更合适的改写结果。这个句子似乎存在语法错误, 不太能准确理解其确切含义, 难以按照要求进行改写。在纠正错误并清晰表述后, 可再为你继续进行改写相关操作。mario.() mario. 2pyboy.stop()倘若你于加载了Super Mario Land ROM这个状况下运行上述代码了的话, 那么就在下面会得到图片以及终端输出。需要留意的是, Mario的形态被显示为索引0, 1, 16, 17。作者简介Asger Lund、Mads是该项目的作者, 他们都来自丹麦, 其中毕业于丹麦哥本哈根大学的Mads表示, 实际上这个模拟器能追溯到2015年他在大学时的项目。模拟器1.0版已发布啦, 然而对于开发者来讲, 仍存在诸多事宜可供去做。项目研发者宣称, 当下能够推进的方向涵盖于模拟器增添声音、彩色、模拟连线, 以及对更多游戏进行封装, 当然也包含在其之上训练神经网络的示例。期望于众人的奋力付出之下, 其中的游戏亦能够再度焕发出蓬勃生机。更为关键的是, 它当下居然拥有了用以训练人工智能的使命。在机器之心 CVPR 2020 线上分享的首期, 咱们邀请了来自北京大学智能科学系的陈汉亭, 其为论文一作, 来给咱们分享主题是《加法神经网络: 在深度学习里我方是否真的需要乘法? 》, 欢迎读者报名去学习。

相关新闻

2026实测8款自动朗读器 免费额度从0字到120000字 哪款日常够用

2026实测8款自动朗读器 免费额度从0字到120000字 哪款日常够用

简短结论 本次实测8款自动朗读器,免费额度从0字到120000字不等,轻度日常需求大部分带免费额度的产品都能覆盖,不需要额外付费。不同工具定位差异大,针对内容创作者整理音视频、职场人整理会议的需求,听脑AI更适合处理会…

2026/9/24 18:11:28 阅读更多 →
CPU、GPU与CUDA:从架构原理到实战优化的异构计算指南

CPU、GPU与CUDA:从架构原理到实战优化的异构计算指南

1. 从“单打独斗”到“团队协作”:计算世界的角色分工如果你最近在折腾深度学习、AI画图,或者玩一些3A大作时,大概率会碰到“CUDA”、“GPU加速”这些词。电脑卡了,任务管理器里一看,CPU可能闲得要命,GPU却…

2026/9/25 2:48:23 阅读更多 →
从Claude Fable 5下架看大模型越狱攻击:原理、危害与防御实战

从Claude Fable 5下架看大模型越狱攻击:原理、危害与防御实战

1. 从Claude Fable 5下架说起:一个被忽视的行业警报最近,AI圈子里发生了一件不大不小的事:Anthropic公司旗下的Claude Fable 5模型被悄然下架了。如果你不是深度用户,可能压根没注意到这个模型的存在,更别提它的消失了…

2026/9/23 8:51:43 阅读更多 →

最新新闻

Moto CodeBuild 模拟实战:在测试中 Mock AWS CodeBuild 项目与构建 API

Moto CodeBuild 模拟实战:在测试中 Mock AWS CodeBuild 项目与构建 API

Mock测试 【免费下载链接】moto A library that allows you to easily mock out tests based on AWS infrastructure. 项目地址: https://gitcode.com/gh_mirrors/mo/moto 点击查看 免费下载 本篇技术指南围绕 moto 仓库中 CodeBuild 服务文档 展开,系统…

2026/9/25 3:31:50 阅读更多 →
并行加法器 vs 先行进位加法器:进位延迟、关键路径与工程实现

并行加法器 vs 先行进位加法器:进位延迟、关键路径与工程实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 3:31:50 阅读更多 →
grammars-v4 中 R 语言 ANTLR 语法解析指南:掌握 RFilter 换行符预处理机制

grammars-v4 中 R 语言 ANTLR 语法解析指南:掌握 RFilter 换行符预处理机制

编程语言编译器开发工具 【免费下载链接】grammars-v4 Grammars written for ANTLR v4; expectation that the grammars are free of actions. 项目地址: https://gitcode.com/gh_mirrors/gr/grammars-v4 点击查看 免费下载 导读 在 grammars-v4 仓库的 r 目录下&…

2026/9/25 3:31:50 阅读更多 →
VoltAgent 接入 Deep Infra:使用 `deepinfra/<model>` 模型路由打通低成本高性能推理

VoltAgent 接入 Deep Infra:使用 `deepinfra/<model>` 模型路由打通低成本高性能推理

人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆 【免费下载链接】voltagent AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework 项目地址: https://gitcode.com/gh_mirrors/vo/voltagent 点击查看 免费下载 De…

2026/9/25 3:31:50 阅读更多 →
用 ANTLR v4 解析 Scala 3:grammars-v4 中 Scala3 语法的设计、覆盖率与已知限制

用 ANTLR v4 解析 Scala 3:grammars-v4 中 Scala3 语法的设计、覆盖率与已知限制

编程语言编译器开发工具 【免费下载链接】grammars-v4 Grammars written for ANTLR v4; expectation that the grammars are free of actions. 项目地址: https://gitcode.com/gh_mirrors/gr/grammars-v4 点击查看 免费下载 本文面向需要为 Scala 3 构建词法/语法分…

2026/9/25 3:31:50 阅读更多 →
Java工业物联网IOT驱动包:统一Modbus-TCP、Bacnet与OPC-UA协议接入

Java工业物联网IOT驱动包:统一Modbus-TCP、Bacnet与OPC-UA协议接入

简介:这份基于Java的物联网IOT通用驱动包设计源码,面向中高级Java开发者与系统集成商,解决Modbus-TCP、Bacnet、OPC-UA等多协议设备接入问题,封装为SDK形式,可直接嵌入业务系统。压缩包共76个文件,约1.73MB…

2026/9/25 3:30:49 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →