论文翻译--StarCraft Micromanagement with Reinforcement Learning and Curriculum Transfer Learning

 (缺少一些公式的图或者效果图,评论区有惊喜)

(个人学习这篇论文时进行的翻译【谷歌翻译,你懂的】,如有侵权等,请告知)

StarCraft Micromanagement with Reinforcement

Learning and Curriculum Transfer Learning

摘要

近年来,实时策略游戏一直是游戏人工智能的重要领域。本文提出了一个强化学习和课程转换学习方法来控制星际争霸微操作中的多个单位。我们定义了一个有效的状态表示,它可以打破游戏环境中大型状态空间造成的复杂性。然后提出了parameter sharing multi-agent gradient descent Sarsa(λ)(PS-MAGDS)算法来训练单元。我们的单位共享the learning policy,以鼓励合作行为。我们使用神经网络作为函数逼近器来估计动作值函数,并提出奖励函数来帮助单位平衡他们的移动和攻击。此外,还使用转移学习方法将我们的模型扩展到更难的场景,从而加速培训过程并提高学习效果。在小规模情景中,我们的单位成功学会以100%的胜率战胜并击败内置的AI。在大规模情景中,课程转移学习方法用于逐步培训一组单位,并且在目标情景中显示出超过某些基准方法的优越性能。通过强化学习和课程转移学习,我们的单位能够在星际争霸微观管理情景中学习适当的策略。

 

1 Introduction

人工智能(AI)在过去的十年中取得了重大进展。 作为人工智能研究的优秀测试平台,游戏自诞生以来一直致力于AI的发展,包括古老的棋盘游戏[1],[2],[3],[4],经典的Atari视频游戏[5] 6]和不完善的信息游戏[7]。这些游戏具有固定的,有限的一系列动作,研究人员只需要在游戏环境中控制单个agent。此外,还有大量的游戏,包括多个agents,需要复杂的规则,这对AI研究来说更加困难。

在本文中,我们专注于实时策略(RTS)游戏来探索多agents控制的学习。RTS游戏通常是实时运行的,这与轮流玩棋盘游戏不同[8]。作为最流行的RTS游戏之一,星际争霸拥有庞大的玩家基础和众多的职业比赛,需要不同的策略,战术和反应控制技术。对于AI研究游戏,星际争霸提供了一个理想的环境来研究不同难度级别的多个单位的控制[9]。近年来,星际争霸AI的研究取得了令人瞩目的进展,这得益于一些星际争霸AI竞赛和Brood战争应用程序编程接口(BWAPI)1 [10]。最近,研究人员已经开发出更有效的平台来推动这一领域的发展,包括TorchCraft,ELF和PySC2。星际争霸AI旨在解决一系列挑战,如空间和时间推理,多agents协作,对手建模和对抗计划[8]。目前,基于机器学习方法的全面星际争霸游戏的游戏AI设计是遥不可及的。许多研究人员将焦点集中在微观管理上,作为在星际争霸中研究人工智能的第一步[11]。在作战情景中,单位必须在高度动态的环境中进行导航并攻击射程内的敌人。星际争霸的微观管理有很多方法,包括空间导航和避障的潜在领域[12],[13],处理游戏中不完整性和不确定性的贝叶斯建模[14],处理构建顺序的启发式游戏树搜索计划和单位控制[15],神经元进化控制个体单位与手工艺特征[16]。

作为一种智能学习方法,强化学习(RL)非常适合于顺序决策任务。在星际争霸微观管理中,RL方法有一些有趣的应用。Shantia等人使用online Sarsa和具有短期记忆奖励功能的neural-fitted Sarsa来控制单位的攻击和撤退[17],他们使用视觉网格来获取地形信息。这种方法需要手工设计,并且输入节点的数量必须随单位数量而变化。此外,他们应用增量学习方法将任务扩展到6个单元的更大场景。然而,增量学习的胜率仍低于50%。Wender等人在微观管理中使用不同的RL算法,包括Q学习和Sarsa [18]。他们控制一个强大的单位对抗多个弱小单位,而不需要单位之间的合作和团队合作。

