一、引言

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开放,正是希望能够有更多的研究者关注和投身这一前沿领域,建立环境只是第一步,还需要不断的探索与实践。期待,人工智能战胜人类选手那一天尽快到来!

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

  1. 刚刚,Facebook开源了星际争霸AI代码

    岳排槐 发自 凹非寺 量子位 出品 | 公众号 QbitAI 前几天,我们报道了2018星际AI大赛. 在这个大赛里,来自Facebook AI Research团队的AI程序CherryPi,获得了 ...

  2. 多图详解 DeepMind 的超人类水准星际争霸 AI 「AlphaStar」...

    雷锋网(公众号:雷锋网) AI 科技评论按:英国当地时间 1 月 24 日,DeepMind 在伦敦组织线上直播,向全世界的游戏 AI 研究人员以及游戏爱好者们介绍自己的 AI 研发最新进展. 参加直 ...

  3. AI训练环境-CUDA/cuDNN/paddle ——‘CUBLAS_STATUS_INVALID_VALUE‘.

    @TOC运行报错 'CUBLAS_STATUS_INVALID_VALUE'. An unsupported value or parameter was passed to the function ...

  4. PySC2星际争霸Ⅱ 强化学习环境搭建

    PySC2是DeepMind开发的星际争霸Ⅱ学习环境(SC2LE)的Python组件. 它封装Blizzard Entertainment的星际争霸Ⅱ机器学习API,提供Python 增强学习环境. ...

  5. 星际争霸pymarl的环境搭建(pymarl+smac)

    1. 下载StarCraft II游戏到服务器里面 如下图所示: 2.创建环境+安装pytorch 采用anaconda来创建虚拟环境: conda create -n 虚拟环境名称 python=3 ...

  6. AlphaStar的游戏——星际争霸2 AI综述

    两天前,DeepMind直播展示了他们星际2AI的最新进展.AI名叫Alphastar,它在与两位职业选手的比赛录像中获得了全胜,其中一位还是世界前10的顶尖神族选手Mana.在与Mana最后一场万众 ...

  7. Google DeepMind顾问预言:五年后AI将在《星际争霸》中战胜人类

    在纽芬兰和拉布拉多,正在用人工智能进行<星际争霸>比赛. <星际争霸>的幽灵机器人.(来自:维基共享资源) 接下来的两个星期里,在纪念大学(Memorial Universit ...

  8. DeepMind:星际争霸2:强化学习新挑战(论文翻译)

    星际争霸2:强化学习新挑战 原文下载链接:https://deepmind.com/documents/110/sc2le.pdf 整个论文分为: 摘要(Abstract) 1.介绍(Introduc ...

  9. DeepMind:星际争霸2:强化学习新挑战(翻译)

    DeepMind:StarCraftII:A New Challenge for Reinforcement Learning 星际争霸2:强化学习新挑战 原文下载链接:https://deepmin ...

最新文章

  1. 清除messages
  2. 【iOS XMPP】使用XMPPFramewok(五):好友列表
  3. tomcat和apache的结合   看最重要的   文档有点乱
  4. 【51Nod - 1182】完美字符串(贪心,字符串)
  5. 1.4 Arithmetic Progressions
  6. NOSQL schema创建原则
  7. mysql escape 注入_php 防mysql注入函数 addslashes和mysql_real_escape_string
  8. 多重共线性的解决方法之——岭回归与LASSO
  9. 学python能做什么类型的工作-python是什么?python可以用来干什么?
  10. Margin 属性的一些边界情况说明 --转http://blog.csdn.net/ghj1976/article/details/4987686
  11. 一、为什么会产生field概念 二、MBAFF
  12. ESP8266-Arduino编程实例-LM75温度传感器驱动
  13. c++实验3-个人所得税计算器
  14. 【办公自动化Excel】开发工具的使用
  15. 传统蓝牙base on pincode配对以及安全简单配对(Secure Simple Pairing)流程介绍
  16. 费曼算法(Feynman algorithm)
  17. Django笔记 CMS框架Mezzanine 1
  18. linux或者UC/OS
  19. 计算机网络 --- 计算机网络和因特网
  20. Phodit:打造智能的 Markdown 编辑器

热门文章

  1. 【fpga】ddr3
  2. 火出圈的ChatGPT,如何让安全检测更智能
  3. Java输入一个数,判断该数是否为质数
  4. 去大公司,还是小公司?
  5. MACbook系统从10.7升级到10.10
  6. 【信号处理】语音信号线性预测(LPC)分析含Matlab源码
  7. 项目管理PMP学习之PMP ITTO
  8. LHL算法入门经典 例题3-3最长回文子串
  9. 计算机主机不启动怎么办,电脑硬盘启动不了怎么办
  10. Inception V1:Going deeper with convolutions