迈向通用人工智能:星际争霸2人工智能研究环境SC2LE完全入门指南
1. 导言
近日,DeepMind联合暴雪娱乐共同发布了星际争霸2人工智能研究环境SC2LE(StarCraft II Learning Environment)。国内多个渠道都在第一时间对官方博客DeepMind and Blizzard open StarCraft II as an AI research environment进行了译载。正如DeepMind自己所言,DeepMind的科学使命是通过开发能够学习解决复杂问题的系统,来进一步推动AI发展的边界。此次发布,为业界提供了一套成熟的、开放的AI决策系统测试平台。在人工智能研究社区,尤其是在增强学习社区,无疑是引爆了一颗重磅炸弹。紧接着,在前两天举办的Dota2国际邀请赛(TI7)中,OpenAI开发的AI完胜世界顶级选手Dendi,让人大吃一惊。由此可见,两大AI巨头都将这类即时策略游戏作为迈向通用人工智能的必经之路。
本文作为SC2LE完全入门指南,将从SC2LE基本组成及功能、环境安装、PySC2初探、PySC2详解等四个方面展开,尤其是对PySC2实现、程序接口进行深入分析,并对自定义代理的实现、增强学习的应用进行了一些初步的讨论。
本次发布的SC2LE主要包括5个部分:
- 暴雪开发的机器学习API,其中包括了脚本API接口和基于图像的API接口(通过特征层的方式)。GitHub地址:https://github.com/Blizzard/s2client-proto
- 匿名的游戏回放数据集,在接下来的几周中将从65k增加到超过500k。GitHub地址:https://github.com/Blizzard/s2client-proto#replay-packs
- DeepMind开发的开源Python工具PySC2,允许研究者们在代理(agent)中方便使用暴雪的特征层API。GitHub地址:https://github.com/deepmind/pysc2
- 一系列简单的增强学习小游戏,允许研究者们在特定任务(如采矿)中测试代理的性能。GitHub地址:https://github.com/deepmind/pysc2/releases/download/v1.0/mini_games.zip
- 一篇对应的论文StarCraft II: A New Challenge for Reinforcement Learning,概述了这个环境,同时也记录了一些与游戏内置AI对抗的初步基准结果,包括在采矿等特定任务、从回放中监督学习以及完全的1对1天梯局中等一系列表现。
除去论文,其他4个部分的关系可以用下图表示
<img src="https://pic1.zhimg.com/v2-e794dd3ed4df9c044c81df613e59aa9d_b.jpg" data-rawwidth="706" data-rawheight="338" class="origin_image zh-lightbox-thumb" width="706" data-original="https://pic1.zhimg.com/v2-e794dd3ed4df9c044c81df613e59aa9d_r.jpg">其中,机器学习API作为底层接口,可以和地图、游戏回放结合使用,DeepMind在此基础上开发了PySC2工具包。
2. SC2LE安装
基于4个部分的相对关系,我们将按照机器学习API-->地图-->游戏回放-->PySC2的顺序进行安装。
2.1 安装环境
Ubuntu 16.04
Python 3.5
注:Windows和Mac平台下的安装,差别主要在于机器学习API的安装。PySC2支持Python 2.7+或3.4+。
2.2 机器学习API安装
项目地址:https://github.com/Blizzard/s2client-proto
该项目主要给出了星际争霸2(StarCraft II,SC2)所用的通讯协议、API接口等。对于Windows、Mac平台,API已经包含在零售版的星际争霸2中,只需在战网上完整安装星际2即可。对于Linux平台,并没有完整的游戏包,但项目也给出了自我完备的Linux包。因此,这一步主要是安装Linux包。由于通讯协议、API接口等较为底层,关注增强学习算法应用的读者可以不必关注实现细节。
对于Linux用户,首先下载SC2的Linux包,版本号为3.16.1。版本号需要注意,要与之后的游戏回放的版本号一致,否则无法兼容。
解压下载得到的zip压缩包,默认解压路径为“~/StarCraftII/”。如解压至其他路径,需要在之后PySC2安装时添加环境变量SC2PATH。解压密码为“iagreetotheeula”(引号内),表示同意暴雪的许可协议。
其他平台默认安装路径:
- Windows: C:\Program Files (x86)\StarCraft II\
- Mac: /Applications/StarCraft II/
2.3 地图安装
目前,支持的地图主要有三类:
- 特定任务地图Mini-game maps:包括采矿等特定任务,地图较小。
- Melee地图
- Ladder地图:包含2017年三季(Season 1、Season 2、Season 3)
将下载得到的地图压缩包解压到StarCraftII/Maps文件夹中,解压密码同上。
2.4 游戏回放安装
下载游戏回放数据,注意版本号一致。将压缩包解压至StarCraftII/Replays和StarCraftII/Battle.net文件夹中,解压密码同上。
2.5 PySC2安装
PySC2是基于Python的接口封装,比较友好。一般的读者,例如关注增强学习算法应用的读者,需要了解、接触最多的应该就是PySC2。
注:目前,PySC2依赖完整的星际2游戏和机器学习API,要求游戏版本号大于3.16.1。
PySC2可以有两种方式安装。
一是利用pip工具:
$ pip install pysc2
二是从GitHub安装:
-
$ git
clone https://github.com/deepmind/pysc2.git
-