晓查 发自 凹非寺 量子位 报道 | 公众号 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/
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
,