专家工程师讲解游戏AI:训练一个机器人,让它像人一样打《毁灭战士》

主讲人介绍:葛诚,腾讯互娱专家工程师,曾参与《怪物猎人Online》项目的研发,先后负责过动画、AI、引擎优化等工作,并担任前端主程。现任职于NEXT技术中心,带领团队探索前沿研究,尤其是AI与游戏开发的结合。

这两年,AI掀起了以Deep Learning(深度学习)为核心的变革,Computer Vision、ASR、自然语言处理(如翻译)、机器人、大数据这五个方面受到了最直接的影响。现在,AI开始向各个垂直领域拓展,比如金融、教育、医疗,包括游戏行业。课程将对比分析Academic AI和Game AI的异同,简述本轮AI变革对于Game Dev的影响,并以ViZDoom为例深入讲解增强学习在Game AI决策中的应用。

以下文字为课程节选内容

完整版请点击视频查看

AI对游戏行业的影响

对于游戏行业来说,AI对游戏的影响主要有两方面,一是Experience(体验),另一个是Efficiency(效率)。而AI最直接能提供的一些能力,总结来说有三点,一个是Recognition(识别),第二个是Synthesis (合成),第三个就是Decision Making (决策)。

那么AI的能力怎么样改变我们的体验以及效率呢?比如在体验方面,人像识别、物体识别、物体分割……这些技术被用到了Microsoft HoloLens上面,给大家带来了新鲜的体验。效率方面的变化则更加直接,Super Resolution (超分辨率)就是一个典型的例子:其中的GAN模型可以把一个小分辨率的图像生成大分辨率的图像,并且非常清晰,没有马赛克。在实际应用上,以《王者荣耀》为例,它作为一款手游,游戏的texture(纹理)做得比较小,如果我们想把它推广到海外的steam平台或console平台,就要让这些texture变得更大更清晰。如果我们让美术全部重新画一遍,工作量就会异常庞大,可能要好几个月的时间,但如果用GAN模型,我们就可以直接生成图像。在使用比较好的机器的前提下,一天就可以把所有的texture全部高清化,大大提高了工作效率。

AI方面的新技术不断地涌现和发展,比如Loom.ai的静态照变身技术,可以从一张静态图片中捕捉人物的面部特征。它不仅可以根据一张证件照来生成三维模型,还可以着色,把骨架到皮肤的绑定全部做好。把这个技术应用到游戏中去,比如做社交类游戏,只要有一张照片,玩家就可以让自己的3D形象出现在游戏里,这会是非常有想象空间的一个应用。

ViZDoom竞赛中的AI

ViZDoom竞赛是一项颇有挑战的AI竞赛,仅允许人工智能使用屏幕图像信息进行对战,竞赛主要针对的是机器学习研究,特别是深度强化学习的研究。竞赛分为两个Track:Track1固定地图,固定武器;Track2随机地图,随机武器。规则十分简单:8个Agents在同一场景,进行10分钟的Death Match,至少进行10轮,再根据Frags(=杀敌数量 - 自杀数量)总数定胜负。我们参加了2017年的ViZDoom竞赛,参加的是Track1。

那么,我们是怎么制作这样一个模型,让它像人类一样去打《DOOM》的?这里有两个比较关键的技术,一个是Deep Imitation Learning(模仿学习),第二个就是Deep Reinforcement Learning(强化学习)。这两种技术要解的问题是一样的,都要训练出一个所谓的策略网络,输入一个图像,输出就是具体的按键操作。但不同的是,模仿学习是可以模仿的,开始比较简单;而强化学习不能模仿,开始比较难,但它有一个“指挥棒”叫Reward Function(回报函数),告诉你这个动作是好是坏,因此可以通过一些试错的方式,提升策略网络的准确度。

学术AI与游戏AI的联系和区别

首先看一下Game AI是一个怎么样的问题。比如说《星际》,我们首先有一个大脑,去观测环境,我们要在大脑里生成一个Action Policy进行决策,再把Action输送到环境,并且去影响环境,这个过程就是Game AI Problem。

如果我们要去研究Game AI,首先要把Action Policy分成几类:一类是Fixed Action Policy,这是游戏中最常见的,包括《王者荣耀》里的AI也是Rules Based,就是我们用代码写死的这种AI,这种AI的好处就是可控性非常强;第二类是Less Fixed Action Policy,我们可以用一些Searching Based的方法,比如说像Planner,它更加灵活;第三类是Flexible Action Policy,非常灵活,如果有一些游戏,我们希望它Emergence(浮现性)比较强的话,Machine Learning就能起作用了。后两种其实就是AlphaGo所使用的方法。

对于学术AI和游戏AI的联系,目前基本上是一边倒的情况,学术AI把游戏AI做成一个环境去做研究,比如Board Game里的AlphaGo、腾讯的“绝艺”,这些其实都不是做Game AI,而是在做学术研究,以及RTS Game里比较火的《星际2》、Sports Game里的RobCup竞赛和前面提到的FPS Game里的ViZDoom竞赛,他们都在这方面做了许多工作。反过来,学术AI目前对游戏的影响是比较小的,还属于探索阶段 。

我们这个团队的主要精力就是用来探索这件事情,就是如何将Academic AI用于Game AI?什么样的Game适合用Academic AI?也就是什么样的Game适合用Machine Learning?一般有这几个前提:一个是High Emergence(非常高的浮现性),比如沙盒游戏《Minecraft》就非常适合用Machine Learning的方式来做;另一个是PVP游戏,可以用Imitation Learning或者是Reinforcement Learning把其中的一个人的行为learn出来,然后把它替换掉,替换人就是我们的AI;还有一个是Intuitive Decision-making,就是非常直觉的Decision-making,比如游戏《黑魂》当中背刺时机的AI描述;最后一个是比如AlphaGo面临的围棋、《王者荣耀》的MULTI-AGENT,因为它的Action Space和State Space非常非常大,做搜索是不可能的,需要借助比较先进的Data-Driven,或者自博弈的方式,去进化我们的Boss,这块是非常非常前沿的技术领域。

最后对比一下学术AI与游戏AI的区别:

1、目的不同。游戏AI是为了好玩而聪明,而学术AI是为了聪明而聪明的;

2、用的方法不同。游戏目前主要用的方法还是Rules Based的方法加上一些Heuristic,加上一些启发式的信息,最多就用一些比较简单一点的Planner;而Academic AI现在主流的方法还是Machine Learning;

3、游戏AI是可以Cheating的。我们其实没必要把AI写的那么的复杂,可以通过一些Cheating的方式让AI显得比较聪明,而学术AI是没法Cheating的;

4、游戏AI比较注重Scalable。比如写一套状态机,可以用在各种各样的游戏里,但这对于神经网络来说的话非常困难;

5、游戏里AI的模块所占用的GPU或CPU的时间都是非常有限的,不能太长或太大,而学术AI目前没有这个限制。

更新了微信最新版本的读者,点开订阅号消息后看到的是下图“标题+封面图”的形式,按文章发送的时间排列,之前置顶/标星的公众号就不能直接看到了。

不过大家还是可以点击红框处的按钮,一眼就看到置顶/标星了的公众号了。实在找不到也不要急,可以直接搜索公众号“腾讯游戏学院”。

关注并标星腾讯游戏学院,学习更多游戏知识

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180622A1TO2S00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券