社会焦点

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?(3)

字号+ 作者: 来源: 2017-05-23

实验平台和实际效果 前面是网络架构的设计,为了实现这样一个算法模型,我们搭了一个实验平台,这个实验平台就是基于 Facebook 的 TorchCraft,它是把《星际争霸 1》和 Torch 封装在一起,但是我们比较习惯于 Tenso

  实验平台和实际效果

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

前面是网络架构的设计,为了实现这样一个算法模型,我们搭了一个实验平台,这个实验平台就是基于 Facebook 的 TorchCraft,它是把《星际争霸 1》和 Torch 封装在一起,但是我们比较习惯于 TensorFlow 和 Python,所以在上面做了一个封装,再把这套架构放在这个 OpenAI 标准接口里边,大家有兴趣可以试一下。

这个架构主要分成两部分,对应刚才说的强化学习:

左边是 Environment,其实就是《星际争霸》这个游戏,包括引擎,还有里面的 DLL,DLL 基于 BWEnv,这是一个官方认可的 DLL。基于这个 BWEnv DLL 把内部的状态、指令封装起来,其实这就是一个 Server;

右边就是 Agent,是一个 Client,这样你可以连上很多的 Agent 玩这个游戏。中间是传递的信息,Environment 会把它每一帧的数据吐给 Agent,Agent 会把每一帧的数据抽象成状态,然后再把这个 State 送到 model 里面去学习或者做预测,反过来会预测出来一些 Action,这些 Action 会封装成指令,再发回给《星际争霸》的 Environment,比如说开枪或者逃跑,这个是我们搭的这样一个《星际争霸》的实验平台。

下面是我们这个实验平台做到的一些效果,总结起来有五种可观测的智能。

  第一种,可以配合走位。

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

这个例子就是三个枪兵打一个 Super 的小狗,这个小狗是我们编辑过的,血量非常大,一下子打不死。三个枪兵打一个小狗,a/b 这两个图,在训练的早期其实是没有学会太多的配合意识,所以他们走位的时候经常会发生碰撞,经过可能几万轮的训练以后,他们慢慢学会了配合队友的走位,这样大家撞不到一起。

  第二个场景,边打边撤

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

这个配合就是边打边撤,Hit and Run 这样的技能,这个例子就是三个枪兵打一个狂徒,利用远程攻击的优势来消灭敌人。

  第三种,掩护攻击

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

刚才三个枪兵打一个狂徒的时候是同时撤退,但是在这个场景下有些枪兵可能会去吸引这个小狗或者去阻挡一下,让另外两个枪兵抓住这个时间空隙来消灭这个小狗。非常有意思的一点就是,这种协作不是在任何情况下都会出现的,如果你的环境不是那么的有挑战性,可能它就是简单的 Hit and Run 就足够了,如果我们的环境更严苛一点,比如这个小狗血量调高,攻击力从 3 调到 4,或者血量从 210 调到 270,发现它又学会了另一种更高级的掩护攻击的协作,这就非常有意思了。

  第四种,分组的集火攻击

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

这个例子是 15 个枪兵打 16 个枪兵,大家想想应该怎么取胜?策略可能 3 个枪兵或者 4 个枪兵自动组成一组,这 3 个枪兵先干掉一个、再干掉一个,就是把火力集中,但又不是 15 个枪兵打 1 个,而把火力分散一点,最后可能我们这方还剩 6 个枪兵,对方可能全部消灭掉了,这个都是通过很多轮次的学习之后他们自动去学到的这样一个配合。

  第五种,不光是枪兵之间学会配合,还可以多兵种配合,异构的 Agent 的配合。

阿里巴巴为什么要选择星际争霸作为AI算法研究环境?

这个例子就是,两个运输机,每个运输机带一个坦克去打一头大象,正常来讲,两个坦克打一个大象肯定是打不过的,加上运输机的配合以后,大象攻击某一个坦克的时候,运输机会及时的把这个坦克收起来,让大象扑空,同时另外一个运输机赶紧把它的坦克放下去,去攻击大象,这样一来一回可能大象一点便宜占不到就被消灭了,这个是基于我们之前的做出 BiCNet 一个协作的展现。

转载请注明出处。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章