Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

KYLE WIGGERS作者杜伟 张倩编译

死亡启示录:AI在Dota 2中预测玩家5秒后死亡

人们可以从人工智能研究的持续发展中领悟到,曾经很多被认为不可预知的事件实际上是可预测的,并且准确率也相当高。比如,最近约克大学的研究者在其发表的论文《Time to Die: Death Prediction in Dota 2 using Deep Learning》中介绍了这样一种系统,它能够可靠地预测哪些 Dota 2 玩家角色将在 5 秒内死亡。

这种 AI 技术在未来或许可以为游戏解说和观众们带来便利:突然出现的击杀总会是游戏最精彩的部分,而对于玩家来说,他们或许还能找到更大胆的想法。

OpenAI Dota 2 竞技现场

Valve 公司发行的 Dota 2 是一款多人在线竞技游戏。游戏分为两方,每方拥有 5 名玩家,目的是占领敌方和防御己方基地,并试图破坏位于地图两端的建筑物。每个玩家都有一套独特的战斗技能,同时收集经验值和装备以解锁新的攻击和防御动作。

Dota 2 实际操作起来会更复杂。平均每场比赛包含 80,000 个单个帧,其中每个角色可以执行 170,000 个可能的动作。游戏中的玩家在每帧上平均完成 10,000 个动作,使游戏的总维度超过 20,000。游戏中的每个玩家都可以捡起或者购买上百件虚拟装备(item)。

研究者在论文中指出,角色的生命值并不总是与死亡与否挂钩,因为一些角色具有治愈能力,并且玩家还可以通过购买虚拟装备来治愈或者通过传送远离危险。考虑到这一点,研究者获取了 Valve 公司 12 月 5 日之前 5000 场职业(大型赛事)和 5000 场半职业(小型比赛和联赛)比赛的回放文件。他们的语料库在预处理和误差计算后共包含 7311 个文件,并通过在 4-tick 采样周期(对应 0.133 秒的游戏时间)内记录属性集数值,研究者从语料库中提取数据并转化为时间序列。

基于语料库中的数据,研究者为每个玩家角色提取了 287 个特征,其中一些特征是游戏对象属性值(如英雄生命值)。研究表明,时间、玩家当前状态(如力量值和敏捷值)、可激活装备、英雄技能、走位、与最近的存活敌人和己方防御塔的距离以及可见性历史是导致玩家死亡的一些最重要因素,其中英雄的相对力量值和特定时间内在地图上的位置居首位。

根据死亡预测的属性,研究者需要创建一个能够捕获相关数据的特征集。他们首先着眼于导致玩家死亡的两个最重要因素——相对力量值和特定时间内它们在地图上的当前方位。从最开始的少量特征开始构建,研究者最终得到了包含每位英雄 287 个特征的特征集。一些特征是游戏对象属性值,如英雄生命值;其他一些则是派生值,如与其他玩家的邻近值。下表给出了一些重要特征的详细描述。

 表 1:各类特征的详细信息。

研究者表示:「玩家采取行动时确实依赖以往行为。例如,如果一名敌人脱离视线,玩家依然清楚这名敌人还在这个区域。另一方面,如果一名敌人在几分钟前消失了,则从玩家的角度看,这名敌人可以在地图的任何位置。这就是我们添加可视性历史特征的原因。」

研究者将训练数据——2870 个输入和 5760 万个单个数据点,即 10 位玩家的 287 个特征相乘的结果——馈入到机器学习算法中,分别保留 10% 的数据用于验证和测试。他们在实验中发现,当预测比赛双方 10 位玩家中哪位玩家会在 5 秒内死亡时,该模型实现了 0.5447 的平均精度。此外,研究表明,该模型能够在指定的 5 秒窗口出现之前预测玩家死亡,说明它已经学会了与死亡相关的「固有属性」。

模型详解

研究者将具有权重分享的深度前馈神经网络作为模型。该神经网络的输入包含每位英雄的特征。在最大的特征集中,每位英雄具有 287 个特征,则 10 位英雄具有 2870 个输入。因此,该网络具有 10 个独立的持续输出,代表每位玩家在接下来 5 秒内死亡的概率。

网络架构

图 1:网络架构概览图。

图 1 为该网络的架构概览,显示了输入如何进入共享的网络结构。

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

特征集

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

  • 最小的特征集(每个英雄 15 个特征)只包含当前生命值、总金币、位置、英雄和塔的邻近特征。选择这些特征是因为研究者认为它们包含更多信息。

  • 中等特征集(每个英雄 109 个特征)包含除了英雄 ID 和能力特征之外的所有特征。

  • 大型特征集包含全部的特征(每个英雄 287 个特征)。

训练网络

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

结果

表 III 显示了最佳模型在测试集上的性能。结果表明,该网络可以利用额外的特征。

表现最佳的模型达到了 0.5447 的平均精度,研究者利用这一模型进行进一步分析。

该模型的精度-召回率曲线如图 3 所示。该图显示了阈值和精度及召回率之间的权衡。

值得注意的是,尽管用来预测死亡的时间是 5 秒,但这一时间也可以增加。但为了减少计算混淆,这些预测将被视为不准确预测。预测时间为 0-5 秒以及延长到 20 秒时的概率输出如下图所示:

研究者坦言,他们的方法也有一些局限,如系统需要 200 多个游戏数据点(包括那些不可见的玩家)来辅助预测以及可能无法泛化到新的游戏版本。然而,研究者表示,他们设计的模型可能对紧盯比赛进程的解说员和玩家有用。

目前,该模型已经在 GitHub 上开源:https://github.com/adam-katona/dota2_death_prediction

「电子竞技游戏非常复杂,几秒钟之内的一个瞬移都有可能改变游戏的平衡,而且,多个事件可能在游戏场地的多个区域同时发生。这些事件可能发生地很快,解说员和观众很容易错过某个事件,而只看到事件的后续影响,」该团队写道。「在 Dota 2 中,某个角色被敌人杀掉是解说员和观众感兴趣的事件。」


参考链接:https://venturebeat.com/2019/06/13/this-dota-2-ai-predicts-player-death-within-a-5-second-window/

理论Dota 2游戏AI
1
相关数据
激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

语料库技术

语料库一词在语言学上意指大量的文本,通常经过整理,具有既定格式与标记;事实上,语料库英文 "text corpus" 的涵意即为"body of text"。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

前馈神经网络技术

前馈神经网络(FNN)是人工智能领域中最早发明的简单人工神经网络类型。在它内部,参数从输入层经过隐含层向输出层单向传播。与递归神经网络不同,在它内部不会构成有向环。FNN由一个输入层、一个(浅层网络)或多个(深层网络,因此叫作深度学习)隐藏层,和一个输出层构成。每个层(除输出层以外)与下一层连接。这种连接是 FNN 架构的关键,具有两个主要特征:加权平均值和激活函数。

随机搜索技术

推荐文章
暂无评论
暂无评论~