本文由机器之心编辑,“机器之心”专注生产人工智能专业性内容,适合开发者和从业者阅读参考。点击右上角即刻关注。

在 AlphaGo 征服围棋之后,即时战略游戏《星际争霸》已经成为各家科技巨头与大学的下一个目标。Facebook 在这一方面的研究似乎正处于领先地位。7 月初,田渊栋等人开源了基于星际争霸的人工智能游戏平台(参见:Facebook 开源游戏平台 ELF,简化版《星际争霸》完美测试人工智能)。最近,Facebook 又发布了一个大体量星际争霸录像数据集 STARDATA,旨在为广大研究者提供方便。

打开网易新闻 查看更多图片

数据集链接:https://github.com/TorchCraft/StarData

即时战略游戏(RTS)因为复杂的游戏环境、战争迷雾的限制、以及大量专业玩家带来的 Replay 录像,正成为人工智能研究的热点方向。这些游戏因为其复杂性与拟真性,在训练强化学习等算法的任务中的结果要远远好于棋盘类游戏。另一方面,由于近期基于大数据集的深度学习方法兴起,人们开始意识到,此类方法的性能提升需要依赖于大量数据的训练。

虽然星际争霸可以通过直接开打的方式来训练人工智能,但由于游戏中的动态变化种类繁多,这种方法的效率很低,最有效的方式是利用人类玩家生成的游戏 Replay。星际争霸的 Replay 是一种基于玩家指令的游戏录像文件——通过存储指令而非画面的方式,游戏录像的文件尺寸被压缩到了很小的尺寸,另一方面,这也为人工智能的训练带来了方便——游戏的信息可以在 Replay 文件中直接提取出来。

但仍有几个方面的问题让机器学习难以利用这些游戏录像。首先,星际争霸 Replay 的重建速度有限,这意味着训练速度会受到限制;由于星际争霸游戏的版本更迭,不同版本游戏的 Replay 与游戏无法互相兼容,这限制了可用数据的数量;最后,游戏录像的重建只能在 Windows 系统中才能保持稳定。基于以上问题,Facebook 的研究人员认为提取游戏录像中的有效信息并将其以数据集的形式存储是最好的方式。

一个易于训练模型的数据集必须满足以下要求:

  • 普适性:存储在数据集中的数据可用于学习不同层面的游戏策略。所以,该数据集中包含的数据应该尽可能地包含最多的游戏情况。

  • 多样性:该数据集必须包含多种游戏场景、对战形式、地图和玩家策略等。

  • 有效性:该数据集需要能够代表星际争霸玩家的正常水平,对战两方都不能消极比赛。

  • 易接入性:用户应该可以轻松使用该数据集代替游戏引擎来使用游戏中的状态数据。

  • 可操作性:数据集应该兼容各种平台与系统。

考虑到以上要求,Facebook 的研究人员构建了用于星际争霸人工智能研究的新一代数据集 STARDATA。它相比于此前类似的数据集体量大上十倍,其中包含了大量不同的对战形式、统计数据、地图等等。

所有的回放都要在星际争霸和 BWAPI 检查其可玩性。我们使用额外的基于规则的脚本检查执行损坏以满足有效性需求。数据集以可被 TorchCraft(Synnaeve et al. 2016)读取的格式存储,TorchCraft 是一个用作科学计算框架和星际争霸之间交互接口的库。一个人可精确使用相同的代码从数据集中读取数据并控制星级争霸。这同时满足了易接入性性和可移植性的需求,因为 TorchCraft 在 C++、Lua 和 Python 中有一个客户端,并且易于编译任何操作系统。

对于数据集中的每一个 replay,完整的游戏状态每 3 帧存储一次(每秒约 8 帧)。这意味着一个人可以使用数据集学习游戏策略从微观到宏观的不同方面,并且满足了普适性需求。当前论文的结构如下。首先,我们概述现有的数据集,它们的主要特征和局限。我们进一步细节性地描述新数据集,它是如何被构建和验证的。接着我们展示一些与新数据集相关的统计数据,并提供一些可在其中发挥作用的实例场景。我们也在数据集中发生战争的地方为单元微观管理任务提供元数据。论文的最后我们就数据集的进一步场景和用例做了讨论。

表 1: 星际争霸 AI 数据集收集比赛的来源。GG=GosuGamers.net,TL=TeamLiquid.net,IC=ICCup.com,YG=ygosu.com,BR=bwreplays.com 。

表 2: 数据集中不同类型比赛的游戏数量。P = 神族,T = 人族,Z = 虫族。

打开网易新闻 查看更多图片

表 3: STARDATA 中最常见的地图。

图 2: 游戏时间长度的密度图,以分钟为单位。持续时间超过 60 分钟的几个异常值未显示。

如图所示,游戏时长似乎遵循对数正态分布形状,大多数游戏持续时间为 10 到 20 分钟,产生 40 到 300 个单元。对于时间超过 60 分钟,单元超过 1000 个的游戏长尾不予显示。我们从这些密度图中观察到几个有趣现象:(1)大多数 ZvZ 比赛倾向于很快结束。(2)TvT 和 PvT 游戏通常会持续很久。(3)有虫族参与的游戏倾向于以极少或者大量单位结束。我们观察到一个趋向于 0 的非常斜交的分布,但是也带有一个胖尾(fat tail)。(4)神族玩家制造了最少数量的单位,尤其是在游戏后期中。

论文:STARDATA: A StarCraft AI Research Dataset

论文链接:https://arxiv.org/abs/1708.02139

摘要:我们发布了一个包含 65646 个星际争霸 replay 的数据集,其中有 15.35 亿帧和 4.96 亿玩家动作。我们提供完整的游戏状态数据以及可在星际争霸中观看的原始 replay。游戏状态数据每三帧记录一次,以确保对更广泛的机器学习任务的适宜性,比如策略分类、反转强化学习、模仿学习、前向建模、部分信息提取等。我们使用 TorchCraft 提取和存储数据,这为 replay 和游戏的直接读取标准化了数据格式。此外,数据可被用在不同的操作系统和平台上。数据集仅包含有效、无损坏的 replay,其质量和多样性通过一些启发法来确保。我们通过不同的统计数据说明数据的多样性,并提供了已从数据集中受益的任务实例。