⽤深度强化学习玩atari游戏_⽤Python写出了⼀个Gameboy模
拟器
优质⽂章,第⼀时间送达!
感觉⽤ Atari 游戏研究⼈⼯智能有点「不够接地⽓」?现在我们可以使⽤ Gameboy 模拟器了。
作者:机器之⼼编辑部
对于很多 80 后、90 后来说,任天堂 Gameboy 代表了青春的很⼤⼀部分。很多我们⽿熟能详的游戏都是最初搭载在这款 8 位游戏掌机上的,包括⿍⿍有名的《马⾥奥》、《塞尔达》系列。对于国内玩家来说,我们玩得最多的则应该是《⼝袋妖怪》系列了。
这款游戏机距离⾸次发布已过去了 30 年时间,不过⼈们对于它的热情却丝毫不减。昨天,⼀款利⽤ Python 编写的 Gameboy 模拟器在社交⽹络上吸引了⼈们的⼴泛关注。
爷的青春回来了?作者在 Reddit 上发出的帖⼦迅速获得了上千点赞。
该项⽬的作者之⼀ Mads Ynddal 宣布,PyBoy 的 1.0 版正式发布。
PyBoy 是什么?
简⽽⾔之,它是⼀个完全⽤ Python 从头开始编写的 Game Boy 模拟器,并且⽀持通过 API 编写脚本。研究者添加了类型定义,使其可以使⽤ Cython 编译软件,从⽽获得与⽤ C 和 C++编写的模拟器相媲美的性能。
特点
项⽬作者还想学习和尝试更多奇特的功能,根据⼤学项⽬的研究,他们向模拟器添加了倒回功能,也就是说,您可以在任何游戏中倒回时间。
PyBoy 模拟器架构
1990 年,任天堂为 Game Boy 申请了专利。下图展⽰了该专利中 CPU、RAM、盒带和显⽰屏之间的集成与连接。
Game Boy 专利中的架构图。
PyBoy 项⽬成员基于此在 Python 中为每个组件制定类(class),从⽽在「主机系统」上为「客户系统」搭建了基础(系统运⾏ Python)。该客户系统就是虚拟的 Game Boy 硬件,理论上它能够运⾏为 Game Boy 编写的每⼀个软件部分。
下图展⽰了 PyBoy 模拟器中所有类及其关系:
PyBoy 对强化学习的意义以及与其他环境的⽐较
python在线模拟器这些年来,已有很多⼈开发过 Gameboy 模拟器,现在的电脑和⼿机上都有可运⾏的⼯具。为什么要⽤ Python 来写⼀款呢?当然是⽤来
训练⼈⼯智能的。
想打游戏?Gameboy 对于现在的⼈来说恐怕有点「难以上⼿」。
最接近通⽤⼈⼯智能的⽅法——强化学习
通⽤⼈⼯智能这⼀概念指的是机器能够成功完成任意⼀件⼈类能够做到的智⼒型任务。⽬前我们对 AI 的研究距离这⼀⽬标还差很远的距
离,吴恩达之前就表⽰过,深度学习做的仅是⾼维的「curve fitting」。
不同于那些依靠预先收集数据(甚⾄需要⼤量⼈⼯标记)的机器学习算法,强化学习是⼀种仅通过环境奖赏进⾏训练的算法,其⼯作机制类似
于⼈体内部的多巴胺系统。强化学习是⽬前最接近于⼈类从经验中学习这⼀能⼒的机器学习算法,尤其适⽤于智能体需要根据其所处环境进
⾏决策的情景。
下图展⽰了 RL 智能体是如何仅以游戏图像作为输⼊,来学习马⾥奥控制策略的。
为什么⼤量关于 RL 的研究都在 Atari 上进⾏,⽽不是其他更实际的问题?
关于 RL 的研究使⽤ Atari 作为基准的原因主要有如下⼏点:
1. Atari 环境能够让我们使⽤相同的算法测试多个不同的环境,验证 RL 算法的通⽤性;
2. 由于输⼊仅为游戏图像,增加了问题的复杂性;
3. Atari 为研究⼈员提供了⼀个公认的测试平台,能够较为公平地⽐较不同算法之间的性能;
4. RL 需要⼤量的交互数据进⾏学习,在真实环境中实际测试之前,Atari 为算法的初期验证提供了⼀个安全、快速、低成本的测试平
台。
下图为⼀些 Atari 环境的展⽰:
Atari、PySC2 之类环境与 PyBoy 对⽐
上⼀⼩节介绍了在 Atari 环境中训练 RL 智能体的诸多优势,然⽽随着 RL 的发展,这⼀相对较简单的环境逐渐不再适⽤于⽬前新的 RL 研究。不久之前,由 DeepMind 提出的 Agent57 在所有 Atari 环境中表现均超越了⼈类玩家平均⽔平,也预⽰着在 Atari 环境上的 RL 研究逐渐进⼊尾声。
更困难环境有诸如 DeepMind 与暴雪合作的 PySC2,需要智能体学会复杂的协同、对抗策略。虽然 AlphaStar 在这⼀环境中取得了令⼈瞩⽬的成果,但仍存在很多亟待解决的问题。以下为 PySC2 环境⽰意图。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论