王亮:游戏AI探索之旅——从alphago到moba游戏

演讲嘉宾:王亮,腾讯AI高级研究员。2013年加入腾讯,从事大数据预测以及游戏AI研发工作。目前主要从事MOBA类游戏AI相关的研发工作。

img

今天分享的课题是游戏AI探索之旅。本次分享分为四部分,第一部分,什么是游戏AI,游戏AI为什么对现在的游戏非常重要;第二部分,业界和工业界对于做游戏AI主要的方法,以及现在业界一些主流的游戏上的进展。第三部分,结合基于公司自有的MOBA游戏,分享一下我们做的一些探索研究及现在的进展;第四部分,会简单介绍一下基于深度学习方法来做游戏AI,对于游戏开发者来说需要提供哪些环境便于AI的开发。希望通过今天的分享能给大家之后工作或者接下来学习上带来一些的启发和思考。

什么是游戏AI,对于游戏开发者而言是要增进用户体验,提升游戏玩家的活跃度,方法主要是基于一些人工规则的方式。而对于学术界来说目标是最大化赢的概率,而现在主要是基于学习的方法。

几乎每款游戏都有自己的游戏AI。棋牌类的(深蓝、Alphago)、体育类的足球篮球、角色扮演类游戏……越复杂的游戏对AI的依赖程度越高。AI在游戏中常用的方式:人机对战:AI为游戏提供一种玩法,玩家可以选择与游戏AI对战去熟悉游戏;平衡性测试:辅助游戏设计开发,如:游戏数值改变,AI可以用于验证测试数值变化带来的影响;对于射击类的游戏,AI可以用于探索地图的探索等。

img

通用的游戏AI的设计,包含三部分: 感知系统、决策系统、导航系统;游戏AI的决策操作基于一定的时间粒度进行循环工作。

img

接下来介绍一下常用的游戏AI方案,游戏AI常用方法分为三类:1) 工业界常用的行为树、有限状态机及势力图,优点:实现逻辑清晰,不足:固定逻辑执行,容易被玩家识破,复杂逻辑难实现; 2) search方法,常用的方法:遗传算法、蒙特卡洛搜索树方法等; 3) 基于learning的方法: 监督学习算法、强化学习算法;

img

监督学习算法:基于训练数据,难点是抽象状态环境以及执行操作Action,通常Action的定义直接影响模型的上限;对于复杂游戏来讲,对于状态s很难定义最优的Action操作。

img

强化学习回避SL中如何确定“正确”A的问题,转而定义reward(例如赢一场比赛reward=10,击杀对方英雄reward=1, 自身死亡reward=-5);强化学习通常用于序列操作决策问题,对于强化学习来说,特别是复杂游戏,遇到的挑战:1) exploration和exploitation的问题, 2) 对于游戏玩法时间较长,如何解决reward delay问题。

img

谈到游戏AI探索研究,目前很多研究者在星际2上探索,目前星际上AI采用目前最强的StarCraft AI由hard-coded程序和learning程序共同实现,且hard-coded部分占大部分;目前最强的StarCraft AI还不能战胜业余的中上水平。星际游戏较为复杂,通用设计:将AI根据决策时间长短,分为:strategy,tactics, reactive control 进行分层优化。

img

Alphago掀起了游戏AI的浪潮,它成功超越了人类,它的算法主要由Supervised learning + Reinforcement learning +Monte Carlo tree search三部分组成,它的线下训练需要大量的计算资源。目前DeepMind跟暴雪已经合作开发了一个开放平台,模拟器是非常重要的,如果要做游戏AI相关开发,模拟器是必要的环境,通过模拟器获取数据以及提供一些操作指令能直接操作游戏AI。

img

今年在游戏界或者在游戏AI行业里最有影响力的就是Dota2了,在5个特定英雄等限制条件下AI能力能够超过90%的玩家(截至2018.6.25)。采用的是强化学习的方法。线下训练所使用的资源远远大于Alphago在围棋上使用的资源:12W+CPU,256GPU。

img

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfxdz.html