学习顶级玩家Replay,人工智能学会了星际争霸的「大局观」

By 李泽南2017年7月14日 11:27

学会了哥的运营,剩下的就是 A 了——「F91」孙一峰。


神经网络是机器学习的一个重要分支,近年来随着深度学习的兴起展现了强大的能力。近日,来自 IT University of Copenhagen 的几位学者尝试使用顶级玩家的 Replay 训练一个深度学习模型来打星际争霸,并获得了成功。经过训练的 AI 学会了人类玩家运营的部分技巧,并在对战中展现出了多种不同策略。


有关星际争霸系列游戏的人工智能研究层出不穷,因为这一即时战略游戏(RTS)的环境复杂,在同类游戏中,平衡性也做得最好。此前,一些组织和机构发起过如 AIIDE StarCraft AI Competition 这样的星际争霸 AI 比赛。去年,DeepMind 也在围棋之后把注意力转向了星际争霸 2,这家属于谷歌的公司认为该游戏相比国际象棋与围棋更加接近「复杂的现实世界」。


与今年 4 月阿里巴巴和 UCL 的研究者们试图让 AI 学会控制不同单位(学会「战术」胜利)不同,哥本哈根的研究人员这次试图让人工智能学会更高层面上的技巧(「战略」胜利)。而其后的模型训练方式也显得更加直接:研究人员使用了超过 2000 场顶级玩家对战的 Replay 来训练神经网络。



图 1. 该研究使用的游戏版本是《星际争霸:母巢之战》,人工智能控制神族,对战人族。


研究人员使用的新方法包括两个部分:1. 训练神经网络预测人类玩家的大局观(macromanagement)活动,即下一步将发生的动作;2. 将训练好的模型放入 UAlbertaBot 开源星际争霸 bot 中,代替原有的生产决策模块。UAlbertaBot 是由 David Churchill5 开发的一款开源的星际争霸 bot,在 2013 年赢得了 AIIDE StarCraft AI Competition。该 bot 包括多个分层模块,如信息管理、建筑管理和生产管理。其中,生产管理负责控制单位生产、升级等工作。在代替后,神经网络通过类似人类玩家的策略来对生产进行决策,从而让整个 AI 系统的表现大幅增强。


为了压缩文件尺寸,星际争霸的 Replay 包含了对战双方的所有指令,这同时也为神经网络的训练带来了便利。在训练中,Relplay 文件中的玩家动作状态被编码为归一化值的向量。训练神经网络使用的 Replay 数据集采集自 GosuGamers、ICCup

和 TeamLiquid 等网站,其中包含大量职业玩家之间的比赛。



图 2. 将星际争霸 Replay 转化为向量化动作对的示意图


上图中,(a)展示了将 Replay 中的信息提取至 SQL 数据库的提取过程,(b)表示数据处理的扩展过程,在数据库中,源数据被分类为建筑、击杀、发现敌方单位等信息(c)。所有事件都通过正向模型运行,以生成具有归一化值的向量化状态 - 动作对(d)。



图 3. 神经网络架构


输入层由包含归一化值的向量化状态组成,该归一化值表示玩家所知的所有单位、建筑物、科技和升级的数量。为了清楚起见,上图中仅显示了一小部分。另有一个输入表示人口数量。神经网络具有四个隐全连接层,每个都有 128 个单元,使用 ReLU 激活函数。这些层之后是使用 softmax 激活函数的输出层,网络的输出是接下来在给定状态下生成的每个构建动作的预测。

 


表 2. 神经网络配合 UAlbertaBot 对战游戏内建 AI 人族的胜率


Probablilistic 为遵循网络输出最高可能性的策略,Greedy 为总是选择输出值最大的可能策略,Random 为随机选择可能范围内的策略。Blind 策略中,AI 不会收集对手的信息。如果固定采用龙骑 Rush 策略(舍弃经济,追求快速生产战斗单位的策略),新方法对阵人族 AI 的胜率为 100%。



图 5. 神经网络在与游戏内建 AI 对战时形成的开放性生产策略(生产顺序也取决于观察到的对手信息)。


每个图标旁边的数字表示接下来安排生产的概率,横轴为生产时间。在本例中,生产遵循 Greedy 策略,总是以最高可能性安排生产。



表 3. 在对战人族时 Probabilistic 和 Greedy 量种策略生产单位/升级时的选择。由表可见,Greedy 策略的选择相对单一,Probabilistic 策略的变化更多。


研究人员认为,虽然目前的方法并未达到业内最先进的结果,但这是一个让人工智能学会在 RTS 游戏中进行运营非常有希望成功的方向。此外,这种方法不仅可以适用于星际争霸系列,也可以直接适用于其他 RTS 游戏。


论文:Learning Macromanagement in StarCraft from Replays using Deep Learning




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


摘要


即时战略游戏《星际争霸》已被证明对于人工智能而言是一个具有挑战性的环境,目前最好的游戏 AI 都加入了大量人为编写的模块。在本论文中,我们展示了如何用深度学习通过游戏 Replay 的训练,让人工智能学会星际争霸的大局观。神经网络从 2005 个顶级玩家对战的 replay 里训练了 789,571 个动作对,在预测下一个建筑动作的精确度上达到了 top-1:54.6%,top-3:22.9% 的水平。通过结合已训练的神经网络和开源星际争霸机器人 UAlbertaBot,新系统的表现显著超越了游戏内建的人族 AI,新方法使用固定的 rush 策略可以轻松打败人族 AI,表现明显好于原版 UAlbertaBot。据我们所知,这是第一次有人通过星际争霸的 replay 让计算机直接学会大局观。尽管目前手动设定的策略仍然表现最佳,但深度神经网络的方法可以展现出多种不同策略,而使用深度强化学习则是未来的一个研究方向。我们认为,最终这种方法可以引出无需大量手工编程策略的强大星际争霸 AI。


声明:本文由机器之心编译出品,原文来自arXiv,作者Niels Justesen,转载请查看要求,机器之心对于违规侵权者保有法律追诉权。