观看5万个游戏视频后,英伟达AI学会了自己开发「吃豆人」

今天是吃豆人40岁生日

晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI

AI学会玩游戏已经不是什么新鲜事了,无论是星际争霸还是王者荣耀,AI的水平都已经超过了顶级选手。

现在,AI不仅能玩游戏,还学会了造游戏。

在观看了5万个的吃豆人(Pac-Man)游戏视频后,英伟达的AI终于自己“山寨”了一个,而且事先没有看过一行原始游戏代码。

来自英伟达的研究人员说:通过观察细节,AI学会了规则。

这些细节包括:吃豆人的速度、移动能力;四个鬼魂的运动方式;吃豆人吃下大力丸会怎样;当鬼魂碰到吃豆人时,会发生什么。

知道这些细节后,AI完成了逆向工程,从中悟出了游戏逻辑,有模有样地仿制出来:

英伟达这个逆向游戏的AI叫GameGAN,顾名思义,就是用来生成游戏的GAN。GAN之前的用途主要是生成图片。

5月22日是吃豆人这款游戏的40岁生日,英伟达在这一天推出GameGAN,是和吃豆人的游戏开发商万代南梦宫合作的纪念活动。

GameGAN制造的游戏,连万代南梦宫工程师堤光一郎看到后都大吃一惊:“很难想象这是在没有游戏引擎的情况下重新创造出吃豆人。”

不知道这位游戏开发者会不会有某一天被AI替代的恐惧。

英伟达是如何做到的

GameGAN在训练过程中会读取游戏画面和键盘操作,通过限制操作(如玩家按下的按钮)来预测下一帧。它直接利用图像和动作对进行学习,而无需访问底层的逻辑或引擎。

解码器要学习如何解开帧中的静态和动态分量,从而使GameGAN的行为更易于解释。

要做到这一点,研究人员需要克服巨大的设计挑战,要让模拟物理引擎并保持长期一致性(保证模拟场景不随事件编号),还必须确保GameGAN在创建游戏过程中模拟的可预测性与随机性(在一定规则内设计出不同关卡)。

GameGAN由3个部分组成:记忆模块,动力学引擎和渲染引擎。

动力学引擎负责了解在游戏环境中哪些行为是“不允许的”(比如吃豆人无法穿墙而过),并负责对行为结果的反应方式进行建模。

内存模块负责建立长期一致性,让模拟场景不会随时间而变化,这部分是通过“记住”每个生成的场景来实现的。

渲染引擎负责渲染给定对象和属性贴图的模拟图像,并通过遮挡对象自动考虑深度。

GameGAN是生成对抗网络,当然也会有生成器和鉴别器,在这套模型中,系统尝试“欺骗”鉴别器来生成逼真的、连贯的游戏。鉴别器有三个:单图像鉴别器,行动条件鉴别器和时间鉴别器。

训练GameGAN的游戏数据由万代南梦宫提供,包括5万个游戏视频,总共有几百万帧。为了训练AI,英伟达的研究人员动用了4台DGX系统,每台均配备了Quadro GV100工作站级GPU。

英伟达并未透露训练时间,但是可以预测训练费用一定不菲。

训练AI的硬件

Nvidia的最新实验以类似的方式开始,因为其AI研究团队在50,000小时的“ 吃豆人”游戏中训练了四台计算机场(每台计算机均配备了Quadro GV100工作站级GPU)。

在实验中,Nvidia团队在四天内为GameGAN提供了50,000集(共几百万帧)的《吃豆人》

不仅仅是吃豆人

除了吃豆人外,英伟达还在Doom的基础上开发出了另一款《毁灭战士》。

比吃豆人负责的是,毁灭战士是一款3D游戏,GameAI还需要处理游戏前景和背景的遮挡关系。

当然,无论是吃豆人还是毁灭战士,英伟达GameGAN生成的画面都比较粗糙。研究人员承认现有模型存在着保真度问题。GameGAN生成的吃豆人游戏最大可达到128×128像素的分辨率,每秒约50帧。

但是这项技术有希望帮助游戏开发者加快开发新关卡、角色甚至代替部分游戏的创作过程。

对于一些用户可以自定义的游戏,比如《超级马里奥创造家》,AI是不是可以帮我们设计一下关卡呢?

传送门

论文地址:

https://cdn.arstechnica.net/wp-content/uploads/2020/05/Nvidia_GameGAN_Research.pdf

项目主页:

https://nv-tlabs.github.io/gameGAN/

版权所有,未经授权不得以任何形式转载及使用,违者必究。