星际争霸AI训练环境与自主规划决策问题初探

一、引言

2016年3月,当DeepMind公司推出的人工智能程序AlphaGo以近乎压倒性的优势,4比1战胜了围棋世界冠军李世石9段。几乎是以此为原爆点,以深度学习这一手段为代表的所谓“新”人工智能,在世界范围内掀起一股持续至今的热潮。但DeepMind公司并不满足与此,当代表当今世界围棋第一人的柯杰同志被加持了增强学习(Reinforcement Learning)技能的Master斩落马下后,他们将目光投向了更加复杂的领域,星际争霸,这样一款延续了20年“辉煌”的即时战略游戏。DeepMind的使命是通过开发能够通过学习训练实现解决复杂问题的系统,来进一步推动AI发展的边界。因此秉承开源的态度,他们联合Blizzard(暴雪)娱乐公司,也就是星际争霸系列游戏的开发者,开放了SC2LE(StarCraft II Learning Environment),正如在一同发布的论文所言,星际争霸将会是增强学习的新挑战。

本文将粗浅的介绍星际争霸AI训练环境的(window)配置方法和流程,并从作者的角度,借由增强学习对复杂系统的优势,初探自主决策规划问题。

二、星际争霸AI训练环境搭建

1、准备工作

1、机器学习API,主要包括了脚本接口与基于图像的API接口,在Windows和MAC下的最新星际争霸游戏中已经集成了这个环境,只有linux下开发需要下载。
2、游戏回放(replay)数据集,作为训练样本。
3、DeepMind公司开发的Python工具集PySC2,它提供了增强学习代理与星际2环境之间的交互等功能。
4、还有几个诸如采矿采气,修建等迷你增强学习任务地图,以及将会用到的1v1天梯地图,及Melee地图。下载地址:[https://github.com/Blizzard/s2client-proto#replay-packs]
6、Python 3.5[https://www.python.org/downloads/release/python-350/] 以及pip工具。
5、当然还有星际争霸2游戏,Windows下比较方便直接网易官网下载就行。[http://sc2.blizzard.cn/landing](不清楚要不要购买,我之前买过虫群之心版本,直接登录账号就能下载了)
7、以及随开发环境联合发布的论文

总结起来Window开发需要准备好下如图这些材料(地图我没下载完)
这里写图片描述

在论文中给出了整个开发环境的整体关系图:
这里写图片描述

可见,整个系统形成了一个观测、决策、规划、执行的反馈回路模型。

2、开发环境安装

Window环境下比较简单,主要分为三步1、安装SC2游戏。2、添加地图及回放数据。3、安装Python及pip工具。4、安装PYSC2环境。

第一步,略,不过注意安装路径最好选用默认的C:\Program Files (x86)\StarCraft II

2.2 添加地图及回放数据

解压地图到
~/StarCraftII/Maps
解压回放数据到
~/StarCraftII/Battle.net
~/StarCraftII/Replays
最终的SC2文件夹应该会包含下列文件
这里写图片描述

2.3 安装Python及pip工具

直接安装Python3.5 注意最好自己选择一个路径,以方便接下来比较方便配置系统环境变量。
接下来安装pip后配置环境变量,这个过程可以参考下面两个链接
[http://jingyan.baidu.com/article/48206aeafdcf2a216ad6b316.html]
[http://jingyan.baidu.com/article/b907e627a072a846e6891c5a.html]

注意为了接下来安装PYSC2环境不报错,需要运行以下命令配置升级下pip工具

pip install --upgrade pip setuptools
2.4 安装PYSC2环境

win+R打开控制台(CMD),输入

$ pip install pysc2

如果不报错,恭喜你,安装完成。

这时可以试试运行

$ python -m pysc2.bin.agent --map Simple64

在Window下有三个界面
这里写图片描述

至此,完成了星际争霸2学习模型开发环境的安装。

三、自主规划决策问题初探

好,先别急进一步的继续探究代码,反正SC2LE的功能是十分强大(然而DeepMind并没有开源具体的增强学习算法框架),因此姑且暂时放下代码(作者水平不够),从方法论的角度来浅浅的讨论讨论复杂环境下自主规划决策这一问题。

作者最初接触星际争霸是在小学5年级,凭借着父亲的便利,时常趁其不备从他办公室“获取”微机室钥匙,伙同小伙伴局域网联机星际,想想真是快乐幸福的小时光。然而初入母巢之战,小学生是一脸懵逼的,不懂英语,不懂操作。那么是如何上手呢?一看,二试。一开始,人族开局,不会爆农民(scv),不会堵路口,总是被对面小狗一波带走。于是看了大神(同年级同学)对战,嚯,农民得满矿采,采气得3个上,路口一封,猥琐发育攒大舰。于是可以顺利拿下电脑。
这里写图片描述

拿下电脑还不够啊,局域网联机能打赢才牛啊。打电脑那一套便不好使了,无脑A肯定是不管用的,集群数量会被技巧和集火干掉。那么,就需要提升技巧,感知时机,这已经不是简单的反馈都能学会的,开始需要有点的长时间的规划,也称大局观,什么时候该出手了,那几个兵种协同推进,都是大局观给予你的。这里可以说是有了那么一点配合的无脑A,至少知道坦克提前架炮。这时就需要进行充分的练习(游戏对局)了,遗憾的是,我的小学星际生涯也就止步于这两步,而后到了大学,星际二出来后,才发现其实还有第三步,那就是教。感谢SCBOY2,使得大家能够在相声中,提升星际水平,甩机枪,风林火山,哲学流一波,战术与操作并重,迅速提升技战术水平,无奈作者手速不行,最后也止步青铜段位。
这里写图片描述
话说回来,谈论这样一个星际历程有什么目的呢?这里,不妨先引入下增强学习。在作者看来,增强学习的核心就是反馈。作者的本行是控制,控制里边讲的是对于一个系统或动态过程用微分方程描述,其中反馈就是描述动态过程的微分方程的输入项和输出项之间建立一个关联(建立动态方程),这样改变了原来描述这个系统或者动态过程的微分方程原本的性质。自动控制就是在这个反馈和动态过程里做文章。下图是一个典型的自动控制模型框图。
这里写图片描述
类似的在机器学习领域,增强学习也同样可以看做是这样一个反馈。但增强学习考虑的问题就是Agent(表示一个具备行为能力的物体,如无人机,汽车)和环境environment之间交互这样一个动态过程。传统的控制理论,需要进行运动学或者动力学系统建模,形成动态方程,设计控制输入和控制算法。而增强学习是直接通过“学习”直接建立系统感知状态State和行动Action存在的映射关系,并设计了一个奖赏Reward函数的反馈。下图是增强学习的模型框图。具体参见Deep Reinforcement Learning 基础知识
这里写图片描述

从模型可见,相对与控制模型,增强学习的模型更加简单,也更加具有普适性。搭建动态系统是困难的,但是作为底层的运动控制,我想传统的控制方法不过时,但是对于复杂环境下自主规划决策,增强学习将会是一个非常理想的策略。

那么这么看来我的星际争霸学习过程就是一个典型的增强学习过程。从感知态势,到做出行动,形成反馈。最终在脑海中构造出一个针对不同环境(对手,状态)的策略。这是一个智能形成的过程,也是自主规划决策模型建立的过程,当然这个模型不可描述。可见若能够利用增强学习的手段,设计开发出能够战胜人类的星际选手,将对解决各类复杂环境下的自主决策规划问题提供一个具备重大意义的参考,特别是在军事领域!

四、总结

不容置疑,星际争霸是复杂的,可以说比围棋要更加复杂,而不断扩展人工智能领域的新疆界,正是DeepMind公司的科学使命,他们能够将SC2LE开放,正是希望能够有更多的研究者关注和投身这一前沿领域,建立环境只是第一步,还需要不断的探索与实践。期待,人工智能战胜人类选手那一天尽快到来!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值