以《星际争霸》为例,阿里多智能体协作网络BiCNet展现人工集体智能无限潜力-阿里云开发者社区

开发者社区> 阿里技术> 正文
登录阅读全文

以《星际争霸》为例,阿里多智能体协作网络BiCNet展现人工集体智能无限潜力

简介: 阿里巴巴认知计算实验室与伦敦大学学院计算机系合作,以游戏“星际争霸1”(下简称“星际”)中的微观战斗场景为测试环境,深入地研究了多个 AI 智能体之间的协作问题,旨在通过协作智能解决人类不擅长的问题。


image

阿里巴巴认知计算实验室与伦敦大学学院计算机系合作,以游戏“星际争霸1”(下简称“星际”)中的微观战斗场景为测试环境,深入地研究了多个 AI 智能体之间的协作问题,旨在通过协作智能解决人类不擅长的问题。该研究引入的多智能体双向协调网络(BiCNet )可以自动学习各种最佳策略来使多个智能体协同作战,从无碰撞移动到基本的攻击和逃跑策略,再到复杂的掩护攻击和集中火力攻击。该研究所用的方法优于目前已有的最先进方法,多智能体协作完成复杂任务,显示出了在现实世界中电商、游戏、健康医疗等智能决策领域的广泛应用前景。

image


