游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4446|回复: 0

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

[复制链接]

8717

主题

8783

帖子

1万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
11952
发表于 2018-6-25 10:10:39 | 显示全部楼层 |阅读模式
“腾讯游戏学院”授权发布

主讲人介绍:葛诚,腾讯互娱专家工程师,曾参与《怪物猎人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全部高清化,大大提高了工作效率。

微信图片_20180625100014.jpg

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

微信图片_20180625100018.jpg

ViZDoom竞赛中的AI


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

微信图片_20180625100021.jpg

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

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


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

微信图片_20180625100023.jpg

如果我们要去研究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,这块是非常非常前沿的技术领域。

微信图片_20180625100024.jpg

最后对比一下学术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目前没有这个限制。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 09:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表