在 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 中有一个客户端,并且易于编译任何操作系统。