争取用深度强化学习玩所有的MOBA游戏
原文链接:https://arxiv.org/abs/2011.12692
原文开源代码:暂无
摘要
MOBA游戏,例如王者荣耀,英雄联盟和Dota2,对AI系统构成很大的挑战,如multi-agent,巨大的状态动作空间,复杂的动作控制等。开发一个能够玩Moba游戏的AI已经吸引了大量研究人员的注意。然而,当将OpenAI仅限制在17个英雄的池中Dota AI扩大英雄池时,现有工作无法处理由agent组合形成的动作空间爆炸,即阵容。因此,没有限制的完整Moba游戏远远不能被任何现有的AI系统掌握。在本文中,我们提出了一个MOBA AI的学习框架,该方法能够使用深度强化学习玩所有的MOBA游戏。具体而言,我们提出将新的学习技巧和现有的学习技巧的组合,包括curriculum self-play学习,策略蒸馏,离线策略适应,多头值估计和蒙特卡罗树搜索,以在一个大的英雄池上训练和玩游戏。王者荣耀是一个受欢迎的MOBA游戏,我们展示了如何构建可以击败顶级电子竞技玩家的超级AI agent。通过对本文中的Moba AI agent进行大规模的性能测试,证明了我们AI的优势。
引言
用于玩游戏的人工智能,也称为游戏AI,已经被持续研究了几十年。我们目睹了AI agent在许多类型游戏上的成功,包括围棋,雅达利系列,第一人称射击(FPS)游戏(如夺旗赛),电子游戏(如任天堂明星大乱斗)以及卡牌游戏(如扑克)等等 。现如今,具有复杂策略的电子游戏吸引了人们的关注,因为它们捕捉了真实世界的性质,例如,2019年,AlphaStar在通用实时策略(RTS)游戏(StarCraft 2)中达到了grandmaster段位。
作为RTS游戏的子类型,多人在线竞技游戏(MOBA)最近也引起了很多关注。由于其游戏机制涉及多个agent进行竞争和合作,并且包含不全面的信息,复杂的动作控制和巨大的状态空间,MOBA被认为是AI研究优选的测试平台。典型的MOBA游戏包括王者荣耀,Dota和英雄联盟。在复杂性方面,一个MOBA游戏(例如王者荣耀),即使具有显着的离散性,也可以具有$10^{20000}$数量级的状态和动作空间,而传统的游戏AI测试平台最多是 $10^{360}$数量级。 MOBA游戏通过使用多个英雄,从而使实时策略进一步复杂化(每个英雄具有独特的技能,旨在拥有不同的游戏机制),特别是在5V5模式中,两支队伍(每支都有5位选手从英雄池中选择的英雄) )相互竞争的情况。
尽管它适用于AI研究,要想掌握了MOBA游戏仍然是当前AI系统一个重大的挑战。目前针对MOBA 5v5游戏最好的工作是OpenAI Five,其使用self-play强化学习(RL)在Dota2中训练agent。然而,OpenAI Five训练受到一个主要的限制,即只能使用17个英雄,然而英雄机制,团队协作和竞争才是MOBA游戏的灵魂。
作为能够玩所有MOBA游戏的最重要的基础,扩增英雄池对self-play强化学习是一个重大的挑战,因为agent相互组合(即阵容),与英雄池大小的数量呈多项式增长。17个英雄池的agent组合为 4,900,896(),当增加到40个英雄池时,组合爆炸到 213,610,453,056()。考虑到每个MOBA英雄是独一无二的,即使是经验丰富的人类玩家也具有特定的英雄池,通过随机使用任意英雄的组合来进行学习的现有方法可能会导致“学习崩溃”,这可在OpenAI Five和我们的实验中观察到。例如,OpenAI试图将英雄池扩展到25个英雄,会导致训练变得缓慢而不可接受,同时还降低了AI的性能(可从文献[24]中了解“更多英雄”的细节)。因此,我们需要MOBA AI学习一个方法,这些方法能处理由扩展英雄池引起的可扩展性相关问题。
在本文中,我们提出了一个学习框架,用于支持使用深度强化学习玩所有的MOBA游戏。在 actor-learner 模式下,我们首先构建一个分布式的RL基础架构,以off-policy方式生成训练数据。然后,我们开发一个统一的actor-critic网络架构,以捕捉不同英雄的游戏机制和动作。要处理由游戏情节的多样性造成的策略偏差,我们应用off-policy adaption,与[38]类似。为了管理游戏中的状态动作的不确定值,我们通过分组奖励将多值估计引入MOBA。受自神经网络curriculum learning想法的启发,我们为MOBA游戏multi-agen的t训练设计了课程,我们一开始使游戏简单,然后再逐渐增加学习难度。特别地,我们从固定阵容开始获取teacher模型,我们从中蒸馏策略,最后我们执行合并的训练。我们利用student-driven的策略蒸馏来将知识从简单的任务转移到困难的任务。最后,开始考虑扩展英雄池这一个新的问题,即在游戏开始时进行英雄选择。用于在小英雄池中使用的Minimax算法不可行。为了处理这一点,我们开发基于Monte-Carlo树搜索(MCT)的高效且有效的agent。
请注意,由于在真实游戏中评估AI agent的代价昂贵,目前在文献中仍然缺乏对游戏AI的大规模性能测试。例如,AlphaStar Final和OpenAI Five被进行如下测试:1)分别与专业人士进行了11场比赛和8场比赛;2)分别与公众进行90场和7,257场比赛(所有级别的玩家都可以参加,没有进入条件)。为了提供更大的统计学意义的评估,我们进行了大规模的MOBA AI测试。具体而言,我们使用王者荣耀进行测试,这是一个受欢迎并且经典的typical游戏,这已被广泛用作最近AI的测试平台。在42次与专业选手的比赛中,AI胜率为95.2%,而在与高段位玩家的 642047 场比赛,AI胜率为97.7%。
总而言之,我们的贡献有:
- 我们提出了一种新的 MOBA AI学习框架,以便使用强化学习玩所有的MOBA游戏。
- 我们开展了MOBA AI agent的第一个大规模性能测试。广泛的实验表明,我们的AI可以击败顶级的电子竞技玩家。
相关工作
我们的工作属于针对策略类电子游戏的系统级AI开发,因此我们主要讨论沿着这条线的代表工作,主要包括RTS和MOBA游戏。
General RTS games。StarCraft已经多年被作为RTS游戏中用于AI研究的测试平台。现有研究采用的方法包括基于规则的,有监督学习,加强学习及其组合。对于基于规则的方法,代表工作是SAIDA,它是2018年星际争霸AI竞技的冠军(见https://github.com/teamsaida/saida)。对于基于学习的方法,最近,AlphaStar联合有监督学习和multi-agent强化学习,并在StarCraft2中达到了grandmaster段位。与AlphaStar的类似,我们的价值估算(第3.2节)也使用不可见的竞争对手的信息。
MOBA games。最近,为MOBAGame Ai提出了一个名为Tencent HMS的宏观策略模型。具体地,HMS是用于指导agent在游戏期间应该移动到地图上哪一点的功能组件,其不考虑agent动作的执行,即,电子竞技中的微观控制或微观管理,因此HMS不是完整的AI解决方案。最相关的工作是Tencent Solo和OpenAI Five。Ye et al. 对不同MOBA英雄的游戏机制进行了彻底和系统的研究。他们开发了一个RL系统,用于掌握MOBA战斗中agent的微观控制。但是,这个工作没有研究更复杂的multi-agent 5V5游戏的情况,只研究了1V1 solo游戏。另一方面,本工作与 Ye et al. 之间的相似之处包括:动作的建模(价值网络是不同的)和离线策略纠正(Adaption)。2019年,OpenAI提出了一个在Dota2中完5V5游戏的AI,称为OpenAI Five,其具有打败专业人类玩家的能力。OpenAI Five使用了self-paly深度强化学习,并使用近端策略优化(PPO)训练。我们的工作与OpenAI Five的主要区别在于本文的目标是开发能够玩所有MOBA游戏的AI程序。因此,理论上,我们引入了一系列的技术,包括off-policy adaption,curriculum self-play learning,value estimation和tree-search,以解决训练中的可扩展性问题。另一方面,这项工作与OpenAI Five的相似之处包括:用于建模MOBA英雄的动作空间的设计,使用循环神经网络(如LSTM)处理部分可观察状态,以及使用一个共享权重的模型来控制所有的英雄。
学习系统
为解决MOBA游戏的复杂性,我们将新的技术和现有的学习技术的组合,例如神经网络架构,分布式系统,强化学习,multi-agent训练, curriculum learning和蒙特卡罗树搜索。虽然我们用王者荣耀作为研究平台,但这些技术也适用于其他MOBA游戏,因为MOBA游戏中的游戏机制是相似的。
Architecture
MOBA可以被看作具有部分可观测状态的multi-agent Markov游戏。网络整体架构如图1所示。
该架构由建模复杂MOBA游戏的通用网络组件组成。为了提供给agent丰富的观测信息,我们提出建模多模态特征,包括特征由标量和空间特征组成的综合列表。标量特征由可观测的单元属性,游戏中的统计信息和对手的不可见信息组成,例如,健康点(HP),技能冷却时间,金币数,英雄等级等。空间特征由从英雄的局部视野中提取的卷积通过组成。为了处理部分可观测性,我们使用LSTM以建模各步骤之间的关系。为了帮助目标选择,我们使用目标注意力,其使用LSTM编码后的向量作为query,以编码的游戏单位作为key。为了消除不必要的RL探索过程,类似于[38],我们设计动作屏蔽机制。为了管理MOBA的动作组合空间,我们提出一个分离的动作目标。具体而言,AI在分离的目标中输出如下预测的动作:1)采取哪些动作,例如移动,攻击,技能释放等;2)动作使用的目标,例如炮塔,敌人英雄或其他人;3)动作使用的范围,例如离散化的移动方向,技能释放方向。