在过去的几年中,深度学习在许多复杂问题中取得了显着的性能[19],并大大提高了传统RL算法的泛化能力和可扩展性[5]。深度强化学习(DRL)可以教授agents通过端到端方法在高维状态空间中做出决策。Usunier等人提出一种RL方法来处理深度神经网络的微观管理[20]。他们使用贪婪的MDP为每个时间步顺序选择单位的动作,通过零阶优化来更新模型。这种方法能够控制玩家拥有的所有单位,并观察游戏的完整状态。Peng等人使用actor-critic方法和回归神经网络(RNN)来玩星际争霸战斗游戏[21]。单元的依赖性由隐藏层中的双向RNN建模,其梯度更新通过整个网络高效传播。与Usunier和Peng设计集中控制器的工作不同,Foerster等人提出了一个multi-agent actor-critic方法来处理分散的微观管理任务,这显着提高了集中RL控制器的性能[22]。???

对于星际争霸的微观管理,传统方法在处理复杂的状态和行动空间以及学习合作策略方面存在困难。现代方法依赖于深度学习引入的强大计算能力。另外,使用无模型RL方法学习微观管理通常需要大量的训练时间,这在大规模场景中更为严重。在本文中,我们致力于探索更高效的状态表示以打破由大状态空间引起的复杂性,并提出适当的RL算法来解决星际争霸微管理中的多智能体决策问题。此外,我们引入课程转移学习,将RL模型扩展到各种场景并提高样本效率。

主要贡献分三部分强调。首先,我们提出一种有效的状态表示方法来处理星际争霸微管理中的大型状态空间。该方法将单位属性和距离考虑在内,允许双方任意数量的单位。与相关工作相比,我们的国家代表性更加简洁和高效。其次,我们提出一个parameter sharing multi-agent gradient-descent Sarsa(λ)(PS-MAGDS)算法来训练我们的单元。使用神经网络作为函数逼近器,agents共享集中策略的参数,并同时用自己的经验更新策略。该方法有效地训练同质因子,并鼓励合作行为。为了解决稀疏和延迟奖励的问题,我们在RL模型中引入了包括小型中间奖励的奖励函数。这种奖励功能改善了训练过程,并成为帮助单位相互协作的内在动力。第三,我们提出了一种转移学习方法来将我们的模型扩展到各种场景。与从零开始学习相比,这种方法在很大程度上加快了培训过程并提高了学习效果。在大规模情景中,我们运用课程转移学习方法成功训练一组单位。就胜率而言,我们提出的方法在目标情景中优于某些基准方法。

本文的其余部分安排如下。在第二节中,我们描述了星际争霸微观管理的问题表述,以及强化学习和转移课程学习的背景。在第三节中,我们提出了微观管理的强化学习模型,包括状态表示方法,网络体系结构和动作定义。在第四节中,我们介绍参数共享多agents梯度下降Sarsa(λ)算法和奖励函数。 在第五部分中,我们介绍本文使用的星际争霸微观管理情景和培训细节。在第六节中,我们对实验结果进行了分析并讨论了学习策略。最后,我们对论文做了总结,并提出了一些未来的工作。

2 PROBLEM FORMULATION AND BACKGROUNDS

A. Problem Formulation

在星际争霸的微观管理中,我们需要控制一组单位在特定地形条件下摧毁敌人。具有多个单元的作战场景近似为马尔可夫博弈,马尔可夫决策过程的多agents扩展(MDPs)[21,22,23]。在具有N个agents的马尔可夫博弈中,一组状态S用于描述所有agents和环境的属性,以及一组动作A1,...,AN和观察值O1,...,ON每个agents。
    在战斗中,双方单位需要相互配合。为多个单位开发学习模式在微观管理方面具有挑战性。为了保持一个灵活的框架并允许任意数量的单位,我们认为我们的单位通过将其他单位视为S→Oi环境的一部分,从自己对当前战斗的观察中获得状态空间S。每个单位都在战斗环境中与自己的观察和行动进行交互。 表示从状态S到所有单元动作的连续状态 的转换,R1 ... RN是每个单元产生的回报。为了多agents合作,我们的单位共享政策。每个单位的目标是最大化其预期总回报。

B. Reinforcement Learning

 

图1. agent-environment交互在强化学习中的表示。

 

为了解决星际争霸微管理中的多agents控制问题,我们可以采取强化学习。强化学习是一种机器学习算法,其中主体通过反复试验学习并根据自己的环境经验确定理想行为[24]。我们绘制图1中的经典RL图。它显示了RL agents与环境交互的过程。RL中的agents -环境交互过程被表述为马尔可夫决策过程。状态s中的agents根据策略π做出行动。这种行为导致奖励r,并转移到新的状态。我们将时间t的未来贴现收益定义为 ,其中T是终止时间步长,γ∈[0,1]是决定未来奖励重要性的discount factor。RL模型的目的是学习一个最优策略π,该策略定义了在状态s中选择动作a的概率,从而使总折扣奖励的总和最大化,如:

 

作为最流行的RL算法之一,时间差异(TD)学习是蒙特卡罗方法和动态规划方法的结合。TD方法可以在没有环境模型的情况下从原始经验中学习,并根据部分序列更新估计,而无需等待最终结果[25]。最广为人知的TD学习算法是Q-learning和Sarsa。Q学习估计了在给定状态下进行动作的价值,并将Q-value估计迭代更新为观察到的奖励。Q学习中的TD误差 被计算为

 

Q-learning是一种非政策学习方法,意味着它与选择行动的方式相比,学习了不同的政策。与Q-learning的off-policy机制不同,Sarsa是一种on-policy的方法,这意味着政策既可用于选择行动,也可用于更新以前的Q值[24]。Sarsa更新规则显示为:

 

其中α是学习率。传统的强化学习方法有一些成功的应用,包括在西洋双陆棋中的TD [26]和在控制中的自适应动态编程(ADP)[27],[28]。

强化学习与深度神经网络功能逼近者近年来备受关注。DRL提供了一个机会,训练单个agents以一种端到端的方式解决一系列人类任务[30] [31]。作为最着名的DRL算法,深度Q网络(DQN)使用经验回放技术和目标网络去除样本之间的相关性并稳定训练过程[5]。在过去的几年中,我们目睹了DQN方面的大量改进,包括双重DQN [32],优先DQN [33],决斗DQN [34],分布式DQN [35]和异步DQN [36](double DQN [32], prioritised DQN [33], dueling DQN [34],distributed DQN [35] and asynchronous DQN [36])。除了基于价值的DRL方法(如DQN及其变体)之外,基于策略的DRL方法使用深层网络直接参数化和优化策略[37]。深度确定性政策梯度(DDPG)是DQN的连续模拟,它使用critic来估计当前政策的价值以及使用actor更新policy [38]。基于策略的DRL方法在连续控制中起着重要的作用,包括异步优势行为者评论(A3C)[36],信任域策略优化(TRPO)[39],近端策略优化(PPO)[40](asynchronous advantage actor-critic (A3C) [36], trust region policy optimization (TRPO) [39], proximal policy optimization (PPO)[40])等。传统DRL方法的示例复杂性往往很高,这将这些方法限制在实际应用中。基于模型的DRL方法以数据高效的方式学习价值函数和策略,并且已经被广泛用于感觉运动控制。引导式策略搜索(GPS)使用监督学习算法来训练策略,并使用RL算法来生成引导分布,从而有效地训练深层策略[41]。研究人员还提出了其他一些基于模型的DRL方法,如标准化优势函数(NAF)[42]和嵌入控制(E2C)[43]。

多agents强化学习与我们的工作密切相关[44]。一个多agents系统包括许多在一个环境中进行交互的代理[45] [46]。最近,一些基于深度神经网络的多agents强化学习算法被提出来学习通信[47],协作竞争行为[23]和不完美信息[48]。在我们的工作中,我们使用多agents强化学习方法,在agents之间共享策略来学习合作行为。agents共享中央策略的参数,并同时用自己的经验更新策略。这种方法可以更有效地训练同质agents [49]。

C. Curriculum Transfer Learning(课程转移学习)

一般来说,无模型强化学习方法需要大量样本来学习最优策略。然而,许多具有挑战性的任务很难用传统的RL方法在大的状态和行动空间中学习可接受的策略。在星际争霸的微观管理中,有不同单位和地形条件的场景。从零开始学习不同场景中的有用策略需要花费大量的时间。许多研究人员专注于通过在各种相关任务中利用领域知识来提高学习速度和性能。最广泛使用的方法是转移学习(TL)[50] [51]。在一定程度上,转移学习是跨任务的一种泛化,将知识从源任务转移到目标任务。此外,通过在相同的模型体系结构中使用模型参数,转移学习可以扩展到RL问题[52]。在我们的实验中使用转移学习的过程是首先在源方案中用RL方法对模型进行训练。然后,我们可以使用训练有素的模型作为学习目标场景中微观管理的起点。

作为转移学习的一种特殊形式,课程学习涉及一系列通过提高难度水平组织起来的任务。 最初的任务是用来指导学习者,使其能够在最终任务中表现得更好[53]。 结合课程学习和转移学习,课程转移学习(CTL)方法已经显示出良好的表现,可以帮助学习过程更快地收敛,并在最近的工作中实现更好的最优化[54,55,56]。对于微观管理,使用CTL的一种可行方法是首先掌握一个简单的方案,然后根据这些知识解决困难的方案。通过改变单位的数量和类型,我们可以控制微观管理的难度。通过这种方式,我们可以使用CTL通过一系列逐渐困难的微观管理情景来培训我们的单位,如图2所示。

 

图2.课程转移学习的表示。

存储知识获得解决源任务,并逐渐将其应用于M课程任务以更新知识。最终,将其应用于目标任务。

3. LEARNING MODEL FOR MICROMANAGEMENT

A. Representation of High-Dimension State

State representation星际争霸仍然是一个公开的问题,没有通用的解决方案。我们用游戏引擎的输入来构造一个状态表示,它具有不同的数据类型和维度,如表1所示。所提出的状态表示方法是高效的并且与战斗中的单位数量无关。总之,状态表示由三部分组成:当前步骤状态信息,最后一步状态信息和最后一步动作(最后一步,即是上一步t-1),如图3所示。当前步骤状态信息包括自己的武器的冷却时间(cooldown time),本身的单位生存点(hitpoint,),自身单位距离信息(distances information),敌方单位距离信息,地形(terrain)距离信息。最后一步状态信息与当前步骤相同。我们采取最后一步行动,这已被证明对RL领域的学习过程有帮助[57,58]。所提出的状态表示方法也具有较好的泛化能力,可用于其他需要考虑agent财产和距离信息的作战游戏。

表1我们模型中输入的数据类型和维数。

注意:R意味着输入具有real type,cat意味着输入是分类和单热编码

 

 

图3:星际争霸微观管理场景中一个单位学习模型的表示。

状态表示有三部分,神经网络被用作函数逼近器。

网络输出移动到8个方向和攻击的概率。

所有具有real type的输入都通过其最大值进行归一化。其中,CoolDown和HitPoint每个有1个维度。 我们平均将战斗图分成8个区域,并计算每个区域的距离信息。单位的距离信息列表如下:

•OwnSumInfo:自己单位的距离在每个区域中加总;
•OwnMaxInfo:自己的单位的距离在每个区域最大化;
•EnemySumInfo:敌方单位的距离在每个地区加总;
•EnemyMaxInfo:敌方单位的距离在每个区域都被最大化。

如果某个单位超出中央单位的视距D,则该单位的距离值dis_unit设置为0.05。 否则,如等式(4)所示,该值与到中央单元的距离d成线性关系。

 

此外,还在8个扇区中计算地形距离值dis_terrain。如果障碍物超出中央单元的视距范围,则将该值设置为0。否则,该值与到中央单元的距离也是线性的,如公式(5)所示。

 

这样,当前的步骤状态信息有42个维度。最后一步动作有9个维度,选定的动作设置为1,其他动作设置为0。总的来说,我们模型中的状态表示被嵌入93个维度。

B. Action Definition

在星际争霸微观管理场景中,原始动作空间非常大。在每个时间步,每个单位可以移动到地图上任意距离的任意方向。当单位决定攻击时,它可以选择武器火力范围内的任何敌方单位。为了简化行动空间,我们选择8个具有固定距离的移动方向,并且针对每个单元的可用动作方向攻击最弱的敌人。当选定的动作是移动时,我们的单位将转向Up, Down, Left, Right, Upper-left, Upper-right, Lower-left, Lower-right八个方向之一,并移动一个固定的距离。当选择的行动是攻击时,我们的单位将停留在当前位置并集火(focus fire)射击敌方单位。目前,我们选择我们武器的攻击范围内的最低生命值(the lowest hitpoint,应该是最近)的敌人作为目标。根据实验结果,这些行动足以控制我们在游戏中的单位。

C. Network Architecture(网络架构)

因为我们单位的经验是large state space有限的子集,并且大多数测试状态以前从未被探索过,所以使用table强化学习来学习最优策略将很困难。为了解决这个问题,我们使用由矢量θ参数化的神经网络来近似state-action values以改进我们的RL模型的泛化。

网络的输入是来自状态表示的93维张量。我们在隐藏层中有100个神经元,并且使用整流后的线性单位(ReLU)激活函数来解释网络非线性,如

 

其中z是隐藏层的输出。我们使用ReLU函数而不是Sigmoid或tanh函数,因为ReLU函数没有梯度下降的问题,这可以保证模型的有效训练[59]。与这些饱和非线性函数(如Sigmoid或tanh)不同,ReLU函数是一种非饱和非线性函数。就梯度下降训练时间而言,非饱和非线性要快得多[60]。
    神经网络的输出层有9个神经元,给出移动到8个方向和攻击的概率。星际争霸微观管理场景中的一个单元的学习模型包括状态表示,神经网络架构和输出动作,如图3所示。

4. LEARNING METHOD FOR MICROMANAGEMENT

在本文中,我们将StarCraft微观管理制定为多agents强化学习模型。我们提出了参数共享多agents梯度下降Sarsa(λ)(PS-MAGDS)方法来训练模型,并设计奖励函数作为促进学习过程的内在动机。整个PS-MAGDS强化学习图如图4所示。

 

图4.星际争霸微观管理场景中的PS-MAGDS强化学习图。

A.参数共享多agents梯度下降Sarsa(λ)

我们提出了一种多agents RL算法,通过在我们的单元之间共享策略网络的参数,将传统的Sarsa(λ)扩展到多个单元。为加速学习过程并解决延迟奖励问题,我们在强化学习中使用资格追踪。作为RL的一个基本机制,资格追踪被用于分配时间信用,它考虑了一组以前经历过的转变[61]。这意味着它不仅考虑最后一个state-action pair的值,还考虑the visited ones。用这种方法,我们可以解决游戏环境中延迟奖励的问题。具有资格痕迹的Sarsa(称为Sarsa(λ))是经过多个steps对备份进行平均的一种方法。λ是决定每个备份权重的因素。在我们实现Sarsa(λ)多单元作战中,我们使用神经网络作为函数逼近器,并在我们所有单元之间共享网络参数。虽然我们只有一个网络需要训练,但这些单位仍然可能会有不同的表现,因为每个单位都会接受不同的观察和行动作为其输入。
    为了有效地更新策略网络,我们使用梯度下降法来训练Sarsa(λ)强化学习模型。等式(7)中示出了梯度下降学习更新,

 

其中et是在步骤t的资格痕迹。

强化学习中的一个具有挑战性的问题是exploration and exploitation之间的权衡。如果我们根据当前的政策选择每一步的最佳行动,我们很可能陷入局部最佳状态。相反,如果我们倾向于在大的状态空间中进行探索,那么模型将难以收敛。 在实验中,我们使用 -greedy方法来选择训练期间的动作,以概率1- 选择当前最佳动作,并以概率 进行随机探索动作,

 

我们使用指数级的 decay来实现 -greedy方法。 被初始化为0.5,并且退化时间表具有the episode number episode_num的指数平滑窗口,如通过

 

算法1给出了整体参数共享多agents梯度下降Sarsa(λ)方法。

 

B. Reward Function

奖励功能为RL agents提供有用的反馈,这对学习结果有重大影响[62]。星际争霸微管理的目标是摧毁战斗中的所有敌方单位。 如果奖励仅基于最终结果,则奖励功能将非常稀疏。 此外,单位通常会在多个步骤后获得积极的回报。奖励的延迟使得很难了解哪一组行动对相应的奖励负责。
   为了解决微观管理中稀疏和延迟奖励的问题,我们设计了一个奖励函数来包含小型中级奖励。我们的实验中,所有agents都会在每个时间step获得由他们的攻击行动所造成的主要奖励,等于敌方单位受到的伤害减去我们单位的生命值损失。

 

damage_amount是我们单位的攻击造成的伤害量,damage_factor是我们单位的攻击力,unit_hitpoint是我们单位的生命值。我们将奖励分成一个常量,将其调整到一个更合适的范围,在我们的实验中设定为10。ρ是平衡我们单位和敌方单位总生命值的标准化因子,

 

其中H是敌方单位的数量,N是我们单位的数量。一般来说,这个规范化的因素在星际争霸的微观管理中是必要的,它具有不同的数量和单位类型。没有适当的规范化,policy network将难以融合,我们的单位需要更多的episodes来学习有用的行为。
    除了基本的攻击奖励之外,我们还考虑一些额外奖励作为加速训练过程的内在动机。当一个单位被摧毁时,我们引入额外的负面奖励,并在我们的实验中将其设置为-10。我们想惩罚这种行为,因为自己单位的减少对战斗结果有不好的影响。此外,为了鼓励我们的单位作为一个团队合作并采取合作行动,我们为单位的举措提供奖励。如果在移动方向上没有我们的单位或敌方单位,我们给这个移动动作一个小的负值奖励,设置为-0.5。根据实验,这种奖励对学习成绩有显着影响,如图6所示。

 

图6.在3个Goliaths对6个Zealots的微观管理情景中, 从每200 episodes’ 的训练,我们单位的胜率

C. Frame Skip

在视频游戏中应用强化学习时,我们应该注意行为的连续性。由于星际争霸微管理的实时属性,在每个游戏框架中进行动作是不切实际的。一种可行的方法是使用跳帧技术,该技术每隔固定数量的帧执行训练步骤。然而,小跳帧将在训练数据中引入强关联,而大跳帧将减少有效训练样本。我们参考[20]中的相关工作,并在小规模微观管理场景中尝试多次跳帧(8,10,12)。最后,我们在实验中将帧跳转设置为10,每个单元每10帧执行一次动作。

5. EXPERIMENT SETTINGS

A. StarCraft Micromanagement Scenarios(方案)

我们考虑多个单位的星际争霸微管理场景,如图5所示,其中包括巨人与狂热者,巨人与小狗,海军陆战队与小狗(Goliaths vs. Zealots;Goliaths vs. Zerglings;Marines vs. Zerglings,)。

1)在第一种情况下,我们将控制3个巨人对抗6个狂热者。从表二我们可以看出敌方单位在单位数量,生命值和伤害因素方面有优势。相比之下,我们单位的射程要宽得多。

2)在第二种情况下,敌人有20个小狗。我们的巨人单位在生命值,伤害因子和射程范围内具有优势,而敌人有更多的单位和更少的冷却时间。

3)在第三种情况下,我们将控制多达20名海军陆战队员与30名小狗作战。敌方单位在速度和数量上都有优势,而我们单位在火力范围和伤害因素方面有优势。

我们将这些情景分成两组。第一个和第二个是小规模微观管理,最后一个是大规模微观管理。在这些场景中,敌方单位由内置的AI进行控制,该AI是通过游戏输入进行硬编码的。当单位的任何一方被毁坏时,episode终止。在这些情况下,星际争霸的人类初学者无法击败内置的AI。白金级玩家的平均胜率低于50%,每场景100场。我们的RL agents有望利用他们的优势并避免他们的劣势来赢得这些战斗。

 

图5.在我们的实验中代表星际争霸微观管理情景

左:Goliaths vs. Zealots; 中:Goliaths vs. Zerglings; 右:Marines vs. Zerglings

B. Training

在训练过程中,我们将折扣因子γ设置为0.9,学习率α设置为0.001,并且在所有情况下将资格跟踪因子λ设置为0.8。此外,每episode的最大步数设置为1000。为了加速学习过程,游戏通过在BWAPI中将gameSpeed设置为0来全速运行。该实验应用于具有Intel i7-6700 CPU和16GB内存的计算机上。

6. RESULTS AND DISCUSSIONS

在本节中,我们将分析不同微观管理情景下的结果,并讨论RL模型的性能。在小规模情景中,我们使用第一种情景作为训练单位的起点。在其余情景中,我们引入转移学习方法来将战斗扩展到大场景。星际争霸微管理的目标是击败敌人并提高这些场景中的胜率。为了更好的理解,我们分析了训练期间的win rates, episode steps,average rewards,learned strategies。我们的代码和结果开源是https://github.com/nanxintin/StarCraft-AI。

A. Small Scale Micromanagement

在小规模的微观管理情景中,我们将训练Goliaths对抗不同数量和类型的敌方单位。在第二种情况下,我们还将使用转移学习方法根据第一种情景的训练有素的模型来训练Goliaths。这两种情景都训练了4000 episodes和超过100万步。

1)巨人与狂热者:在这种情况下,我们从头开始训练我们的Goliaths部队并分析结果。
    •Win Rates:首先,我们将使用moveReward分析RL方法的学习性能。为了评估胜率,我们在每200 episodes’ 100次战斗训练后测试我们的模型,并在图6中描述结果。我们可以看到,我们的巨人单位在1400 episodes之前无法赢得任何战斗。随着训练的进展,单位开始赢得几场比赛,2000 episode后的胜率曲线显着增加。经过3000 episodes的训练,我们的单位最终可以达到100%的赢率。

•Episode Steps:我们描绘了图7中训练期间我们三个Goliaths单位的平均剧集步骤和标准差。很明显看到平均剧集步骤的曲线有四个阶段。在开幕式中,episode steps非常少,因为Goliaths什么都没有学到什么,并且很快就被消灭了。之后,Goliaths开始意识到生命值损失会带来负面的回报。他们学会逃避敌人,并且episode steps增加到高水平。然后,episode steps开始减少,因为Goliaths学会攻击获得积极的奖励,而不是逃跑。最后,Goliaths学会了一个适当的策略来平衡移动和攻击,他们能够以近300步骤摧毁敌人。

•Average Rewards:一般来说,在微观管理场景中强大的游戏AI应该尽快击败敌人。在这里,我们介绍平均奖励,dividing the total rewards by episode steps in the combat。我们的Goliaths单位的平均奖励曲线如图8所示。平均奖励在开场时有明显的增加,在训练期间稳步增长并且在将近3000 episodes之后保持平稳。

2)巨人与小狗:在这种情况下,敌方单位是一群小狗,我们重复使用来自第一种场景的训练有素的模型来初始化策略网络。与从头开始学习相比,我们对转移学习有了更好的理解。

•Win Rates:我们在图9中得出赢率。当从头开始训练时,学习过程非常缓慢,我们的单位直到1800 episodes才能赢得比赛。如果没有transfer learning,4000 episodes之后的胜率低于60%。当根据第一种情景的模型进行训练时,学习过程要快得多。即使在开幕式上,我们的单位也赢了几场比赛,最终胜率达到100%。

•Episode Steps:在图10中,我们绘制了训练期间我们三个巨人的平均Episode Steps步骤。如果没有转移学习,曲线与第一种情况具有类似的趋势。在训练期间,平均Episode Steps在开始时增加明显并逐渐下降。在转移学习训练时,平均Episode Steps在整个训练过程中保持稳定,范围在200到400之间。可能的解释是我们的单位已经从训练有素的模型中学习了一些基本的移动和攻击技能,他们使用这些技能来加速训练过程。

•Average Rewards:我们在图11中画出了我们三个巨人的平均奖励。当从头开始训练时,我们的单位很难赢得开场战斗,并且在1000 episodes之前平均奖励水平处于低水平。与传统学习相比,平均奖励从一开始就高得多,在整个训练过程中表现得更好。

 

 

 

 

B. Large Scale Micromanagement

在大规模的微观管理情景中,我们使用课程转移学习来训练我们的海军陆战队对抗Zerling,并将结果与​​一些基准方法进行比较。
     1)海军陆战队与小狗:在本节中,我们设计了一个3 classes课程来训练单位,如表3所示。训练结束后,我们测试两种目标情景下的表现:M10与Z13以及M20与Z30。此外,我们使用一些基准方法作为比较,其中包括基于规则的方法和DRL方法。
    •最弱:基于规则的方法,攻击范围最弱。
    •最近:基于规则的方法,攻击距离火焰最近的地方。
    •GMEZO:基于零阶优化的DRL方法,与传统的RL方法相比具有令人印象深刻的结果[20]。
    •BicNet:基于actor-critic architecture的DRL方法,在大多数星际争霸微观管理场景中表现最佳[21]。

 在表四中,我们介绍了PS-MAGDS方法和基线方法的胜率。在每种情况下,我们测量我们模型在100次测试游戏中的平均胜率5次。在M10和Z13中,PS-MAGDS的胜率高达97%,远远高于其他方法,包括最近提出的GMEZO和BicNet。在M20与Z30中,PS-MAGDS的表现第二好,非常接近最佳表现。

我们还在课程情景和看不见的情景中(in curricular scenarios and unseen scenarios)测试我们训练有素的模型,并将结果呈现在表五中。我们可以看到,PS-MAGDS在这些课程情景中表现出色。在更多单位的看不见情况下(In unseen scenarios with more units),PS-MAGDS也有可以接受的结果。

 

C. Strategies Analysis

