别推塔了快回城,AI预测你的英雄5秒后就要死了!

新智元推荐

来源:arXiv

编辑整理:元子

【新智元导读】死亡也是可以预测的吗?如果可以预见未来,那么最远能预测多久以后呢?约克大学的研究人员最新研究结果表明,通过AI模型提取游戏角色特征,如当前状态、装备、英雄技能、位置等因素,可在5秒内预测该角色的死亡时间,准确率最高为0.725。

如果能够预知死亡,哪怕只有5秒,你会做什么呢?

近日,约克大学的研究者用AI预测死亡。不过不是人类的死亡,而是Dota 2中英雄的阵亡概率。

论文标题:Time to Die: Death Prediction in Dota 2 using Deep Learning

论文地址:

https://arxiv.org/pdf/1906.03939.pdf

Dota 2由Valve公司发行,是一款5v5在线竞技游戏。每个玩家操控一个英雄,分为敌对双方进行厮杀。终极目标是在对方没有推倒己方塔之前,推倒对方的塔。在推塔过程中,不可避免的会发生击杀对方英雄、或者被对方英雄击杀的情况。

击杀是一个被鼓励的行为,也是观众最愿意看的环节。它体现了一名Dota选手的操控力、判断力以及反应敏捷度。通常不会出现追到天涯海角、不弄死对方不罢休的情况。玩家会根据敌我双方的血量、己方输出和对方承受力、回血速度等进行预判,争取秒杀。

Dota 2平均每场比赛包含80000帧,每个英雄能执行170000个可能的动作;游玩家在每帧上平均会完成10000个动作;玩家可以捡起、购买上百种装备。

成功完成一次击杀,不仅要考虑己方输出值和对方的血量。因为攻击输出是在一定的范围内波动的,针对不同的甲、回血速度、装备的道具等,输出会有不同程度的折扣。

比如一个英雄的回血速度是每秒1点,他刚好装备了一件加速回血的装备,可以将回血速度提升10%,那么就有可能出现本来刚刚好能够秒杀、但由于回血速度加快,导致技能放在对方英雄身上的同时对方回上了一点血,顺利逃脱。

最终,AI面对的是一个超过20000维度的复杂状况。

而AI解决这种复杂问题的方式也很简单粗暴,就是获取尽可能多的数据。研究人员想办法获取了Valve公司12月5日之前5000场职业比赛,以及5000场半职业比赛的replay。

他们的语料库在预处理和误差计算后共包含7311个文件,并通过在4-tick采样周期(对应0.133秒的游戏时间)内记录属性集数值,然后又从语料库中提取数据并转化为时间序列。

基于语料库中的数据,研究者为每个英雄提取了287个特征,比如血量、输出值等。研究人员最终得出结论:时间、玩家当前状态(如血量和护甲)、可激活装备、英雄技能、走位、与最近的敌人和己方防御塔的距离、以及可见性历史是导致玩家死亡的重要因素。其中英雄的相对力量值和特定时间内在地图上的位置,是能否被秒杀的最关键因素。

那么接下来,就是创建一个能够捕获相关数据的特征集。研究者首先从相对力量值和在特定时间内在地图上的位置开始,慢慢构建并完善特征集,最终为每个英雄集齐287个特征的特征集。

下表给出了一些重要特征的详细描述。

可见性,指的是游戏双方均需知道对方的英雄是否在视野内,或者是否在攻击范围内。一旦脱离视野,对方英雄就可能出现在地图的任何位置,所以需要给英雄加上这个特征。

10个英雄共产生2870个输入和5760万个单个数据点,将其相乘后喂给机器学习算法,分别保留10%的数据用于验证和测试,然后开始预测英雄的阵亡概览。

实验表明,预测的时候越短,成功率越高,0-5秒内的平均预测精确度达到了0.5447,预测的时间越往后,精度越低。参看下图:

模型详解

研究者使用具有权重共享的深度前馈神经网络作为模型,输入包含每位英雄的特征。在最大的特征集中,每位英雄具有287个特征,因此10位英雄共有2870个输入;同时具有10个独立的持续输出,对应表每个英雄在未来5秒内死亡的概率。

网络架构

本质上是创建一个子网络,为英雄特性学习一个新的、更密集的表征。连接层附带来自每个共享层的输出,为网络结构的最后一部分(一个全连接网络)创建一个输入张量。每个隐藏层的输出都使用RELU函数,网络的最后一个激活函数是Sigmoid。

特征集

由于游戏复杂度高,研究者不确定该网络是否可以利用所有的特征类别。为了深入了解,研究者创建了三个独立的特征集,并利用三个独立的超参数搜索运行三个训练步骤:

  • 最小的特征集(每个英雄15个特征)只包含当前HP、钱、位置、英雄和塔的距离特征
  • 中等特征集(每个英雄109个特征)包含除了英雄ID和能力特征之外的所有特征
  • 大型特征集包含全部的特征,全部287个特征

训练网络

对于每一个特征集,研究者使用基于随机搜索的探索来确定最佳超参数,用于:层数、每层的神经元数、学习率和批大小。

结果

表现最佳的模型达到了0.5447的平均精度。

但是聪明的新智元读者肯定会问了,5秒时间一眨眼就过去了,这么短的时间内能做什么?够我扼住命运的喉咙让他反转吗?

预测英雄死亡可能对增加游戏的趣味性或者竞技性没什么用,对Dota玩家貌似也没有什么实质的作用。但是对于游戏解说就非常关键了!5秒的提前量已经可以基本不漏掉任何精彩击杀镜头了。

模型已经在GitHub上开源:

https://github.com/adam-katona/dota2_death_prediction

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2019-06-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券