这篇论文以星际作为测试场景,其任务是协调多个智能体作为一个团队来打败他们的敌人。为了保持可扩展但有效的通信协议,该研究引入了一个多智能体双向协调网络(BiCNet ['bIknet]),其具有 actor-critic 表达的向量化扩展。可以看出,在交战双方都有任意数量的 AI 智能体时,BiCNet 可以处理不同地形下的不同类型的战斗。分析表明,如果没有任何诸如人类示范或标签数据的监管,BiCNet 可以学习与经验丰富的游戏玩家相似的各种类型的合作策略。此外,BiCNet 很容易适应异构智能体的任务。在实验中,研究者根据不同的场景、以多个基线为参照对方法进行了评估。它展示了最先进的性能,并且具有大规模现实世界应用的潜在价值。

协作智能是通用人工智能的基础

过去十年 AI 领域取得了巨大进展。借助标签数据监督,机器在一定程度上超过了人类的视觉认知和语音识别能力。同时,单个 AI 单元(又名智能体)在多项游戏中击败了人类,包括 Atari 视频游戏、围棋和德州扑克。

然而,真正的人类智慧包含社会和协作智能,这是实现通用人工智能(AGI)宏伟目标的基础。集体的努力可以解决个体无法解决的问题。即使像蚂蚁这样弱小的个体,当其形成社会组织时,也可以完成例如猎食、修建一个王国甚至发动一场战争这样有高度挑战性的任务。

有趣的是,在即将到来的算法经济时代,在一定程度上具有人工集体智能的 AI 智能体开始在多个领域出现。典型的例子包括股票市场上的交易机器人游戏,广告投标智能体通过在线广告交易平台互相竞争,电子商务协同过滤推荐者通过人群的智慧预测用户兴趣等等。AGI 的下一个重大挑战是回答大规模多个 AI 智能体如何从激励和经济约束共存的环境中吸取经验,学习人类水平的合作或竞争。随着深度加强学习(DRL)的蓬勃发展,研究人员开始借助增强后的学习能力,着手解决多代理协作问题。

BiCNet自动学习多智能体协作的最佳策略

这篇论文利用即时策略游戏星际争霸1,研究了多个智能体之间协作行为的学习。研究特别聚焦在星际争霸的微观战斗场景上。每个玩家控制自己的单位(具有不同的功能,需要协作完成任务),在不同的地形条件下摧毁对手。

这种游戏被认为是最难的游戏之一,比围棋的变化更多。大规模多智能体系统的学习面临的一个主要难点是,参数空间随着参与其中的智能体数量的增加而呈指数级增长。因此,智能体的行为可能变得如此复杂,以致任何联合学习者方法(joint learner method)都将无法处理游戏中智能体数量的动态变化。

研究者让多智能体把星际争霸中的战斗任务当作零和随机游戏。智能体通过研究者提出的双向协调网络(BiCNet)互联,而学习是使用多智能体 actor-critic 框架完成的。此外,论文还介绍了动态分组和参数共享的概念,以解决可扩展性问题。研究表明,BiCNet可以自动学习各种最佳策略来协调多个智能体,类似于有经验的人类玩家在玩星际争霸时所采用的策略,从轻微的无碰撞的移动到基本的攻击和逃跑策略,再到复杂的掩护攻击和集中火力攻击(但不浪费)。研究者在一系列不同难度等级的战斗任务中进行了实验。通过对具有不同程度困难的一系列作战任务进行测试,进行了实验。该研究所用的方法优于目前已有的最先进方法,并显示出了在现实世界的多智能体任务中广泛的应用前景。

BiCNet的架构

星际争霸中的战斗,也就是微观管理任务,是指与敌方成员作战时对军队进行的低级别、短时间的控制。研究者把它作为一个零和随机游戏(SG),即多个智能体参与的多状态动态游戏。

回报设计在多智能体学习合作或竞争行为的过程中非常重要。研究者将回报分为了全局回报(同一队中的每个智能体分得同样的回报)和个体回报。

研究者接下来介绍了两个网络的设计。对于每个智能体来说,它们的参数是共享的,这使得参数的数量独立于智能体的数量。所产生的更紧凑的模型将能够学习多个智能体所经历的各种情况,从而加速学习过程。

为了在智能体之间进行有效的沟通,研究者通过采用双向递归神经网络(RNN)在内部层引入专门的双向连接。

image
图1 双向协调网络(BiCNet):(a)带分组的多智能体策略网络 (b)带回报设计的多智能体Q值网络

研究中引入的双向协调网络(BiCNet)的结构如图1所示。它由策略网络(actor)和Q值网络(critic)组成,两者均基于双向RNN。策略网络用于独立智能体做出行动决策。因此,独立智能体能够保持自己的内部状态,同时能够与其他合作者共享信息。双向递归机制不仅是智能体之间的交流手段,而且还作为本地记忆状态。研究者进一步加强了actor的分组概念,这在社会行为中起着重要的作用。作为输入,我们允许少量的智能体程序在进入递归层之前构建局部相关性。因此,该模型的表现要好得多。在实验中,我们发现基于分组的actor有助于学习社会活动,如集中火力攻击。 Q值网络将策略网络的状态和行为作为输入,向每个独立智能体返回估算的本地Q值。然后组合本地Q值,提供全局回报的估计值。

协作策略的学习

经过充分训练, BiCNet能有效展现五种智能协作策略:

无碰撞地协调移动

image
(a)训练早期 (b)训练早期 (c)训练好后 (d)训练好后
图2 战斗中的协同移动 3 Marines (本方)vs 1 Super Zergling (敌人)

研究者观察到,在学习的初始阶段(如图2(a)和(b)所示),多个智能体以相当不协同的方式移动,特别是当两个智能体靠近彼此时,其中一个可能会无意中阻挡了另一个的路。而随着训练的增加,碰撞次数会急剧下降。最后,当训练稳定后,协同的动作也会出现,如图2中右图所示。这种协同的动作也在图6(a)和(b)中示出。

攻击和逃跑策略

image
(a)被攻击时逃跑(b)安全时反击(c)再次逃跑 (d)再次反击
图3 战斗中的攻击和逃跑策略 3 Marines (本方)vs 1 Zealot (敌人)

对于人类玩家来说,在星际争霸战斗中一个常用的战术是攻击和逃跑,也就是在被攻击时快速逃离,安全后进行反击。我们发现BiCNet 迅速学会了攻击和逃跑策略,无论是在单一智能体还是多智能体的环境中。图3显示了这一点。尽管攻击和逃跑策略很简单,它却是各种高级、复杂的合作策略的基础。

掩护进攻

掩护进攻是经常在现实战场上使用的高级合作策略,其要义在于让我方一个智能体吸引敌方的注意和火力,与此同时其他智能体乘机发动进攻。掩护进攻的操作难点在于如何将多智能体的移动转换为协同序列式的攻击和逃跑。如图4和图5所示。这一点BiCNet 掌握得很好。

image
(a)时间节点1 (b)时间节点2 (c)时间节点3 (d)时间节点4
图4 战斗中的掩护进攻策略 4 Dragoons (本方)vs 2 Ultralisks (敌人)

在图4的时间节点1中,BiCNet 控制着下面的两个 Dragoon 从敌方 Ultralisk 处逃离,这时右上角的一个智能体立刻开始攻击 Ultralisk,以掩护 Dragoon。作为回应,敌方开始进攻上方的智能体(时间节点2).这时下面的两个Dragoon 开始反击,来掩护上方的同伴。通过这样连续不断的循环掩护,Dragoon 队保证了对敌人的持续打击,同时将本方团队损失降到了最小(因为敌人浪费了时间来定位不同的 Dragoon)。

image
(a)时间节点1 (b)时间节点2 (c)时间节点3 (d)时间节点4
图5 战斗中的掩护进攻策略 3 Marines (本方)vs 1 Zergling (敌人)


在战斗“3 Marines vs. 1 Super Zergling”(如图5)中,我们修正了敌人的数量,并通过改变攻击得分和 Zergling 的损坏情况,来调整游戏难度。

集中火力攻击(但不在已死的目标上浪费子弹)

image
(a)时间节点1 (b)时间节点2 (c)时间节点3 (d)时间节点4
图6 战斗中的集中火力攻击策略 15 Marines (本方)vs 16 Marines (敌人)

随着智能体数量的增加,如何高效配置进攻资源变得很重要。既不能漫无目的的攻击所有敌人,也不能只关注一个敌人。策略网络中的分组设计在这一环节扮演着关键角色。在实验中,研究者根据智能体的地理位置对智能体进行了动态分组。以此为基础,BiCNet 获得了多智能体的组内行为和组间行为数据。对于同一组的智能体来说,它们的行为连贯性好,并被期望能够集中火力在一到两个敌人身上;对于不同组的智能体来说,对它们的期望是将火力集中在不同的敌人身上。在图6的“15 Marines vs. 16 Marines”战斗中,本方的战斗单位被粗略地划分到三个组中。研究者发现智能体学习到了集中火力攻击两、三个敌人,而不同组的智能体能够学到将阵型散开,以使火力形成网状。即使本方战斗单位减少了,每一组仍然可以被动态指派,来确保有3-5个单位在集中火力攻击同一个敌人。

异构智能体间的合作

image
(a)时间节点1 (b)时间节点2 图7 战斗中的异构智能体合作策略 2 Dropships 和 2 Tanks (本方)vs 1 Ultralisk (敌人)

星际争霸中,有10种智能体类型,每一个都有其独特的功能、行动空间、优势以及弱点。对于一场包含了多类型单位的战斗来说,研究者期待合作可以以各单位的特性为基础来展开。实际上,通过将参数限制为只可分享给同类型的单位,异构合作可以轻易地在研究者所提出的框架中实施。这篇论文研究了一个简单的案例:两艘 Dropship 和两辆坦克协作对战1个Ultralisk。Dropship 没有进攻能力,但它最大可以在空中移动两个地面单位。如图7所示,当 Ultralisk 进攻一辆坦克时,Dropship 护送坦克逃离了攻击。与此同时,另一艘 Dropship 将一辆坦克卸载到地面,对 Ultralisk 发起攻击。Dropship 和坦克之间一直这样合作,直到Ultralisk被摧毁。

性能表现对比


image
在十个机枪兵对阵十三个小狗任务中,小组人数对于胜率的影响


image
不同算法胜率曲线(10 枪兵 vs.13 小狗任务),CommNet是Facebook的相关算法,BiCNet 的表现最好


image
不同兵种对战的表现对比。其中 M=机枪兵,Z=小狗,W=幽灵战机。阿里的算法CommNet表现最好。

小结

本文利用双向神经网络,介绍了一种新的深度多智能体加强学习框架。凭借构建一个向量化的 actor-critic 框架——其中每个维度对应于一个智能体——系统学会了合作。内部层中的双向沟通实现了协调。通过端到端的学习,BiCNet 可以成功学到几种有效的协调策略。研究实验显示了其合作能力和在星际争霸中掌握各种战斗的能力。

在实验中,研究者发现在特定的回报和学习策略这二者之间存在高度相关性,计划在未来深入调查二者关系,并研究策略是如何通过智能体间的网络沟通的。此外,当游戏双方都是深度多智能体模型时,探索一下它们之间的纳什均衡也很有趣。
论文下载:https://arxiv.org/abs/1703.10069

GymStarcraft是阿里巴巴最新开源的用于研究星际AI的工具,Github地址:https://github.com/alibaba/gym-starcraft


image

在Gym StarCraft中,AI和强化学习研究者可以非常方便地使用Python语言来进行深度强化学习智能Agent的开发,它底层完成了对TorchCraft和OpenAI Gym的封装,支持基于TensorFlow和Keras等主流算法框架进行开发,仅需几十行代码即可完成一个基本的智能Agent的开发。同时,便于评测智能Agent的有效性,Gym StarCraft正在被集成在OpenAI Gym这一主流的强化学习AI评测平台中,支持世界各地的星际AI研究者基于它去进行公平、快捷的效果评估,为广大开发者提供了一个人工智能的开放协作研究平台。对于强化学习的普及和推广起着关键性作用。
.
原文链接

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: