游戏启示录:
曾经很多被认为不可预知的事件实际上是可预测的,从人工智能研究的持续发展中已经办得到,并且准确率也相当高。比如,最近约克大学的研究者在其发表的论文《Time to Die: Death Prediction in Dota 2 using Deep Learning》中介绍了这样一种系统,它能够可靠地预测哪些 Dota 2 玩家角色将在 5 秒内死亡。
这种 AI 技术在未来或许可以为游戏解说和观众们带来便利:突然出现的击杀总是游戏最精彩的部分。
OpenAI Dota 2 竞技现场
- 论文:Time to Die: Death Prediction in Dota 2 using Deep Learning
- 论文链接:https://arxiv.org/pdf/1906.03939.pdf
Dota 2 是一款多人在线竞技游戏。游戏分为两方,每方拥有 5 名玩家,目的是占领敌方和防御己方基地,并试图破坏位于地图两端的建筑物。每个玩家都有一套独特的战斗技能,同时收集经验值和装备以解锁新的攻击和防御动作。
Dota 2 平均每场比赛包含 80,000 个单个帧,其中每个角色可以执行 170,000 个可能的动作。游戏中的玩家在每帧上平均完成 10,000 个动作,使游戏的总维度超过 20,000。游戏中的每个玩家都可以捡起或者购买上百件虚拟装备(item)。
研究者在论文中指出,角色的生命值并不总是与死亡与否挂钩,因为一些角色具有治愈能力,并且玩家还可以通过购买虚拟装备来治愈或者通过传送远离危险。
考虑到这一点,研究者争取了 Valve 公司 12 月 5 日之前 5000 场职业(大型赛事)和 5000 场半职业(小型比赛和联赛)比赛的回放文件。他们的语料库在预处理和误差计算后共包含 7311 个文件,研究者从语料库中提取数据并转化为时间序列。
基于语料库中的数据,研究者为每个玩家角色提取了 287 个特征,其中一些特征是游戏对象属性值(如英雄生命值)。研究表明:时间、玩家当前状态(如力量值和敏捷值)、可激活装备、英雄技能、走位、与最近的存活敌人和己方防御塔的距离以及可见性历史是导致玩家死亡的一些最重要因素,其中英雄的相对力量值和特定时间内在地图上的位置居首位。
根据死亡预测的属性,研究者需要创建一个能够捕获相关数据的特征集。首先导致玩家死亡的两个最重要因素——相对力量值和特定时间内它们在地图上的当前方位。从最开始的少量特征开始构建,研究者最终得到了包含每位英雄 287 个特征的特征集。一些特征是游戏对象属性值,如英雄生命值;其他一些则是派生值,如与其他玩家的邻近值。下表给出了一些重要特征的详细描述。
表 1:各类特征的详细信息。
研究者表示:「玩家采取行动时确实依赖以往行为。例如,如果一名敌人脱离视线,玩家依然清楚这名敌人还在这个区域。另一方面,如果一名敌人在几分钟前消失了,则从玩家的角度看,这名敌人可以在地图的任何位置。这就是我们添加可视性历史特征的原因。」
研究者将训练数据——2870 个输入和 5760 万个单个数据点,即 10 位玩家的 287 个特征相乘的结果——馈入到机器学习算法中,分别保留 10% 的数据用于验证和测试。他们在实验中发现,当预测比赛双方 10 位玩家中哪位玩家会在 5 秒内死亡时,该模型实现了 0.5447 的平均精度。此外,研究表明,该模型能够在指定的 5 秒窗口出现之前预测玩家死亡,说明它已经学会了与死亡相关的「固有属性」。
模型详解
研究者将具有权重分享的深度前馈神经网络作为模型。该神经网络的输入包含每位英雄的特征。在最大的特征集中,每位英雄具有 287 个特征,则 10 位英雄具有 2870 个输入。因此,该网络具有 10 个独立的持续输出,代表每位玩家在接下来 5 秒内死亡的概率。
值得注意的是,尽管用来预测死亡的时间是 5 秒,但这一时间也可以增加。但为了减少计算混淆,这些预测将被视为不准确预测。预测时间为 0-5 秒以及延长到 20 秒时的概率输出如下图所示:
研究者坦言,他们的方法也有一些局限,如系统需要 200 多个游戏数据点(包括那些不可见的玩家)来辅助预测以及可能无法泛化到新的游戏版本。然而,研究者表示,他们设计的模型可能对紧盯比赛进程的解说员和玩家有用。目前,该模型已经在 GitHub 上开源:https://github.com/adam-katona/dota2_death_prediction