终于,AI还是对《王者荣耀》下手了。
19日,腾讯AI Lab团队在arXiv上发表文章,训练AI大战人类玩家,而此次所选择的游戏,正是火遍大江南北的手游——《王者荣耀》。
论文地址:https://arxiv.org/pdf/1812.07887.pdf
腾讯团队表示,游戏AI的下一个挑战是即时策略(RTS)游戏。在与顶尖人类玩家大战250回合之后,取得了48%的胜率!
AI“杀戮”王者峡谷
近年来,微观层面的操作取得了很大的进步,但宏观战略的完整解决方案仍然缺乏。
腾讯AI Lab团队提出了一种新的基于学习的分层宏观策略模型,用于掌握RTS子类型游戏——MOBA游戏。
在层次宏观战略模型的训练下,智能体能够明确地做出宏观战略决策,并进一步指导其微观层面的操作。
此外,每个智能体都可以在做出独立的战略决策的同时,通过利用一种新颖的模仿交叉通信机制与盟友进行沟通。
团队从《王者荣耀》职业联赛(KPL)比赛和训练中收集了30万个游戏回放记录。最后,用于训练的实例数量高达2.5亿个。
在视觉方面,团队提取了85个特征,例如所有单位的位置和生命点,然后将视觉特征模糊为12*12的分辨率;在属性方面,团队提取了181个特性,如英雄角色、游戏时间、英雄ID、英雄的金币和等级状态以及死亡、助攻量统计。
团队将卷积层和完全连接层混合使用,分别从视觉和属性特征方面获取输入。
而如何开局是MOBA最重要的策略之一。
下图展示了通过模型学到不同英雄的开局注意力。每个子图由两个正方形组成。左侧方形图表示右侧MOBA mini-map的注意力分布。
不同英雄的开场策略。最热的区域用红色圆圈标出。
从左至右分别是貂蝉(法师,中路)、韩信(刺客,打野)、亚瑟(战士,辅助)、后裔(射手,下路)。
根据注意力预测,貂蝉将去中路,韩信将去蓝Buff区域,亚瑟和后裔将去红Buff区域,除此之外,宫本武藏(战士,上单)将去上路发育。
这样的开局策略在《王者荣耀》中非常流行。
随着游戏的进行,注意力的分布是会发生变化的,如下图所示:
为了体现宏观策略、跨智能体通信机制以及相位层的重要性,团队设计了如下实验进行比较:
其结果如下表所示:
比赛统计。250场比赛是针对人类玩家,40场比赛分别针对无宏观策略、无交流和无阶段的比赛。
MOBA游戏介绍:以《王者荣耀》为例
MOBA类游戏现在占世界网络游戏市场的30%,Dota、《王者荣耀》、《英雄联盟》均属此类游戏。MOBA类游戏在PC游戏和移动平台游戏市场上均排名首位。
一局标准的游戏是5V5的组队对抗赛,每个玩家控制一个单位,即英雄。王者荣耀中有80多个英雄可供选用,每个英雄有不同的战斗特点和技能。玩家在游戏控制英雄移动,并释放技能。
如图所示。玩家使用左下角转向按钮来控制移动,而右下角则设置按钮来控制技能。可通过主屏幕观察周围环境,还可以通过左上角迷你地图了解完整的地图情况,其中可观察的炮塔,小兵和英雄显示为缩略图。只有当他们是盟友的单位或与盟友单位相距一定距离内时才能观察到该单位。
每个队都有三组防御塔,每路各有三个塔。地图上还有四个丛林区域,可以收集资源以增加金钱和经验。每个英雄都以最低金币值和等级1出生。两队都试图利用资源获得尽可能多的黄金和经验,以购买物品和升级。最终目标是摧毁敌人的基地。 MOBA的概念图如图所示。 1B。
要想精通MOBA游戏,玩家需要具备出色的宏观策略操作和熟练的微操。常见的宏观策略包括开放,限制,传递消息,伏击等。熟练的微观层面执行需要高度的控制准确性和对技能的损害和影响的深刻理解。宏观策略操作和微观层次执行都需要掌握优秀的时机,这使得它极具挑战性和趣味性。
(a)《王者荣耀》的游戏UI。玩家使用左下角转向按钮来控制动作,而右下角则设置按钮来控制技能。玩家可以通过屏幕观察周围环境,并使用左上角查看小地图。(b)MOBA的示例地图。这两支队伍的颜色为蓝色和红色,每个队伍有9个炮塔(圆圈)和一个基地(方块)。四个丛林区域的编号从1到4
下面以《王者荣耀》为例,对MOBA的计算复杂度进行量化。
MOBA游戏计算复杂度的量化
一局《王者荣耀》一般游戏长度约为20分钟,即游戏核心约为20000帧。在每一帧中,玩家需要在数十个选项中做出决定,包括24方向的移动方向控制,以及向相应的位置/方向上释放技能等。即使具有显着的离散化和简化处理,并将最快反应时间增加到200ms,需要处理动作空间也达到101500
至于状态空间,王者荣耀地图的分辨率是130,000*130,000像素,每个单位的直径是1000像素。在每一帧上,每个单位可能有不同的状态,如生命值,等级,金币数量等。同样,状态空间大小为1020,000。下表中列出了MOBA和围棋之间的动作空间和状态空间复杂度的比较。
围棋和MOBA游戏的计算复杂度比较
MOBA游戏中AI的宏观战略架构
我们设计MOBA AI宏观战略模型的动机源于人类玩家如何做出战略决策。在MOBA游戏中,经验丰富的人类玩家完全了解游戏的每个阶段,例如开局阶段,推线阶段,游戏中期和游戏后期阶段。在每个阶段中,玩家都会关注游戏地图,并根据英雄的位置做出相应的决定。例如,在推线阶段,玩家倾向于更多地关注自己所在的路,而不是去支持队友,而在中后期阶段,玩家更多地关注团战点,并推向敌人的基地。
综上所述,我们将宏观战略运作过程表述为“阶段识别 - >关注预测 - >执行”。为了模拟这个过程,我们提出了一个两层的宏观策略架构,即阶段层和注意力层:
• 阶段层负责识别当前的游戏阶段,以便注意力层可以更好地了解应该注意的位置。
• 注意力层旨在预测游戏地图上的最佳区域,将英雄移动至该区域。
阶段层和注意力层充当微级执行的高级指导。我们将在下一节中描述建模的细节。微观模型的网络结构几乎与OpenAI Five1中使用的网络结构相同,但是采用监督学习方式。我们做了一些小修改,以使其适应王者荣耀,比如删除了瞬移技能。
分层宏观战略模型
我们提出了一种分层宏观策略(HMS)模型,以在统一的神经网络中考虑阶段层和注意力层。我们将首先介绍统一的网络架构。然后,我们将说明如何构建每个阶段层和注意力层。
概述
我们提出了一种分层宏观策略模型(HMS),将注意力层和相位层作为多任务模型进行建模。它将游戏功能作为输入。输出包括两个任务,即将注意力层作为主要任务,阶段层作为辅助任务。注意力层的输出直接将宏观策略嵌入,传递给微观模型,而资源层则作为一个有用的任务,细化注意力层和阶段层任务之间的共享层。 HMS的网络结构如图所示。
HMS将图像和矢量特征作为输入,分别承载视觉特征和全局特征。在图像部分使用卷积层。在矢量部分使用全连接层。图像和矢量部分合并在两个单独的任务中,即注意力层和阶段层。最终,注意力和阶段任务从共享层通过自己的层输出,并输出到计算损失。
注意力层
与玩家根据游戏地图做出决策的方式类似,注意力层会预测智能体移动的最佳目标区域。但是,从数据中判断出玩家的目的地在哪里是很困难的。我们观察到,发生攻击动作的区域可以指示玩家英雄的移动目的地。根据这一观察,我们将地面真实区域定义为玩家进行下一次攻击的区域。如图所示。
设s为包含多个帧的游戏中的一个会话,s-1表示s之前的会话。 s - 1是游戏中的第一个会话。让ts成为s的起始框架。请注意,会话以攻击行为结束,因此在英雄进行攻击的ts中存在区域y。如图所示。s-1的标签是ys,而s的标签是ys + 1。直观地说,以这种方式设置标签,是希望智能体学会在游戏开始时移动到ys处。
阶段层
阶段层旨在识别当前的游戏阶段。提取关于游戏阶段基础信息是很困难的,因为人类玩家使用的阶段定义是抽象的。虽然游戏阶段与时间大致相关,但是更多取决于对当前比赛情况的复杂判断,这使得想从重放录像中提取真实的比赛阶段信息非常难。
幸运的是,我们观察到游戏阶段与主要资源数量之间的存在明显的关联。例如,在开局阶段,玩家通常会瞄准外塔和baron,而在游戏后期,玩家会操纵目标摧毁敌人的基地。
因此,我们对主要资源进行阶段性建模。更具体地说,主要资源表示炮塔、baron、龙和基地。我们在图4A中标出了地图上的主要资源。对阶段层的标签定义类似于注意力层。唯一的区别是,阶段层中的ys表示对炮塔,baron、和基地的攻击行为,而不是区域。我们不会将其他资源(如英雄、小兵和中立生物)视为主要目标,因为通常这些资源是为了实现更大的目标,例如摧毁炮塔或基地。
对多智能体间的通信的模拟
多智能体间的通信对于智能体团队合作至关重要。关于多智能体强化学习研究中的通信问题已有很多研究文献。然而,在监督学习中使用训练数据来学习通信是具有挑战性的,因为实际的通信情况是未知的。
为了使智能体能够在监督学习环境中进行通信,我们设计了一种新的通信机制。在训练阶段,我们将盟友的注意力标签作为训练特征。在测试阶段,我们将盟友的注意力预测作为特征进行相应的决策。通过这种方式,我们的智能体可以实现彼此“沟通”。
本文分享自 机器学习算法与Python学习 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!