大家好,又见面了,我是你们的朋友全栈君。
深度强化学习实验室
译者: 邓雅倩 张媛媛 王晓鹏
校订:王敏 罗威
编辑:DeepRL
摘 要:本文使用基于多智能体强化学习算法,使用人类玩家和智能体对战的游戏数据建立深层神经网络。在训练过程中,使用官方在线配对系统Battle.net上的无条件策略,对AlphaStar智能体塑造的人族、神族和虫族进行评估,对各智能体进行三种不同的评估:仅在监督训练后(监督评估)、联赛训练27天后(中期评估)和联赛训练44天后(最终评估)。在最终评估中,对人族、神族和虫族的评分分别为6048分、6275分和5835分,超过了99.8%的人类玩家,并且在三个种族中都处于大师级水平。
关键词:星际争霸;监督学习;强化学习;多智能体学习
1 引 言
在许多实际应用的复杂环境中,往往需要人工智能体与其他智能体互相协调与竞争。《星际争霸》作为实现此目标的基础对象,在最高难度的专业电竞方面持续占据标志性地位,并且其展现的复杂性和多智能体挑战都与现实生活中的事件息息相关,因此《星际争霸》领域已经成为人工智能研究领域的一项重要挑战。在过去十年中,经过无数次的比赛[1-3],学者使用最先进人工智能体的超人类能力,或者使用人工构造的子系统,简化了游戏的许多重要方面[4]。尽管具有这些优势,但仍然没有任何一个智能体能与《星际争霸》顶级玩家的综合技能相媲美。我们选择使用多智能体强化学习算法来解决《星际争霸》中的挑战,此算法使用不同联盟中人类玩家和智能体对战的游戏数据建立深层神经网络,不断调整策略与对抗策略[5-6],原则上也适用于其他复杂领域。
《星际争霸》是一款实时战略游戏,玩家可以在成百上千的控制单位间使高水平经济决策达到平衡。这一领域提出了重要的博弈论挑战:具有广阔的周期性、非传递性策略和对抗策略空间;简单的自我对弈探索方式难以发现新颖策略;这些策略在与人类对抗的实战游戏中可能不会奏效。此外,《星际争霸》具有组合动态空间、成千上万的实时决策范围以及不完善的信息等特点[7]。
《星际争霸》的每一个游戏都由数以万计的时间步长和动作组成,在大约十分钟的游戏中,智能体需要进行实时动作选择。对于每个步骤t,智能体AlphaStar都会收到一个观察值Ot,其中包含所有可观测分队及其属性的列表。而人类玩家的看到的信息是不完善的,只包括玩家从自己地图上看到的敌对势力,不包括摄像机地图视野之外的敌对势力属性。
智能体AlphaStar发出的每一个动作at都是高度结构化的:每步操作都是从几百个动作类型中选择出来的(例如,移动或者生成工人);该动作由智能体的哪一个单元发布;瞄准地图中的哪个位置或摄像机视图中的哪个对手单位;以及何时观察、何时采取下一步动作,如图1.a所示,AlphaStar通过一个概览图和单位列表来查询和记录游戏,要执行操作时,智能体输出要发出操作类型(例如build)、应用于谁、目标位置以及下一个操作何时发出动作,并通过一个限制动作率的监控层发送到游戏中。AlphaStar的延迟来自网络延迟和处理时间的延迟。这种动作表示方法在每一步中产生了接近1026种可能的选择。与人类玩家相似,智能体AlphaStar可以移动摄像机地图来搜集更多的信息。
图1 训练设置
Fig.1 Training setup
人类玩家在玩《星际争霸》时,往往会具有反应时间和行动速度等限制。在设计游戏时需要考虑到这些限制,消除这些限制会改变游戏的性质。因此,对AlphaStar也施加了如下约束:会遭受由于网络延迟和计算时间而导致的延迟;对智能体每分钟的动作(APM)设置限制,峰值统计显著低于人类的峰值统计(详情见图2.c、3.g的性能分析:图2.c所示是《星际争霸II》终极版AlphaStar Final(蓝色)在对战真人玩家(红色)时每分钟有效行动(EPM)分配图,图中虚线表示平均值;图3.g所示是对于AlphaStar中使用的APM极限,减少APM会大大降低性能,但是增加APM也会降低性能,这可能是因为智能体在改进微观策略上比在学习多样化策略上花费了更多的资源。)。AlphaStar对该游戏的操作和采取的限制得到了专业玩家的认可(参见方法中的“专业玩家声明”)。
图2结果图
Fig.2 Results
2 方 法
2.1 学习算法
为了应对《星际争霸》的复杂性和博弈论挑战,AlphaStar将新兴技术和现有通用技术相结合,用于神经网络体系结构,模仿学习,强化学习和多智能体学习。接下来给出关于这些技术的更多细节。
AlphaStar的控制核心为,其中参数θ表示神经网络,输入为从游戏开始时接收的所有观察值,并选择动作作为输出。控制约束条件为z,z为人类玩家的数据(例如构建顺序)中采样所得策略的总结。
AlphaStar的体系结构由处理《星际争霸》原始复杂性的通用神经网络组成,利用自注意力机制处理智能体自身和对手单位的观察结果[8]。其次引入分散链接整合空间和非空间信息。然后用深度长短期记忆系统处理观测数据的时间序列[9],以解决部分可观测性问题。最后还使用自动回归策略[7,10,11]和循环指针网络[12]管理结构化的组合动作空间。
AlphaStar的参数最初是通过监督学习进行训练的,首先从可公开获取的匿名人类玩家回放赛数据集中抽取游戏,然后对该策略进行训练,最后仅以或为条件预测每一个动作,这就产生了一组反映人类游戏模式的不同策略。
AlphaStar随后通过强化学习算法训练参数,旨在对抗混合组合的对手时,最大化获胜概率(即计算出最佳响应)。算法通过多智能体程序确定了对手的选择,具体情况如下所述。AlphaStar的强化学习算法基于类似于优势AC(actor-critic)算法[13]的策略梯度算法,在游戏重播中以异步的方式进行更新[14,15]。根据之前的观察结果发现,在巨大的行动空间中,当前策略和以前的策略在许多步骤中都无法匹配,由此引入一种离轨策略学习[5]方法,即根据先前策略生成的经验中更新当前策略。因此,我们使用了一种能够在不匹配的情况下仍然有效学习的算法组合:时序差分算法[16]、削波重要性采样(V-trace)[14]和一种新的自模拟算法(UPGO)[17],该算法将策略移向奖励优于平均水平的轨迹。为了减少方差,仅在训练期间使用来自智能体和对手的信息对价值函数进行估计。图3i,k=分析了这些因素的相对重要性。
图3. AlphaStar关键组成的简化测试
Fig. 3 Ablations for key components of AlphaStar.
《星际争霸》的主要挑战之一是发现新的策略。现在的策略可以使智能体学会建立和利用地面作战单元的微观战术,任何制造和单纯使用空中作战单元的偏差都会降低智能体的性能。简单的策略无法控制智能体执行精确的指令序列来构建空中作战单元,也无法有效利用微观战术。为了解决这个问题,利用了人类玩家的数据,寻求他们会采取的稳妥行为,利用监督学习将每个智能体的参数初始化。随后,在强化学习过程中,一种情况为在统计z的约束下对智能体进行训练,智能体若遵循与z对应的策略而获得奖励;另一种情况是在无约束情况下对智能体进行训练,智能体能够自己选择策略,当智能体的行为概率与监督策略不同时,智能体也会受到惩罚。在整个训练过程中,人类玩家先进行游戏对战,以确保各种相关的游戏模式可以继续进行。图3e显示了AlphaStar中人类数据的重要性。
为了应对博弈论的挑战,引入了一种多智能体强化学习的算法对联盟进行训练,与国际象棋和围棋[18]中使用的算法类似,自我对弈算法学习迅速,但可能会无限期地进行循环(例如,A打败B,B打败c,但A输给c),而没有取得进步[19]。如图1.b所示, AlphaStar使用监督学习和强化学习进行训练,在监督学习(底部)中,更新参数以优化输出值与从重播集合中采样的人类动作之间的Kullback-Leibler(KL)散度;在强化学习(顶部)中,使用人类玩家的数据对统计z进行抽样,通过强化学习(TD(λ)、V-trace、UPGO)和对监督智能体的KL损失函数来收集智能体得到的经验以更新策略和价值输出。图1.c所示是三组智能体以监督学习进行初始化,随后开展强化学习训练,训练时,这些智能体会间歇性地将自己的副本(在某个特定点被冻结的“玩家”数据)添加到联盟中,主要智能体针对过去所有人类玩家以及他们自己进行训练;联盟开发型智能体与所有过去的人类玩家进行训练;主要开发型智能体则针对主要智能体进行训练,当主要开发型智能体和联盟智能体向联盟中添加一名玩家时,可以将他们重置为受监督的智能体(这些星际争霸图片拥有暴雪公司的复制许可)。虚拟自我对弈(FSP)[20-22]通过对先前的所有策略进行统一混合计算最佳响应来避免循环。在两人进行零和游戏中[20],最终趋近于Nash均衡。我们将此方法推广到非均匀混合对手的最佳响应计算,该潜在对手联盟包括各种智能体(如图4d所示,在联盟训练过程中,神族智能体建造的每个单位的平均数量(以最常见的单位为标准);与主要智能体不同,开发型智能体快速探索不同的单元组成,同时为了清楚起见已清除工人单位),及其当前和先前的迭代策略。每个智能体都有一个特定的混合策略,应用此策略抽取对手进行对抗游戏,其中智能体的参数由上述的AC强化学习过程根据博弈的结果进行更新。
图4 AlphaStar训练进展图
Fig.4 AlphaStar training progression
联盟由三种不同类型的智能体组成,主要区别在于他们选择对手组合的机制。首先,主要智能体运用优化虚拟自我对弈(PFSP)机制,根据每个对手对战智能体时的获胜概率,适当地调整三种智能体的混合概率,以此智能体可以有更多机会去战胜最棘手的对手。在固定概率下选择一个主要智能体作为对手,这可以快速提高自我对弈机制的学习能力(图3中使用Elo(c)和用于遗忘的智能体比较不同的多主体学习算法:计算随时间平均(d)相对于所有过去版本的最小获胜率。简单的自我对弈有很高的Elo,但容易被忽略,更深入的比较请参见图5)。第二,主要开发型智能体只需要与当前主要智能体的迭代相反,它们的目标是识别主要智能体中的潜在漏洞,因此需要削弱主要智能体的这些弱点。第三,联盟开发型智能体使用与主要智能体相似的PFSP机制,但不是主要开发型智能体的优化目标,主要目的是找到整个联盟的系统漏洞。主要开发型智能体和联盟的开发型智能体都会定期初始化,激励多元化,也能迅速发现一些针对开发鲁棒性差的专业策略。图3.b分析了联盟中智能体的选择过程。在《星际争霸》中,每个玩家都可以从人族、神族或虫族这三种种族中选择一个,每个种族都采取不同的机制。我们使用三个主要智能体(每场星际争霸赛一个)、三个主要开发型智能体(每场比赛一个)和六个联盟开发型智能体(每场比赛两个)来训练联盟。在44天内,使用32个第三代张量处理单元(TPU[23])对每个智能体进行了训练。在联赛训练中,培养了将近900名不同的智能体游戏玩家。
图5 来自图3中c和d对多智能体简化测试的更详细的分析
Fig.5 A more detailed analysis of multi-agent ablations from Fig. 3c, d.
2.2 相关工作
几十年来,游戏一直是人工智能领域研究的重点,是迈向更广泛应用的基石。象棋[25]和围棋[26]等经典棋盘游戏已掌握并使用了通用的强化学习算法和规划算法[18]。强化学习算法已经在Atari平台[27],超级马里奥兄弟[28],雷神之锤III竞技场夺旗[29]和Dota2[30]等电子游戏中取得了巨大成功。
实时战略(RTS)游戏是公认的具有博弈理论性强和涉及领域复杂的特点[31]。通常在小规模环境中[36,37]深入研究许多RTS游戏的子问题,例如微观管理,基本回报或构建顺序优化 [7,32-35]等问题。对于联盟挑战赛,星际争霸领域作为研究热点已形成共识[1,7]。《星际争霸:母巢之战》拥有活跃的竞争性AI研究社区[38],大多数机器人将基于规则的启发式技术与其他AI技术相结合,例如基于搜索[4,39]和数据驱动构建顺序选择[40]及模拟[41]。研究学者也将强化学习用于游戏中控制部队的研究[7,34,42-44],并提出了模仿学习来熟悉部队和构造建筑[45]。最近,深度学习被用来预测游戏的未来趋势[46]。自公共应用程序编程接口(API)[7]发布以来,《星际争霸II》同样拥有一个活跃的机器人社区[3]。《星际争霸》中没有任何一个机器人能够击败职业玩家,甚至是高级业余玩家[47],尽管最先进的机器人使用了人类玩家所不具备的一些功能,例如执行成千上万的APM或一次查看整个地图。这些功能对人来说很难,并且可以让人类对手玩家的一些战略失效。最近有研究学者通过强化学习来玩整个游戏,用手动的高级操作[48],或机器学习逐步取代基于规则的部分[43]。相比之下,AlphaStar在玩《星际争霸II》时使用无模型的、端到端学习方法,从而避开了因模型不完善而导致利用基于搜索的方法难度上升的问题,并且适用于其他与《星际争霸》中存在相同挑战的领域。
Dota 2是一款现代的团队竞技游戏,在复杂性方面与《星际争霸》等RTS游戏类似,包括信息不完善和时间跨度大。最近,OpenAI Five击败了一支由Dota 2职业玩家和99.4%的线上玩家组成的团队[30]。OpenAI Five的角色部队由一组智能体控制,根据人工制定的奖励和升级版近端策略优化算法(PPO)[49]一起训练。与AlphaStar不同的是,Dota 2的某些游戏规则更简化,玩家只能选择一部分特定的角色,智能体使用硬编码的子系统来处理游戏的某些方面,同时智能体可以感知到摄像机视角范围外的区域。
AlphaStar将模仿学习和强化学习进行结合,这种方法在过去已经被使用了几次。类似于AlphaStar的学习流程,原始的AlphaGo通过从人类玩家那里监督学习来初始化策略网络,然后将其作为蒙特卡洛树搜索中的先验知识[26]。其他学者试图从人的喜好中得出类似于统计z的结论,去训练奖励功能,然后利用它们去指导强化学习[50,51]或者从人工干预[52]中学习目标。
与联盟相关的是,研究学者在多智能体研究领域取得了最新进展,通过对几个相互竞争的智能体进行群体训练,且使用伪奖励进化来解决信用分配问题,使智能体在“雷神之锤III竞技场”[29]的“夺旗”模式中表现出非凡水平。同样,尽管联盟训练为PFSP和开发者指定了唯一的目标,但策略空间响应Oracle框架[53]还是与联盟训练密切相关。
2.3 基础设施
为了联盟训练,我们开发了具有高度可扩展性的训练装备,其中包含不同类型的分布式服务器,然后并行运行了大量的《星际争霸II》比赛,并根据这些游戏的数据更新了智能体的参数。对于联盟中的每个智能体的训练,同时进行了16000个《星际争霸II》比赛和16个行为任务(每个任务都使用具有8个TPU内核的TPU v3设备[23])完成推演。在抢占式CPU(大约相当于150个处理器,每个处理器有28个物理内核)上异步执行游戏实例进程,再动态处理智能体的步骤请求,从而有效利用TPU。与以前的工作[14,29]相比,使用TPU进行批处理推演可以极大提高效率。
Actors模型通过网络将一系列的观察、动作和奖励发送给一个128内核的TPU学习型服务器,后者会更新智能体训练的参数。接收到的数据在内存中缓冲并重新播放两次,然后学习型服务器进行大批量同步更新。每个TPU内核小批量处理四个序列,总批量大小为512。学习型服务器每秒处理约50000个智能体步骤,Actors模型每隔10秒就从学习型服务器那里更新一份参数副本。
我们将actor-learner模型设置的12个独立副本实例化:每个种族有一个主要智能体,一个主要开发型智能体和两个联盟开发型智能体。一个中心调度员保持支付矩阵的预估值,根据要求对新比赛进行抽样,并重置主要开发型智能体和联盟开发型智能体参数。并利用在CPU上运行的额外的评估工作者进行估算收益补充。有关训练设置的概述,请参见图6。
图6 训练设置图
Fig.6 Training infrastructure
2.4 游戏与界面
2.4.1 游戏环境
《星际争霸》是一款模拟于科幻世界中的实时战略游戏。暴雪娱乐的星际争霸系列,包括《星际争霸:母巢之战》和《星际争霸II》。在本文中,我们使用的是《星际争霸II》。自1998年《星际争霸》发行以来,便具有一个奖金为数千万美元的大规模比赛社区。《星际争霸II》最常见的比赛设定是1v1,每个玩家可以在人族、神族和虫族这三种种族中选择一种,每个种族都拥有着不同的部队和建筑,采用不同的机制,并且在对战中使用不同的战略。还有一种随机竞赛模式,即玩家会被随机选择到某一个竞赛区域。玩家最开始会有一个小的基地和几个兵力的部队,可以通过收集资源建造更多的部队和建筑物,同时侦察对手并研究新的战术。如果玩家失去所有建筑物,就表示被击败。
在实时人机比赛中,还没有一个被普遍接受的公平观念,因此我们在与《星际争霸II》的专业玩家以及暴雪的工作人员协商后,制定了比赛的条件、界面、视角、动作速度的限制和延迟。在这些条件下,AlphaStar参与游戏获得了职业玩家的认可(请参阅后面的职业玩家声明)。在策略的每个步骤中,智能体都会收到一个观察结果,并通过游戏界面发出一个操作(参见数据表1、2)。每个步骤可以有多个游戏时间步长(每个45毫秒)。
表1 智能体输入空间
Table 1 Agent input space
种类 |
领域 |
描述 |
实体(最多512个) |
单位类型 所有者 状态 显示类型 位置 工人数量 冷却时间 属性 单位属性 货物状态 建筑物状态 资源状态 命令状态 增益状态 |
例如:无人机或力场 智能体,对手或中立者 当前的生命值、护甲值和能量值 例如:快照,战争迷雾里的对方建筑物 实体位置 资源收集及基地建设 攻击冷却 看不见的,有动力的,假象,活跃的,在货物里和在屏幕上 例如:有生命的,带装甲的 当前和最大的储货空间 建造进展,建造队列和附加装置类型 可用资源目录 命令队列和命令进程 增益和增益持续的时间 |
地图(128×128格) |
高度 可见度 潜变 实体所有者 警报 可达路径 可建造 |
地理位置的高度 地图上的位置当前是否可见 在特定的位置是否有潜变 哪个玩家拥有的东西 单位是否遭到攻击 可以导航到达的区域 可以建造建筑物的区域 |
玩家数据 |
种族 升级 智能体统计数据 |
智能体和对手被设定的种族,以及智能体目前的种族 如果被察觉,智能体升级和对手升级 智能体当前的资源,补给供应,军队补给,工人补给,最大补给量,闲置的工人数量,传送门的数量,以及幼虫的数量 |
游戏数据 |
视角 时间 |
当前视角的位置,视角是32×20游戏单位大小的长方形 游戏中的实时时间 |
表2 智能体行动空间扩展数据
Table.2 Agent action space
领域 |
描述 |
操作类型 被选中的单元 目标 队列 重复 延迟 |
用于执行的操作,如移动个体或部队的操作,培养军队,移动切换视角或无操作 将执行相应操作的目标 地图中的实体或位置被离散化为256×256行动目标 是否把操作加入指令队列或立即执行 是否设定该操作的重复执行次数 等待下一次观察的游戏时间步数 |
2.4.2 视角
在进行《星际争霸》游戏时,为了避免信息过载,玩家仅可以看到一部分地图以及整个地图的高级视图。智能体可以通过类似摄像头的界面与游戏交互,这自然会节省注意力,因此智能体可以选择它完全看到并与之交互的区域。移动摄像头是智能体动作的一部分。
智能体摄像头界面外隐藏了敌对部队的某些信息,但智能体只能针对敌对部队的某些动作在界面内瞄准。尽管AlphaStar在视角内的精度比较低,但是它可以比视角外的人更精准地定位目标,因为在视角内外对目标位置的处理相同,都是在256×256网格中进行位置选择。智能体还可以在任何地方建造部队,而人类玩家对控制组的使用则不太灵活。在实践中,由于人类玩家具有优先权,智能体似乎没法利用这些额外的能力(见下面的职业玩家声明)。图3h中抽取的简化数据显示,智能体使用此摄像机视角会降低其性能。
2.4.3 APM限制
人每分钟可完成的动作数量(APM)在物理上是有限的。我们的智能体有一个进行APM限制的监视层,这就引入了一种行动规则,对行为进行了优先排序。智能体限制窗口每5秒最多执行22个不重复的操作。智能体在动作和游戏测得的APM之间进行转换并非易事,而且智能体的动作很难与人为的动作进行比较(计算机可以逐步精确地执行不同的动作)。有关APM的详细信息,请参见图2.c和图7。
图7 APM极限
Fig.7 APM limits
2.4.4 延迟
人类对新信息的反应速度是有限制的。AlphaStar有两个延迟源。首先,在实时评估(非训练)中,由于延迟、观察处理和推理,AlphaStar在观察和执行动作之间有大约110毫秒的延迟。其次,由于智能体会提前决定下一次的观察时间(平均370毫秒,但可能需要数秒),因此他们可能会对意外情况反应延迟。这些延迟的分布情况如图8所示。
图8 延迟
Fig.8 Delays
2.5 AlphaStar的普遍性
为了解决《星际争霸》在复杂性和博弈论方面的挑战,AlphaStar将新的技术和现有通用技术结合起来,用于神经网络、模仿学习、强化学习和多主体学习,这些技术及其组合具有广泛的适用性。
神经网络体系结构的组成,包括新的分散连接,通常都适用于观察结果由图像、列表和集合进行组合的其他游戏环境,所有这些情况在《星际争霸》中都存在。
AlphaStar的操作空间可以被定义为一组带有类型化参数的函数。其他游戏环境中,若有定义相似的API,都可以对复杂的、结构化的操作空间按相同的分解方式处理,这些操作空间的联合概率通过链式规则分解,例如,语言模型或定理证明。
AlphaStar的模仿学习需要大量的人类玩家演示才能有效,因此只适用于那些提供大量演示的范畴。使用潜在变量z进行探索研究并不是《星际争霸》所特有的,但特定统计数据的选取需要领域知识。特别是,我们选择z编码《星际争霸》中的空地和单位,再根据这些统计数据的适当距离(如编辑距离或Hamming距离)度量标准进行伪奖励。
AlphaStar的底层强化学习算法可以应用于任何强化学习环境中,利用对手的观测值获得较低的方差基准,或者作为训练数据中的新成分,这在很大程度上适用于其他领域,例如混合离轨策略学习、UPGO和模仿策略的提炼。
最后,针对不同类型的开发型智能体,我们提出了一种新的多智能体训练机制,旨在强化主要智能体。与PFSP一样,这些都是可以应用于其他多人游戏领域的通用技术。
3 实证评估
3.1 体系结构
AlphaStar的核心控制策略定义为函数
它将已有的观测值和操作(在数据表1和表2中定义)和z(表示策略统计信息)映射到当前步骤动作的概率分布中,实现为一个深层神经网络,其结构如下:
观测值以矢量形式表示,由深度LSTM[9]合并处理,且在每个步骤之间进行了保存。根据LSTM和观察编码器的输出,对参数进行自动回归采样[10]。每个合理的奖励都有一个价值函数(请参见3.3强化学习)。
我们根据体系结构组件在监督学习中的性能和深度学习体系结构[7,8,12,54,55]的许多最新进展,对其进行了选择和调整。在图9中给出了智能体体系结构的高级概述,在补充数据“详细体系结构”中有更详细的描述。AlphaStar有1.39亿个权重,但是在推理过程中仅需要5500万个权重。图3.f比较了分散连接、Transformer模型和指针网络的影响。
图9 AlphaStar体系结构概述
Fig.9 Overview of the architecture of AlphaStar
3.2 监督学习
每个智能体最初通过对录像进行监督学习,模仿人类玩家的操作来进行训练。监督学习既可用于智能体初始化,又可用于进行多样化的探索[56]。因此,我们的主要目标是制定一种能够涵盖《星际争霸》复杂性的多样化政策。
我们使用的是《星际争霸II》4.8.2至4.8.6版本中重播97.1万次的游戏数据集,由MMR分数(暴雪的度量标准,类似于Elo)大于3500的玩家提供,即来自于前22%的玩家。下载重播的说明参见网站https://github.com/Blizzard/s2client-proto。通过返回游戏的原始界面(数据表1、2)可观察智能体的操作动作和操作结果。我们为每个比赛训练一种策略,其使用的架构与强化学习中相同。
从每次重播中,我们提取一个统计z来编码每个玩家的建造顺序(定义为前20个建造的建筑物和部队),以及累积统计量(定义为游戏中存在的部队,建筑物,效果和升级情况)。在监督学习和强化学习中我们设置z为条件,且在10%的监督学习中把z设置为零。
为了训练这个策略,在每个步骤中,我们输入当前观察值,然后输出每个操作参数上的概率分布(数据表2)。对于这些参数,我们计算人为操作输出与理论输出之间的KL差异,并使用Adam优化器[57]更新应用、再使用L2正则化[58]应用。监督训练算法的伪代码可以在辅助的伪代码中找到。
为了进一步调整策略,我们仅使用MMR高于6,200(16,000场比赛)的获胜玩家数据。这些微调使得内置精英机器人在神族与神族的游戏对抗中,比赛获胜率从87%提高到96%。被微调的监督智能体对人族的评级为3947MMR,对神族的评级为3607MMR,对虫族的评级为3544MMR。它们能够构建游戏中的所有单元,并且本质上在游戏之间也具有多样性(如图10所示)。
图10 游戏中构建单元的分布。
Fig.10 Distribution of units built in a game.
3.3 强化学习
我们使用强化学习来改善智能体对战智能体游戏中AlphaStar的性能,用表示比赛结果的最终奖励,其中亏损时为-1,平局时为0,胜利时为+1,精准反映了游戏获胜者的真正目标。遵循actor–critic模式[14],训练价值函数来预测,用于更新策略。
当《星际争霸》被视为强化学习问题时,将面临一些挑战:领域复杂性和奖励稀疏性使得策略的探索十分困难;在整个训练过程中,具体策略要服务于多样化的全局战略;时间跨度大且行动空间复杂使得离轨策略学习具有较大困难。
3.3.1 探索与多样性
我们使用人类玩家的数据来辅助训练,同时在整个训练过程中保持策略具有多样性。首先,我们初始化监督策略的参数,并使监督策略和当前策略之间的KL差异保持最小[59,60]。第二,根据从人类玩家的数据中随机抽样的策略统计数据z,用伪奖励的方式训练主要智能体。这些伪奖励评估了抽样和执行构建命令之间的编辑距离,以及抽样和执行积累统计信息之间的汉明距离(详细体系结构请参阅补充数据)。每种类型的伪奖励都是变动的 (即非零),其概率为25%,并且对于每种伪奖励都单独计算了其价值函数和损失。我们发现利用人类玩家数据是实现强化学习优良性能的关键(如图3.e所示,利用真人玩家数据采用不同机制的简化测试,手动对监督学习神经网络参数进行初始化)。
3.3.2 价值和策略更新
新的轨迹是由Actor模型产生的。学习型智能体通过使用存储轨迹的回放缓冲区来异步地更新模型参数。因此,AlphaStar受制于离线策略的数据,这可能需要对离轨策略进行修正。我们发现现有的离线策略修正方法在大型结构化的动作空间中效率低下,例如在《星际争霸》中,不同的动作可能导致相似(甚至相同)的行为结果。我们使用了一种混合方法来解决这个问题,将修正的离线策略(避免不稳定)和未修正的已更新价值函数(引入偏差但减少方差)有机结合。具体而言,使用V-trace更新策略,使用TD(λ)[5]更新预估价值(如图3k所示是强化学习简化测试,通过训练对固定对手的最佳反应来避免多智能体性能的波动)。在大型操作空间中将V-trace应用于更新策略时,离线策略修正时将会提前切断跟踪,为了解决这个问题,我们假设操作类型、延迟和所有其他参数之间是独立的,从而分别更新策略的相应条件。为了减小预估值方差,还选用对手的观察值作为价值函数的输入。注意,由于在评估过程中价值函数是多余的,这些操作仅在训练期间使用。
除了V-trace更新策略之外,还引入了正向策略更新法(UPGO),它按照以下方法更新策略参数:
其中,
是一个正向的收益,是行为价值估计,是限幅的重要比率,同时是在Actor模型中生成轨迹的策略。与自我模仿学习[17]类似,当行为策略比平均水平更糟糕时,通过自举方法从部分轨迹中更新策略,使其获得比预期更好的奖励(如图3.i所示,强化学习简化测试图)。为了使《星际争霸》在大型空间上的行为逼近,使用预测目标预估行为价值。
总体损失是上述策略和价值损失函数的加权和,对应于基于人为数据的输赢奖励和伪奖励,以及监督策略的KL散度损失和标准熵的正则化损失[13]。我们使用Adam[57]优化了总体损失。在补充数据的伪代码中可以找到强化学习算法的伪代码。
3.4 多智能体学习
联盟训练采用一种多智能体强化学习算法,它既能解决自我对弈训练中经常遇到的循环问题,又能整合多种策略。在训练期间,通过定期保存来自智能体由强化学习算法进行训练的参数作为新玩家来扩充联盟。我们也会不断地重新评估内部的收益,为智能体提供有关联盟中所有玩家表现的最新信息(请参见图6中的评估者)。
3.4.1 优先虚拟自我对弈游戏
在三个种族最新训练的智能体中使用自我对弈(SP)算法展开游戏。这种方法在策略空间会陷入循环,并且单独使用效果不佳。FSP[20-22]通过与联盟中所有玩家间的对抗来避免循环。然而,许多游戏都是浪费在那些几乎在100%的游戏中都被击败的玩家身上。因此,引入了PFSP,使用一种匹配机制来提供良好的学习信号,而不是对联盟中的对手进行统一采样。首先给定一个学习智能体A,然后从一个候选集合C中对被冻结的对手B进行概率抽样。公式如下:
式中,,是一些加权函数。当时,PFSP会选择最强大的玩家,其中,为控制所得分布的熵。当时,智能体会不与已经击败的对手进行游戏。由于选择最强大的对手,智能体必须击败联盟中的每个人,而不是击败平均水平,这在诸如《星际争霸》之类的非传递性游戏(如图11所示)中尤为重要。在这种情况下,不能简单追求平均胜率,这可能导致策略失效。PFSP用此方案作默认加权,因此,从理论上讲,我们可以把看作是max-min优化的平滑近似形式,而不是FSP施加的max-avg形式。特别的是,这有助于整合漏洞信息,应用统一混合策略可不计强大但稀少的对抗策略的影响(如图5所示)。
智能体只有与最强硬的对手对抗,才有可能对付更强大的对手,因此PFSP也使用了另一种策略:。在这种策略中,智能体优先在自己的级别上与对手进行游戏。我们将此策略主要用于开发型智能体和竞争型智能体上。
图11 联盟智能体类型收益矩阵
Fig.11 Payoff matrix
3.4.2 扩充联盟
在训练中,我们使用了三种智能体,它们的不同之处仅在于当它们快速创建玩家以及被重新设置监督参数概率时,训练对手的分布。主智能体以35%的SP和50%的PFSP比重被训练,对抗联盟中所有已经通过训练的玩家,而另外15%的PFSP比重则被用于匹配对抗联盟中那些被遗忘的无法战胜的玩家以及曾经的开发者,如果没有那些玩家和开发者,那么这剩下的15%的PFSP将被用于玩家的自我博弈。每2×109步,便将智能体的副本作为新球员添加到联赛中。且永远不会重置主要智能体。
联盟的开发型智能体通过PFSP进行训练,当他们在超过70%的比赛中击败了联赛中所有玩家,或者在暂停时间达到2×109步后,他们冻结的副本将被添加到联赛中。此时,智能体有25%的概率被重置为监督参数。根据以往经验,联盟的开发型智能体能够发现联盟中的所有盲点(联盟中没有任何玩家可以击败的策略未必最优)。
3.4.3 主要开发型智能体与主要智能体的对抗
一般情况下,如果当前的获胜概率低于20%,开发型智能体就会使用带有fvar权重的PFSP来对抗由主智能体创建的玩家。这就形成了一种促进学习的过程,另外将会有足量的学习信号对抗当前的主智能体。当三个主智能体在超过70%的比赛中被击败,或者超过步后,开发型智能体将添加到联盟中,然后重置到监督参数。主开发型智能体可以识别主智能体的弱点,从而使其更加强大。有关更多详细信息,请参阅补充数据伪代码。
3.5 评价
3.5.1 AlphaStar Battle.net 评估
在《星际争霸II》(拥有版本号为4.9.3的平衡性补丁)的Battle.net(基于MMR评级的暴雪在线配对系统)上,对AlphaStar智能体对抗人类玩家的表现进行了评估。AlphaStar的决赛等级为大师级,超过了99.8%的人类玩家,过去的几个月里,这些玩家(约9万名),在欧服联盟里的活跃度都很高。
AlphaStar只与选择参加实验的对手比赛(大多数玩家选择参加)[62],AlphaStar使用匿名账户名,并在以下四张地图上对战:赛博森林、凯罗斯中转站、国王藏宝地、宿怨战场。暴雪在测试前几周更新了地图库。我们没有对AlphaStar进行再培训,而是简单地使用了保存在7张可用地图中的4张常用地图。人类玩家还必须至少选择四张地图,并使用匿名帐户进行游戏。每个智能体都在单一的高端用户GPU上运行。我们对每个智能体进行了三种不同的评估:仅在联赛训练后(监督评估)、联赛训练27天后(中期评估)和联赛训练44天后(最终评估)。
对于监督评估和中期评估,每个智能体都从一个新的、未排序的帐户开始。他们的MMR和人类玩家一样在 Battle.net上更新。监督评估和中期评估分别进行了30和60场游戏。在50场比赛后,由于匿名的限制被打破,中期评估被暂停,但游戏场数仍在增加。
我们在Battle.net上进行的最终评估采用多帐户并行游戏的方式,避免智能体身份暴露。我们账户的MMR是从联合估计中点MMR的分布中随机选取的。因此,我们使用由暴雪提供的底层概率模型,代替Battle.net提供的迭代MMR估计:用不确定的u来评定r,用不确定性ui∈[0.1,1.0]来评定对手的ri,其结果oi∈{−1,1}的概率为
式中,Φ是标准高斯分布的累积分布函数(CDF),其中u = ui = 0.1,为Battle.net的最小不确定度。
在假设比赛结果独立均匀同分布(IID),且MMR上的一致先验的情况下,我们可以将评分计算为:
我们通过《星际争霸II》职业玩家Dario ‘ TLO ‘ Wunsch最近的200场比赛,计算得出的MMR估算值为6334,而 Battle.net的MMR平均值为6336,这验证了MMR计算的准确性。
3.5.2 《星际争霸》示范评估
在2018年12月,我们与《星际争霸II》的职业玩家Grzegorz‘MaNa’Komincz和Dario‘TLO’Wünsch进行了两个系列赛,每个系列赛共有五场,其中TLO并没有参加过像《星际争霸II》这样职业的比赛。使用AlphaStar[63]的不同初版本进行这些比赛。特别注意的是,智能体有一个无限制的摄像头,其在行动频率上受到的限制较少,并且可以在一张地图上为单个《星际争霸II》种族进行比赛。AlphaStar赢得了两个系列赛的所有十场比赛,但早期的相机原型智能体在接下来的比赛中输给了MaNa。
3.6 分析
3.6.1 智能体设置
我们针对只用于主要智能体而不用于开发型智能体的17个策略,验证了联盟的稳健性,并将z固定到一组精心策划关注度高的策略上 (例如,炮火战或早期飞行部队)。
简化测试智能体,包括验证智能体,和通过全联盟训练第一代神族智能体,此智能体由20个主要的开发型智能体和20个联盟开发型智能体所组成。
对于固定的对手,为了评估强化学习算法,计算了在统一混合策略下,由联盟训练创造的前10个联盟开发型智能体的最佳反应。
3.6.2 图中使用的衡量指标
为了计算联盟内部ELO等级,添加了内置机器人,并用它们来估计Elo,模型如下:
式中,和是两个玩家的Elo等级。由于Elo等级没有固有的绝对标准,所以通过将内置的精英机器人的等级设置为0来进行衔接。
RPP是两个种群达到Nash均衡[19]后元博弈的预期结果。联盟A和联盟B中所有智能体之间的支付矩阵的规模分别为N和M,即。
式中,,是在处于Nash均衡的规模为K的X联盟中,分配给每个智能体的概率向量。RPP高表示联盟A的智能体可以形成一种混合策略,利用联盟B的智能体,且联盟B无法利用联盟A的智能体。
4 结论
AlphaStar是第一个在《星际争霸II》中达到特级大师水平的智能体,也是第一个在不简化游戏规则的情况下,通过广泛的职业电子竞技而达到人类玩家最高水平的智能体。像《星际争霸》一样,现实世界中的一些领域,例如个人助理,自动驾驶汽车或机器人技术,需要在组合化或结构化的操作空间上进行实时决策,并给出不完全观测到的信息。此外,与《星际争霸》类似,许多应用程序都有复杂的策略空间,其中往往包含循环或十分艰难的探索情形。当在真实的世界中操作时,智能体可能会遇到意想不到的策略或复杂的边缘情况。AlphaStar在《星际争霸II》中的成功,表明通用机器学习算法对复杂的现实问题产生了重大影响。
为了进一步分析AlphaStar,还进行了几次内部比赛(图3)和评估(图4)。对于多智能体动态训练,在整个联盟训练过程中对所有智能体进行了一次循环赛,第二次锦标赛是主要智能体对抗训练有素并遵循特定人类玩家策略的验证型智能体。在所有的三个种族中,主要智能体的性能都稳步提高。随着时间的推移,主要开发型智能体的性能逐渐降低,而主要智能体相对于训练有素的验证智能体性能更好,这两种情况都表明主要智能体鲁棒性逐渐增强。在每个时间点上,根据联盟Nash均衡,所有玩家的为已迭代玩家分配了较小的概率,这表明学习算法不会循环或者回归。最后,在整个联盟的训练中,兵种组成发生了变化,这体现了一个多样化的战略进程。
我们使用官方在线配对系统Battle.net上的无条件策略,对AlphaStar智能体塑造的人族、神族和虫族这三个主要种族进行了评估。每个智能体在训练期间接受了三次不同的评估:只接受有监督训练(AlphaStar有监督训练)、经过27天的联盟训练(AlphaStar中期训练)和经过44天的联盟训练(AlphaStar决赛)。从Battle.net上的无等级评定开始,在监督评估和中期评估期分别进行了30和60场比赛的评估;根据中期评估的评分,每场比赛中最终评估另外增加了30场比赛。Battle.net的配对程序选择了地图和对手,比赛是在未知的情况下进行:没有给AlphaStar提供对手的身份信息,而是以匿名账户进行比赛。选择这些条件是为了估计AlphaStar在近似稳定条件下的实力,但不能直接测量出其在重复游戏中可被利用的程度。
监督评估的平均评分达到3699分,超过了84%的人类玩家,且最终评估对神族、人族和虫族的评分分别为6275分、6048分和5835分,超过了99.8%的人类玩家,并且在三个种族中都处于大师级水平(图12:(分析)、补充数据、重播(游戏重播))。
图12 Battle.net性能详细信息
Fig.12 Battle.net performance details
本文翻译自Oriol Vinyals, Lgor Babuschkin, Wojciech M, etc. Grandmaster level in StarCraft Ⅱ using multi-agent reinforcement learning. Nature, https://doi.org/10.1038/s41586-019-1724-z.)
译校者简介:
邓雅倩(1995-),女,硕士生。专业特长:舰船电子工程
张媛媛(1994-),女,硕士生。专业特长:舰船电子工程
王晓鹏(1990-),男,硕士生。专业特长:舰船电子工程
王敏(1997-),女,硕士生。专业特长:舰船电子工程
罗威(1980-),男,博士,高级工程师。专业特长:舰船电子信息系统
完
总结3: 《强化学习导论》代码/习题答案大全
总结6: 万字总结 || 强化学习之路
完
第93篇:MuZero在Atari基准上取得了新SOTA效果
第91篇:详解用TD3算法通关BipedalWalker环境
第88篇:分层强化学习(HRL)全面总结
第85篇:279页总结”基于模型的强化学习方法”
第84篇:阿里强化学习领域研究助理/实习生招聘
第83篇:180篇NIPS2020顶会强化学习论文
第81篇:《综述》多智能体强化学习算法理论研究
第80篇:强化学习《奖励函数设计》详细解读
第79篇: 诺亚方舟开源高性能强化学习库“刑天”
第77篇:深度强化学习工程师/研究员面试指南
第75篇:Distributional Soft Actor-Critic算法
第74篇:【中文公益公开课】RLChina2020
第73篇:Tensorflow2.0实现29种深度强化学习算法
第72篇:【万字长文】解决强化学习”稀疏奖励”
第71篇:【公开课】高级强化学习专题
第70篇:DeepMind发布”离线强化学习基准“
第66篇:分布式强化学习框架Acme,并行性加强
第65篇:DQN系列(3): 优先级经验回放(PER)
第64篇:UC Berkeley开源RAD来改进强化学习算法
第61篇:David Sliver 亲自讲解AlphaGo、Zero
第59篇:Agent57在所有经典Atari 游戏中吊打人类
第58篇:清华开源「天授」强化学习平台
第57篇:Google发布”强化学习”框架”SEED RL”
第53篇:TRPO/PPO提出者John Schulman谈科研
第52篇:《强化学习》可复现性和稳健性,如何解决?
第51篇:强化学习和最优控制的《十个关键点》
第50篇:微软全球深度强化学习开源项目开放申请
第49篇:DeepMind发布强化学习库 RLax
第48篇:AlphaStar过程详解笔记
第47篇:Exploration-Exploitation难题解决方法
第45篇:DQN系列(1): Double Q-learning
第44篇:科研界最全工具汇总
第42篇:深度强化学习入门到精通资料综述
第41篇:顶会征稿 || ICAPS2020: DeepRL
第40篇:实习生招聘 || 华为诺亚方舟实验室
第39篇:滴滴实习生|| 深度强化学习方向
第37篇:Call For Papers# IJCNN2020-DeepRL
第36篇:复现”深度强化学习”论文的经验之谈
第35篇:α-Rank算法之DeepMind及Huawei改进
第34篇:从Paper到Coding, DRL挑战34类游戏
第31篇:强化学习,路在何方?
第30篇:强化学习的三种范例
第29篇:框架ES-MAML:进化策略的元学习方法
第28篇:138页“策略优化”PPT–Pieter Abbeel
第27篇:迁移学习在强化学习中的应用及最新进展
第26篇:深入理解Hindsight Experience Replay
第25篇:10项【深度强化学习】赛事汇总
第24篇:DRL实验中到底需要多少个随机种子?
第23篇:142页”ICML会议”强化学习笔记
第22篇:通过深度强化学习实现通用量子控制
第21篇:《深度强化学习》面试题汇总
第20篇:《深度强化学习》招聘汇总(13家企业)
第19篇:解决反馈稀疏问题之HER原理与代码实现
第17篇:AI Paper | 几个实用工具推荐
第16篇:AI领域:如何做优秀研究并写高水平论文?
第15篇:DeepMind开源三大新框架!
第13篇:OpenSpiel(28种DRL环境+24种DRL算法)
第11篇:DRL在Unity自行车环境中配置与实践
第8篇:ReinforceJS库(动态展示DP、TD、DQN)
第5篇:深度强化学习在阿里巴巴的技术演进
第4篇:深度强化学习十大原则
第2篇:深度强化学习的加速方法
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145539.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...