在星际争霸微观管理中,有不同类型的具有不同技能和属性的单位。玩家需要学习如何实时移动和攻击一组单位。如果我们设计一个基于规则的AI来解决这个问题,我们必须考虑大量的条件,而且agents的能力也是有限的。星际争霸的初学者无法赢得我们论文中提到的任何战斗。所以这些行为非常复杂并且难以学习。通过强化学习和课程转移学习,我们的单位能够在这些情况下掌握几个有用的策略。在本节中,我们将简要分析我们单位已经学习的这些策略。

1)分散敌人:在小规模的微观管理情景中,我们的巨人单位必须以更大的数量和更多的总生命值对抗对手。如果我们的部队团结在一起,面对面对抗一组部队,他们将很快被摧毁并失去战斗力。适当的策略是分散敌人,并逐一摧毁它们。

在第一种情况下,我们的Goliaths单位在训练后已经学会了分散的狂热者。在开场时,我们的单位会将敌人分散为几个部分,并首先将其部分摧毁。之后,获胜的巨人移动到其他巨人并帮助对付敌人。最后,我们的部队将注意力集中在其余的敌人身上并摧毁它们。为了更好地理解,我们在战斗中选择了一些游戏重放帧,并在图12中绘制了单位的移动和攻击方向。白线代表移动方向,红线代表攻击方向。

类似的策略发生在第二种情况下。对手有更多的单位,并且Zerglings Rush有很大的伤害力量,这在星际争霸游戏中经常使用。我们的巨人单位将小狗分散成几组,并与它们保持适当的距离。当单位的武器处于有效的冷却状态时,他们停止移动并攻击敌人,如图13所示。

2)保持团队:在大规模的微观管理情景中,每一方都有大量的单位。海军陆战队属于小型地面部队,具有较低的生命值。如果他们在几个小团体中作战,他们无法抵抗敌人。一个合适的战略就是让我们的海军陆战队队伍保持一致,按照相同的方向前进并攻击同一个目标,如图14所示。从这些图中我们可以看到,我们的海军陆战队学会了前进和后退排队

3)Hit and Run:除了上面讨论的global战略外,我们的部队还在训练期间学习了一些local策略。其中,Hit and Run是StarCraft微管理中使用最广泛的策略。我们的单位在所有情况下都能快速学习Hit and Run战术,包括图12和图13中单个单位的Hit and Run,以及图14中一组单位的Hit and Run。

4)存在的问题:虽然我们的单位在训练后学到了有用的策略,但在战斗中仍然存在一些问题。例如,Goliaths时不时地前进和后退,不及时参加战斗以帮助其他单位。此外,单位更喜欢移动到地图的边界,以避免敌人。

 

 

VII. CONCLUSION AND FUTURE WORK

本文重点介绍星际争霸微观管理场景中的多个单位控制。我们提出了一些贡献,包括有效的状态表示,the parameter sharing multi-agent gradient-descent Sarsa(λ),有效奖励函数和用于将我们的模型扩展到各种场景的课程传递学习方法。我们证明了我们的方法在小规模和大规模情景下的有效性,以及在两个目标情景中的某些基准方法的优越性能。值得注意的是,我们提出的方法能够在各种情况下学习适当的策略并击败内置的AI。

此外,还有一些领域可供未来工作。通过共享策略网络学习多个单位的合作行为,构建包含其他单位信息和提出的内在动机奖励函数的高效状态表示方法。虽然我们的单位可以成功掌握一些有效的协调策略,但我们将探索更智能的多agents协作方法。为了解决星际争霸微观管理中的延迟奖励问题,我们使用一种简单,直接和有效的奖励塑造方法。尽管如此,还有一些解决稀疏和延迟奖励的方法,例如分层强化学习。分层RL集成了分层的动作值函数,在不同的时间尺度上运行[63]。与奖励整形方法相比,分层RL有能力学习时间抽象的探索,并给予agents更多的灵活性。但是其框架也复杂得多,并且自动子目标提取仍然是一个开放的问题。未来,我们将对分层式RL应用于星际争霸进行深入研究。目前,我们只能训练相同类型的远程地面单位,而使用RL方法训练近战地面单位仍然是一个悬而未决的问题。我们将改进我们未来更多类型单位和更复杂场景的方法。最后,我们还会考虑在星际争霸机器人中使用我们的微操作模型来玩完整的游戏。

猜你喜欢

转载自www.cnblogs.com/SamZhou/p/9633743.html