(缺少一些公式的图或者效果图,评论区有惊喜)
(个人学习这篇论文时进行的翻译【谷歌翻译,你懂的】,如有侵权等,请告知)
Multiagent Bidirectionally-Coordinated Nets
Emergence of Human-level Coordination in Learning to Play StarCraft Combat Games
多主体双向协调网络
在学习玩星际争霸游戏时出现人类协调
摘要
现实世界的人工智能(AI)应用通常需要多个agent协同工作。人工智能体之间有效的沟通和协调是迈向通用人工智能不可或缺的一步。在本论文中,我们以 RTS 游戏《星际争霸》为测试场景,设定任务为多个agent互相协作试图击败敌人。为了保证沟通方式有效且可扩展,我们引入了多agent双向协调网络(BiCNet),它具有向量化actor-critic形式。我们验证了 BiCNet 可以协调不同兵种,在不同的场景和两方智能体数量任意的情况下正常工作。我们的分析证明,在没有手动标记数据进行监督学习的情况下,BiCNet 可以学会多种有经验的人类玩家展示出的协调策略。而且,BiCNet 能够轻松适应不同类智能体任务。在实验中,我们在不同的场景下用我们的新方法与不同的基准进行了对比;BiCNet 展现出了最先进的性能,它具有在现实世界大规模应用的潜在价值。
介绍
近十年来,人工智能(AI)领域取得了巨大的进步。在有标签数据的监督下,机器在某种程度上超过了人类对视觉识别和语音识别的认知,同时以反馈奖励为补充,单个AI单元(aka agents)在各种游戏中击败人类,包括Atari视频游戏(Mnih et al. 2015),Go游戏(Silver et al. 2016)和纸牌游戏(Brown and Sandholm 2017)。
然而,真正的人类智能包含了社会和集体智慧,这为实现人工智能(Artificial General Intelligence, AGI)的宏伟目标奠定了重要基础(Goertzel和Pennachin 2007)。正如群众采购所表明的那样,汇集来自公众的努力将解决单个人无法想象的问题。即使是像一群组织良好的蚂蚁一样的社会动物,也可以完成具有挑战性的任务,例如打猎,建立王国,甚至发动战争,尽管每只蚂蚁本身都很薄弱。有趣的是,在未来的算法经济时代,具有一定基本人工集体智能水平的AI agents开始从多个领域涌现出来。典型的例子包括股票市场上博弈的交易机器人(Deboeck 1994),广告投标agents通过在线广告交换机互相竞争(Wang,Zhang和Yuan 2017),以及通过智慧预测用户兴趣的电子商务协作过滤推荐人(Schafer,Konstan和Riedl 1999)。
因此,我们认为,AGI的下一个重大挑战就是要回答多个AI agents如何通过他们的激励措施和经济约束共存的环境经验来学习人类级别的合作或竞争。 随着深度强化学习(DRL)的蓬勃发展(Mnih et al. 2015; Silver et al. 2016),研究人员开始解决多学科问题(Schmidhuber 1996),并提高了学习能力,例如(Sukhbaatar, Fergus,和其他2016; Mordatch和Abbeel 2017)。
在本文中,我们利用实时策略游戏StarCraft作为案例来探索多个agents之间智能协作行为的学习。特别是,我们专注于星际争霸的微观管理任务(Synnaeve et al. 2016),每个玩家在不同的地形条件下控制自己的单位(具有不同的功能合作)在对抗中摧毁对手的军队。 这种游戏被认为是具有比Go游戏更多状态的计算机最难的游戏之一(Synnaeve et al. 2016)。 这种大规模多agents系统的学习面临着一个主要挑战,即随着涉及的agents数量的增加,参数空间呈指数增长。因此,agents的行为可以变得如此复杂,以至于任何联合学习者方法(Sukhbaatar,Fergus和其他人2016)都会效率低下,无法应对游戏中agents数量的不断变化。
我们将星际争霸作战任务的多主体学习制定为零和随机博弈。Agents通过我们提出的双向协调网络(BiCNet)进行通信,而学习是通过使用多主体actor-critic框架来完成的。 另外,我们还引入参数共享来解决the scalability issue。我们观察到,BiCNet可以自动学习各种协调Agents的最佳策略,类似于经验丰富的人类玩家在玩星际争霸游戏时所采用的方式,从无碰撞的平凡移动到基本的战术命中,运行到复杂的cover attack(掩护攻击), and focus fire without overkill。我们通过测试一系列不同难度的作战任务来进行实验。我们的方法胜过了最先进的方法,并且显示了其在实际应用中的广泛多agents任务中的潜在用途。
Related Work
多agents环境中的交互和协作研究历史悠久(Littman 1994; Schmidhuber 1996)。尽管仅限于玩具示例,但作为一种手段,强化学习早已应用于多agents系统,以学习最佳的协作策略。多agents RL中的关键组件之一是学习agents之间的通信协议。通过深入的学习,代表性的解决方案包括可区分的智能体间学习(DIAL)(Foerster et al. 2016)和CommNet(Sukhbaatar, Fergus和其他2016),这两种方法都可以通过反向传播进行端对端trainable。
DIAL(Foerster et al. 2016)是在允许agents之间传递消息的部分可观察设置中引入的。agents也被称为独立学习者。也可以找到学习独立agents的想法(Lauer和Riedmiller 2000; Kapetanakis和Kudenko 2002; Lauer和Riedmiller 2004; Foerster等,2016)。在DIAL中,每个智能体由一个循环神经网络组成,该网络输出个体智能体的Q值并为每个时间步骤传送一条消息。然后将生成的消息转移到其他agents,并在下一个时间步中用作其他agents的输入。接收到的消息将嵌入agents当前的观察结果和最后一个行动,作为全局信息的表示形式。独立agents之间的沟通是一种方法,可以缓解agents间臭名昭着的非平稳问题,因为梯度至少会在agents之间流动; 然而,研究人员仍然在为复杂的环境寻找更好的解决方案,如星际争霸。
相比之下,CommNet(Sukhbaatar,Fergus和其他2016)则专为在完全可观察环境中的联合行动学习者设计。与DIAL不同,CommNet在多agents设置中提出了一个单一网络,将平均消息传递给层间的agents模块。然而,由于通信网络是完全对称的并且嵌入到原始网络中,因此缺乏处理异构agents类型的能力。它也是所有agents的单一网络,因此其可扩展性尚不清楚。在本文中,我们通过使用递归神经网络(recurrent neural networks)创建专用的双向通信信道来解决这些问题(Schuster和Paliwal,1997)。因此,异构agents可以使用不同的参数和输出操作集创建。双向本质意味着沟通不完全对称,并且agents之间的不同优先权有助于解决多个最优联合行动之间的任何可能联系(布索尼,Babuska和De Schutter 2008; Spaan等2002)。
在特定的星际争霸游戏中已经探索过多agents系统。Google DeepMind发布了一个基于星际争霸II的游戏界面,并声称即使采用最先进的RL算法,也很难在整个游戏中取得重大进展(Vinyals et al. 2017)。Usunier等人提出了一种启发式探索技术,用于学习微观管理任务中的确定性政策。Synnaeve等人和Usunier等人关注于贪婪的MDP方法,即agents的行为明确依赖于其他agents的行为。在我们的论文中,通过使用双向RNN(Schuster和Paliwal,1997),agents的依赖关系模仿隐藏层。与贪婪解决方案相比,一个显着的好处是,尽管保持简单,通信发生在潜在空间中,以便高层信息可以在agents之间传递; 同时,来自所有agents的梯度更新可以通过整个网络高效传播。
最近,Foerster等人试图通过改进replay buffer来解决多阶段学习中的非平稳性问题,并以所有agents完全分散的方式测试了DIAL模型。然后提出COMA模型(Foerster等2017a)来解决多agents credit assignment的挑战。通过引入counterfactual reward(反事实奖励); 以centralised critic and decentralised actors的方式培养多agents系统的想法得到进一步强化。同时,MADDPG也在一些简单的非起动案例中采用了集中学习和分散执行的框架(Lowe et al. 2017)。相比之下,我们的BiCNet利用存储器形成通信参数空间与agents数量无关的agents之间的通信通道。
Multiagent Bidirectionally-Coordinated Nets
StartCraft Combat as Stochastic Games(星际争霸随机游戏战斗)
“星际争霸”战斗游戏,又称微观管理任务,是指在与敌方成员的战斗中对军队成员进行的低级别短期控制。对于每一次战斗,一方的agent都是完全合作的,他们与对手竞争;因此,每个战斗都可以被看作是N个agent和M个敌人之间的零胜负竞争游戏。我们将其表述为一个零和随机博弈(SG)(Owen,1995),即多个agents在多重状态下的动态博弈。SG可以用一个元组来描述 ,设S表示当前游戏的状态空间,所有agents共享,初始状态s1遵循s1 ∼p1(s),我们定义被控制的agents i的动作空间为Ai,敌人j的动作空间为Bj。 表示环境的确定性转移函数, 表示i∈[1,N]时各Agent i的回报函数。
为了保持一个可以允许任意数量的agents的灵活框架,我们认为agents,无论是受控的还是敌人,共享当前游戏的相同状态空间S; 并且在每个阵营内,agents是同质的,因此分别具有相同的动作空间A和B. 也就是说,对于每个Agent i∈[1,N]和敌人j∈[1,M],Ai = A和Bj = B。由于离散动作空间难以处理,因此我们考虑连续控制输出,例如攻击角度和距离。
在定义奖励函数时,我们根据两个连续时间步骤之间的健康水平差异引入时变全局奖励:
为简单起见,我们将下标t放在全局奖励r(s, a, b)中。对于给定的时间步骤t和状态s,受控agents采取行动 ,敌人采取行动 ,并且 表示agent i的减少的健康水平。请注意, 方程(1)是从受控制的agent方面提出的; 敌人的全局奖励恰恰相反,这使得两个阵营的奖励总和等于零。由于随着时间的推移,健康水平不会增加,因此等式(1)为如果敌人的健康水平降低超过我们的水平,则在时间步骤t给予积极(正数)的回报。
在定义的全局报酬r(s, a, b)下,当敌人采取联合行动时,受控agent共同采取行动。agent的目标是学习一个策略(policy),最大化the expected sum of discounted rewards,即 ,其中0≤λ<1是discount factor。相反,敌人的联合政策是尽量减少期望的总和。相应的,我们有以下Minimax游戏:
其中 由T(s,a,b)确定。 是最优的动作状态值函数,它遵循Bellman最优方程。在这里,我们建议使用确定性policy 的受控agents和确定性policy 的敌人(Silver et al.2014)。在小规模MARL问题中,常见的解决方案是采用Minimax Q-learning(Littman 1994)。但是,Minimax Q-Learning通常难以应用于复杂的游戏。为了简单起见,我们考虑的是敌人的政策是固定的,同时为未来的工作留下专门的对手建模。然后,方程(2)中定义的SG有效地变成了MDP问题(He et al. 2016):
为了简洁起见,我们放弃符号bφ。
Local, Individual Rewards
仅使用公式(1)中的全局奖励及其产生的零和游戏的一个潜在缺点是,它忽略了团队协作通常由本地合作和奖励功能组成的事实,并通常包括特定的内部结构。而且,在实践中,每个agents都倾向于有自己的目标来推动合作。为了对此进行建模,我们扩展了前一部分中的公式,即将公式(1)替换为每个agents的本地回报,并且包括对其与已与之交互(完成或合作)的其他agents的归属评估,
其中每个agents包含 ,即是当前正在与之交互的其他agents和敌人的top-K列表。用等式(1)代替它,对于策略函数的相同参数θ,对于agent i我们有N个Bellman方程式,其中i∈{1,...,N}:
Communication w/ Bidirectional Backpropagation(通信w /双向反向传播)
虽然方程(5)使用单agent方法,例如deterministic policy gradient(确定性政策梯度)(Silver et al. 2014; Mnih et al. 2016),立即适用于学习个体行为,然而,缺乏促进团队合作的原则性机制。在本文中,我们通过提出双向协调网络(BiCNet)允许agents之间的通信(就在采取个别行动之前)。
总体而言,BiCNet由multiagent actor网络和multiagent critic网络组成,如图(1)所示。 policy network(actor)和Q-network(critic)都是基于双向RNN结构(Schuster和Paliwal,1997)。与local view一起共享观察结果的policy network,为每个agent返回行动。由于双向循环结构不仅可以用作通信渠道,还可以用作a local memory saver,每个agent都能够维护自己的内部状态,并与合作者共享信息。
图1:双向协调网络(BiCNet)。作为一种沟通手段,双向循环网络已被用于连接每个agent的policy和Q network。学习是通过文本中导出的multiagent deterministic actor-critic完成的。
对于通过BiCNet进行学习,我们可以想象通过展开长度为N的网络(受控agent的数量),然后通过时间反向传播(BPTT)(Werbos 1990)来计算反向梯度。梯度是从所有agents及其actions汇总而来的,然后将梯度传递给个人Qi function和the policy function。换句话说,首先传播来自所有agents奖励的梯度以影响每个agent行为,并且产生的梯度进一步传播回到更新参数。
为了在数学上看到这一点,我们用Ji(θ)表示单个agent i的目标; 即将其预期的累积个人报酬ri最大化为 ,其中 是在传播 与policy aθ对应的折扣状态分布(discounted state distribution corresponding),即 ; 它也可以被选为遍历MDP的平稳分布。因此,我们可以写出由J(θ)表示的N个agents的目标如下:
接下来,我们介绍一个deterministic policy gradient定理的Multiagent类似物。我们在补充材料中给出的证据采用了类似的方案(Silver et al. 2014)和(Sutton et al. 2000)。
Theorem 1 (Multiagent Deterministic PG Theorem)(Multiagent确定性PG定理)
给定N个agent,这些agent在用θ、折扣状态分布 和方程(6)中定义的目标函数J(θ)参数化的策略中共同表示,我们具有如下策略梯度(policy gradient):
在确保充分探索(exploration)的地方,我们应用OrnsteinUhlenbeck过程在每个时间步骤中为actor网络的输出添加噪声。在这里,我们进一步考虑了policy决定论的actor-critic算法(Lillicrap et al. 2015; Silver et al. 2014)以减少方差。特别是,我们在方程(7)中使用critic函数来估计可以进行off-policy探索的action-value 。在训练critic时,我们使用平方损失之和,并且对于参数化critic 具有以下梯度,其中ξ是Q网络的参数:
请注意,该策略网络也会从多个agent汇总梯度。通过方程(7)和方程(8),我们应用随机梯度下降(SGD)来优化actor、critic网络。上面的algorithm伪代码在补充材料中给出。
BiCNet与贪婪的MDP方法明显不同,因为agent的依赖关系嵌入在潜在层(latent layers)中,而不是直接作用于行为。虽然简单,但我们的方法允许agent之间的完全依赖关系,因为方程(7)中所有操作的梯度可以通过整个网络高效传播。然而,与CommNet(Sukhbaatar,Fergus和其他2016)不同,我们的沟通并不完全对称,我们通过修正加入RNN的agent的order来维护某些社会约定和角色。这将有助于解决多个最佳联合行动之间的任何可能的联系(布索尼,Babuska和De Schutter2008; Spaan等2002)。
在不同的agents中,参数是共享的,因此参数的数量与agents的数量无关(类似于vanilla RNN中跨时域的共享参数)。参数共享导致模型的紧凑性,可加速学习过程。此外,这也可以实现域调整,其中在小型的agents 团队(通常为三个)上训练的网络在不同的战斗场景下的测试期间有效地扩大到更大的agents团队。
Experiments
Experimental Setup
为了理解我们提出的BiCNet的特性及其性能,我们在不同设置的星际争霸上进行了实验。在与Sukhbaatar,Fergus和其他类似的实验设置之后,BiCNet控制着一群试图击败由内置AI控制的敌方单位的agents。
可以通过改变单位类型和双方单位数量来调整战斗难度。我们测量了胜率,并将其与最先进的方法进行了比较。比较基准既包括基于规则的方法,也包括深度强化学习方法。我们的设置总结如下:BiCNet控制前面的单元,内置的AI控制后者。我们将这些设置分为三种类型:
1)轻松战斗--3海军陆战队(marine)对1个超级小狗; 3个幽灵(wraith)对3飞龙(dragoon);
2)艰苦战斗--5海军陆战队与5海军陆战队;15海军陆战队与16海军陆战队;20海军陆战队与30个小狗;10海军陆战队与13个小狗;以及15个幽灵与17个幽灵;
3)异类战斗—[2艘运输机(dropship)+2辆坦克(tank)]与1辆超级英雄。
基于规则的方法允许我们有一个我们可以理解的参考点。这里我们采用了三条基于规则的基线:星际争霸内置的AI,攻击最弱的,攻击最接近的。
对于深度强化学习方法,我们将以下工作作为基准:
独立控制者(IND):我们为单一agent训练模型,并在战斗中单独控制每个agent。请注意,尽管这种方法很容易适用于各种多agent战斗,但不同agent之间没有信息共享。
完全连接(FC):我们为所有agent在多agent环境中训练模型,并在战斗中集体控制它们。agent之间的通信是完全连接的。请注意,当任何一方的单位数量发生变化时,都需要重新训练不同的模型。
CommNet:CommNet(Sukhbaatar,Fergus和其他2016)是一个多agent网络,旨在学习在多个agent之间进行通信。为了进行公平比较,我们在同一(州,行动)空间实施了CommNet和BiCNet,并遵循相同的培训流程。
GMEZO:GreedyMDP具有片段零阶优化(GMEZO)(Usunier et al. 2016)被提出来特别解决星际争霸的微观管理任务。引入了两个新颖的想法:通过对MDP agent的贪婪更新进行合作,并在参数空间中添加偶发性噪音以进行探索。为了将重点放在与这两个想法的比较上,我们用贪婪的MDP方法取代了我们的双向公式,并且在我们的BiCNet的最后一层Q网络的参数空间中采用了带有噪声的episodic zero-order optimisation。我们保持其他设置完全相同。
BiCNet:在BiCNet中,我们定义了与Sukhbaatar,Fergus和其他人不同的行动空间。 具体而言,每个个体agent的动作空间被表示为三维实矢量,即连续动作空间。第一维对应于攻击概率,据此我们从[0,1]中抽取一个值。如果采样值为1,则agent发起攻击; 否则,agent移动。第二维和第三维对应于攻击的程度和距离。通过以上三个量,BiCNet可以精确地命令一个agent攻击某个位置。请注意,这与执行诸如“攻击敌方ID”等高级命令不同,换句话说,如何有效输出伤害本身就是一种智能形式。
Parameter Tuning(参数调整)
在我们的训练中,Adam(Kingma and Ba 2014)被设置为优化器,学习率等于0.002,其他参数由默认值设置。我们将每episode的maximum steps设置为800。
我们研究了batch_size(批量大小,应该是SGD的批量大小)的影响,结果显示在图2中的“2个海军陆战队对1只超级小狗”战斗中。给出了两个度量标准,即获胜率和Q值。我们通过选择经过800 episodes(超过700k步)训练的最佳BiCNet模型,微调batch_size,然后在100个独立游戏上进行测试。batch_size为32的模型在600k的训练步骤后获得最高胜率和最高平均Q值。我们还观察到skip frame 2在300k和600k训练步数之间给出了最高的平均Q值。我们在测试的其余部分使用学习的最优值来修正这个参数。
图2:batch_size在战斗中的影响--2个海军陆战队vs 1只超级小狗
在图3中,我们还比较了参数学习的收敛速度,通过绘制winning rate和training episodes的数量。它表明,提出的BiCNet模型比两个主要的星际争霸基线(baselines)有更快的收敛速度。
图3:战斗学习曲线“10名海军陆战队员和13名小狗”
Performance Comparison(性能比较)
表1比较了我们提出的BiCNet模型与多种作战情景下的基线。在每种情况下,BiCNet都经过了超过10万步的训练,我们衡量的性能为100次测试游戏的平均胜率。内置AI的获胜率也作为战斗难度的指标。
表1:性能对比 M:海军陆战队,Z:小狗,W:幽灵。
如表1所示,在4/5场景中,BiCNet优于其他基准模型。特别是,如果agent的数量超过10个,那么需要紧密合作,BiCNet和the second best 合作之间的业绩差距的边际开始增加。
在“5 M vs. 5 M”的战斗中,胜利的关键因素是“focus fire” on the weak,IND和FC模型的表现相对较差。我们认为这是因为这两种模式在培训阶段都没有与agent之间的明确协作机制; 协调对单个敌人的攻击甚至是具有挑战性的。相反,GMEZO,CommNet和BiCNet,明确或隐含地设计用于多主体协作,可以掌握和掌握这一简单策略,从而获得更好的表现。 此外,值得一提的是,尽管“5名海军陆战队员与5名海军陆战队员”的表现仅次于第二名,但我们的BiCNet在学习“集中火力”的想法之前只需要10次战斗,胜率超过85%,而CommNet需要更多超过50 episodes以低得多的速度把握“集中火力”的技巧。
请注意,哪一方开始第一次攻击的顺序将影响战斗。这就解释了为什么在“5 M vs. 5 M”的战斗中,左边的内置AI(作为第一个攻击者)比右边的内置AI具有更高的获胜率0.720的优势,尽管双方海军陆战队的人数相同。
How It Works
为了进一步了解BiCNet的工作原理,我们进行了两项研究。 我们首先检查一个更高的Q值是否代表一个更优化的agent联合行为。当在图4中学习到协同覆盖攻击时,我们将模型输出可视化。收集critic网络最后的隐藏层超过10k步的值,然后使用t-SNE算法嵌入二维空间(Maaten和Hinton 2008)。我们观察到具有高Q值的steps聚集在嵌入空间的相同区域中。例如,图4左上角显示当敌人不能攻击agent时,agent在远距离攻击敌人,并且在此状态下,模型预测高Q值。相比之下,在图4左下方,agent在靠近敌人时遭受敌人的伤害,导致低Q值。
图4:3个海军陆战队与1个超级小狗战斗的可视化。
左上:Q值高的状态; 左下:低Q值状态;
右图:使用TSNE对每个步骤的隐藏层输出进行可视化,并用Q值进行着色。
我们的下一个目标是检查agent在他们的行为之前交换的信息是否有任何语义含义。 然而,由于星际争霸游戏的高度可变性,迄今为止我们还没有观察到任何具体含义。我们只考虑一个简单的游戏,只关注双向通信,其中与通信无关的复杂性被删除。具体而言,这个更简单的游戏由n个agent组成。在每一轮中,每个agent观察一个随机生成的数字(在截断高斯下的范围[-10,10]内采样)作为其输入,而没有其他。每个agent的目标是输出所有agent观察到的输入的总和。每个agent根据总和与他们的预测(动作输出)之间的差值获得奖励。
在设置三个agent猜测与一个Bi-RNN通信层(隐藏状态大小为1)之后的MLP层的总和时,图5显示已经在三个agent之间传送的值。如图所示,当agent 1观察到a high observation number时,agent1将a high value传递给agent 2。当agent 2与agent 3通信时,它倾向于在其自己和先前传送的agent(即agent 1)之间输出“加法”值。换句话说,当agent 1和2的observation number之和变高时,隐藏状态值增加。两个发送者都学会了让另一个接收者获得一个有用的信息,以便预测所有agent观察的目标总和。
图5:左图:agent 1在agent guessing umber游戏中传递给agent 2的隐藏状态值;
中间:agent 1和agent 2通过agent guessing number游戏传递到agent 3的隐藏状态值; 右:彩条。
我们进一步用agent n = 5,10,20的num.来设置游戏。除了之前测试的四条基线之外,我们还增加了一个带有10个隐藏节点的监督(supervised) MLP作为额外(根据给予agent的输入预测总和)。结果在表2中进行了比较。度量标准是每个agent的行为和目标之间差异的绝对值。 我们看到我们的方法明显优于其他方法。第二好的是CommNet。可能的解释是它以平均值作为信息,因此自然适合问题,而我们必须隐含地学习additives implicitly。
表2:使用不同agent数量的guessing游戏中的性能比较。结果以在10000个测试步骤中的
|action value - target value|及其标准偏差给出; 值越小意味着性能越好。SL-MLP是一个监督MLP作为额外的基准。进行t-test,重要标准(p-value <0.05)与次要标准相比标记为*。
Emerged Human-level Coordination(出现人为协调)
经过充分的训练,BiCNet将能够发现多种有效的协作策略。在本节中,我们将对BiCNet学到的协作政策进行定性分析。我们将演示视频添加到补充材料,并将实验配置引用到部分实验。
协调移动而不会发生碰撞(Coordinated moves without collision)。我们观察到,在学习的初始阶段,在图6(a)和(b)中,agent以相当不协调的方式移动。特别是,当两个agent彼此靠近时,一个agent经常无意中阻止他人的路径。随着越来越多的训练(在“3个海军陆战队对1个超级小狗”战斗场景中近50 episodes中超过40k步),碰撞数量急剧减少。 最后,当训练变得稳定时,协调运动出现,如图6(c)和(d)所示。如图9(a)和(b)所示,这种协调行动在大规模战斗中变得重要。
图6:在战斗中没有碰撞的协调动作--3海军陆战队员(我们)与1个超级小狗(敌人)。黄线指出每个agent将要移动的方向。
攻击和逃跑战术(Hit and Run tactics)。对于人类玩家来说,在星际争霸战中控制agent的常用策略是命中与逃跑(Hit and Run),即当agent处于被攻击状态时移动agent,并在agent保持安全时再次反击。我们发现BiCNet可以快速掌握Hit and Run的策略,无论是单个agent还是多个agent设置。我们举例说明了图7中Hit and Run的四个连续运动。尽管简单,但Hit and Run可以作为更先进和更复杂的协作策略的基础。
图7:战斗中的命中和战术3战士(我们)与1个狂热者(敌人)。
协调掩护攻击(Coordinated cover attack)。Cover attack是经常在真实战场上使用的高级别协作战略。掩护攻击的本质是让一方agent从敌人身上汲取火力或注意力,同时,其他agent利用这段时间或距离差距输出更多伤害。进行掩护攻击的难度在于如何以协调一致的方式安排多个agent的顺序hit and run way。如图8所示,BiCNet可以很好地掌握它。从图8(a)开始,BiCNet控制底部的两个龙骑兵远离敌方的超级箭,而右上角的敌人立即开始攻击敌方的超级武器以cover them up。作为回应,敌人开始在时间步骤2攻击最高的敌人。底部的两个龙骑兵反击并形成另一个掩护。通过不断循环这一战略,龙骑兵团队保证对敌人的连续攻击输出,同时最大限度地减少团队级别的伤害(因为敌人浪费时间瞄准不同的龙骑兵)直到敌人死亡。
图8:战斗中的协调掩护攻击4龙骑兵(我们)与1辆超级敌人(敌人)
集中火力而没有过度地杀伤(Focus fire without overkill)。随着agent数量的增加,如何有效分配攻击资源变得重要。既不会散布在所有的敌人身上,也不会集中在一个敌人身上(wasting attacking fires is also called overkill)。我们观察到BiCNet学会控制每个agent将他们的注意力集中在特定的敌人身上,而different agents tend to move to the sides to spread the fire and avoid overkill。一个例子可以在图(9)中找到。
Figure 9: ”focus fire” in combat 15 Marines (ours) vs. 16 Marines (enemy).
图10:战斗中的协同异类agents -- 2艘Dropship和2辆坦克与1辆Ultralisk。
异类agent之间的合作(Collaborations between heterogeneous agents)。在星际争霸中,有数十种类型的agent单位,每种都有独特的功能,动作空间,力量和弱点。对于涉及不同类型单位的战斗,我们希望通过合作达成双赢的局面。事实上,通过将参数共享仅限于相同类型的单元,可以在我们的框架中轻松实现异构协作。在本文中,我们研究一个简单的案例,其中两艘Dropships和两辆Tank协同对抗Ultralisk(英雄)。Dropship没有攻击的功能,但它最多可以在空中携带两个地面单位。如图10所示,当Ultralisk攻击其中一个坦克时,Dropship护送坦克逃离攻击。同时,另一艘Dropship将坦克卸到地面以攻击Ultralisk。在各方面,Dropship和坦克之间的合作会持续迭代,直到Ultralisk被毁灭。
Conclusions
在本文中,我们介绍了一种新的深度multiagent强化学习。通过构建一个向量化的actor-critic框架来学习动作,其中每个维度对应于一个agent。协调是通过内部层的双向循环通信完成的。通过端到端的学习,我们的BiCNet将能够成功学习一些有效的协调策略。我们的实验证明了它能够在星际争霸战游戏中合作和掌握各种战斗。 我们还展示了BiCNet通过玩星际争霸战游戏可以掌握的五种人类级协调策略。无可否认,量化游戏合作的复杂性总体上是具有挑战性的,我们的分析在本质上是定性的。
下一步,我们计划进行试验,让机器与不同级别的玩家进行竞争。我们还计划进一步调查策略如何通过更复杂环境中的agent之间的网络进行传播,以及是否在StartCraft中可能出现了特定语言(Lazaridou,Peysakhovich和Baroni 2016; Mordatch和Abbeel 2017)。
Supplementary Material
Proof of Theorem 1
根据(Silver et al.2014)中提到的规则条件,我们知道每个agent i的 和 的最高值是s的有界函数。基于正则性和有界性,我们可以分别使用莱布尼茨积分法和Fubini’s定理。请注意,由于策略aθ和环境T的转移矩阵都被认为是确定性的,所以期望值仅仅取决于初始状态S0,这与原来的确定性策略梯度定理不同。根据 的定义和方程(6)中的我们的目标函数,我们推导出多agent deterministic policy gradient theorem,它大部分遵循(Sutton et al. 2000)的界限。
在方程(10)中,因为 是连续的,所以使用莱布尼茨间隔规则交换导数和积分。 对于方程(11),我们使用了Q值的定义。然后,我们对方程(11)中的每个项取出导数得到方程(12)。之后,我们将方程(12)中的第一项和第二项组合起来得到方程(13)中的第一项,而我们注意到我们可以迭代方程(10)和方程(11)来扩展(13)中的第二项。通过总结迭代项,我们得到方程(14),这意味着方程(15)通过使用Fubini’s定理来交换积分的阶数。使用期望来表示方程(15),我们推导出方程(16)。最后,我们得到方程(17),证明完成。