腾讯王者荣耀人工智能「绝悟」的论文终于发表了。在研究测试中,AI 玩露娜和顶级选手单挑时也赢了个 3:0。
围棋被攻克之后,
多人在线战术竞技游戏(MOBA)
已经成为测试检验前沿人工智能的动作决策和预测能力的重要平台。基于腾讯天美工作室开发的热门 MOBA 类手游《王者荣耀》,腾讯 AI Lab 正努力探索强化学习技术在复杂环境中的应用潜力。本文即是其中的一项成果,研究用深度强化学习来为智能体预测游戏动作的方法,该论文已被 AAAI-2020 接收。
据介绍,此技术支持了腾讯此前推出的策略协作型 AI「绝悟」1v1 版本,该版本曾在今年 8 月上海举办的国际数码互动娱乐展览会 China Joy 首次亮相,在 2100 多场和顶级业余玩家体验测试中胜率达到 99.8%。
王者荣耀 1v1 游戏 UI 界面。在主屏幕中,左上角的 A 为小地图、右上角 B 为控制面板、左下角 C.1 为移动控制、右下角的 C.2 为技能控制。实验表明,AI 智能体能在多种不同类型的英雄上能击败顶级职业玩家。
此外,腾讯 AI Lab 告诉机器之心,
本文提出的框架和算法将在未来开源,而且为了促进对复杂模拟场景的进一步研究,腾讯也将在未来把《王者荣耀》的游戏环境提供给社区使用,并且还会通过虚拟云的形式向社区提供计算资源。
腾讯 AI Lab 表示,AI+游戏的研究成果,短期看,可以给游戏行业、电竞行业带来直接的推动和帮助,同时也能应用到教育、医疗、农业等更多行业中。
长期来看,AI+游戏的研究,会推进 AI 的终极目标——通用人工智能问题的探索和发展。
除了本次研究提出的王者 1v1 智能体,腾讯 AI Lab 与王者荣耀还将联合推出「开悟」AI+游戏开放平台。
王者荣耀会开放游戏数据、游戏核心集群(Game Core)和工具,腾讯 AI Lab 会开放强化学习、模仿学习的计算平台和算力,邀请高校与研究机构共同推进相关 AI 研究,并通过平台定期测评,让「开悟」成为展示多智能体决策研究实力的平台。
目前「开悟」平台已启动高校内测,预计在 2020 年 5 月全面开放高校测试,并且在测试环境上,支持 1v1,5v5 等多种模式;2020 年 12 月,腾讯计划举办第一届的 AI 在王者荣耀应用的水平测试。想想是不是就很有趣?
为了评估智能体的能力,研究者将模型部署到王者荣耀中,并与专业的顶级玩家对战。比赛确保了智能体每做一次决策的反应时间与人类差不多。
表 3 给出了 AI 和 5 名顶级职业选手的比赛结果,需要指出这些职业玩家玩的都是他们擅长的英雄。可以看到 AI 能在多种不同类型的英雄上击败职业选手。
表 3:AI 与职业选手使用不同类型英雄比赛的结果
绝悟选择了每个人类玩家擅长的英雄进行了 1v1 的五局三胜对战,用到的英雄包括貂蝉、狄仁杰、露娜、韩信和花木兰。
当然,与 5 位顶级玩家的对战并不能说明智能体已经无敌了,因此在 ChinaJoy 2019 中,腾讯 AI Lab 举行了大型公开赛。如果玩家在 1v1 比赛中击败了游戏 AI,那么能获得价值 4200 元人民币的智能手机,而且现场参赛设置了门槛:挑战 AI 的玩家需要达到排位前 1%(即在天梯上达到「荣耀王者」级别)。在所有 2100 次匹配赛中,游戏 AI 只输了 4 次(其中国服第一后羿拿下了一局),更详细的对战信息可查看文后实验部分。
在竞争环境中学习具备复杂动作决策能力的智能体这一任务上,深度强化学习(DRL)已经得到了广泛的应用。在竞争环境中,很多已有的 DRL 研究都采用了两智能体游戏作为测试平台,即一个智能体对抗另一个智能体(1v1)。Atari 和围棋等游戏目前已经有很多优秀的解决方案,但更复杂的推塔类游戏又该怎么解?
这篇研究就在探讨这种更复杂的 MOBA 1v1 游戏,其中 MOBA 1v1 游戏就是一种需要高度复杂的动作决策的 RTS 游戏。相比于棋盘游戏和 Atari 系列等 1v1 游戏,MOBA 的游戏环境要复杂得多,AI 的动作预测与决策难度也因此显著提升。
以 MOBA 手游《王者荣耀》中的 1v1 游戏为例,其状态和所涉动作的数量级分别可达 10^600 和 10^18000,而围棋中相应的数字则为 10^170 和 10^360,参见下表 1。
表 1:围棋与 MOBA 1v1 游戏的比较
此外,MOBA 1v1 的游戏机制也很复杂。要在游戏中获胜,智能体必须在部分可观察的环境中学会规划、攻击、防御、控制技能组合以及诱导和欺骗对手。除了玩家与对手的智能体,游戏中还有其它很多游戏单位,比如小兵和炮塔。这会给目标选择带来困难,因为这需要精细的决策序列和相应的动作执行。
此外,MOBA 游戏中不同英雄的玩法也不一样,因此就需要一个稳健而统一的建模方式。还有一点也很重要:MOBA 1v1 游戏缺乏高质量人类游戏数据以便进行监督学习,因为玩家在玩 1v1 模式时通常只是为了练习英雄,而主流 MOBA 游戏的正式比赛通常都采用 5v5 模式。
需要强调,本论文关注的是 MOBA 1v1 游戏而非 MOBA 5v5 游戏,因为后者更注重所有智能体的团队合作策略而不是单个智能体的动作决策。考虑到这一点,MOBA 1v1 游戏更适合用来研究游戏中的复杂动作决策问题。
为了解决这些难题,腾讯 AI Lab 设计了一种深度强化学习框架,并探索了一些算法层面的创新,对 MOBA 1v1 游戏这样的多智能体竞争环境进行了大规模的高效探索。文中设计的神经网络架构包含了对多模态输入的编码、对动作中相关性的解耦、探索剪枝机制以及攻击注意机制,以考虑 MOBA 1v1 游戏中游戏情况的不断变化。
腾讯 AI Lab 表示,这篇论文的贡献在于,对需要高度复杂的动作决策的 MOBA 1v1 游戏 AI 智能体的构建进行了全面而系统的研究。
网络的优化使用了一种多标签近端策略优化(PPO)目标,并提出了对动作依赖关系的解耦方法、用于目标选取的注意机制、用于高效探索的动作掩码、用于学习技能组合 LSTM 以及一个用于确保训练收敛的改进版 PPO——dual-clip PPO。
下面,我们来看看这个强大的智能体,在算法和效果上都是什么样的。
论文地址:
https://arxiv.org/abs/1912.09729
顶级智能体长什么样?
考虑到复杂智能体的动作决策问题可能引入高方差的随机梯度,所以有必要采用较大的批大小以加快训练速度。因此,本文设计了一种高可扩展低耦合的系统架构来构建数据并行化。具体来说,这个架构包含四个模块:强化学习学习器(RL Learner)、人工智能服务器(AI Server)、分发模块(Dispatch Module)和记忆池(Memory Pool)。如图 1 所示。
AI 服务器实现的是 AI 模型与环境的交互方式。分发模块是用于样本收集、压缩和传输的工作站。记忆池是数据存储模块,能为 RL 学习器提供训练实例。这些模块是分离的,可灵活配置,从而让研究者可将重心放在算法设计和环境逻辑上。这样的系统设计也可用于其它的多智能体竞争问题。
RL 学习器中实现了一个 actor-critic 神经网络,其目标是建模 MOBA 1v1 游戏中的动作依赖关系。如图 2 所示。
图 2:论文实现的 actor-critic 网络
为了实现有效且高效的训练,本文提出了一系列创新的算法策略:
目标注意力机制;用于帮助 AI 在 MOBA 战斗中选择目标。
LSTM;为了学习英雄的技能释放组合,以便 AI 在序列决策中,快速输出大量伤害。
动作依赖关系的解耦;用于构建多标签近端策略优化(PPO)目标。
动作掩码;这是一种基于游戏知识的剪枝方法,为了引导强化学习过程中的探索而开发。
dual-clip PPO;这是 PPO 算法的一种改进版本,使用它是为了确保使用大和有偏差的数据批进行训练时的收敛性。如图 3 所示。
图 3:论文提出的 dual-clip PPO 算法示意图,左为标准 PPO,右为 dual-clip PPO
惊艳的实验效果
测试平台为热门 MOBA 游戏《王者荣耀》的 1v1 游戏模式。为了评估 AI 在现实世界中的表现,这个 AI 模型与《王者荣耀》职业选手和顶级业余人类玩家打了大量比赛。实验中 AI 模型的动作预测时间间隔为 133 ms,这大约是业余高手玩家的反应时间。另外,论文方法还与已有研究中的基准方法进行了比较,其中包括游戏内置的决策树方法以及其它研究中的 MTCS 及其变体方法。实验还使用 Elo 分数对不同版本的模型进行了比较。
在上文中,通过挑战顶级职业玩家,腾讯 AI Lab 可以探索智能体动作决策能力的上限;通过挑战大量顶级业余玩家,AI Lab 可以评估智能体的动作决策能力稳健性。
在 2019 年 8 月份,王者荣耀 1v1 AI 对公众亮相,与大量顶级业余玩家(Top 1%)进行了 2100 场对战,AI 胜率达到惊人的 99.81%,在 5 个英雄上都保持绝对的胜率。
可以看到,用论文新方法训练的 AI 的表现显著优于多种 baseline 方法。
图 5 展示了训练过程中 Elo 分数的变化情况,这里给出的是使用射手英雄「狄仁杰」的例子。可以观察到 Elo 分数会随训练时长而增长,并在大约 80 小时后达到相对稳定的水平。此外,Elo 的增长率与训练时间成反比。
图 5:训练过程中 Elo 分数的变化情况
为了理解论文方法中不同组件和设置的效果,控制变量实验是必不可少的。表 5 展示了使用同样训练资源的不同「狄仁杰」AI 版本的实验结果。
表 5:控制变量实验
在 2020 年第一场人工智能学术顶会 AAAI 开幕之前,机器之心将策划多期线上分享,本论文一作叶德珩博士将于1月2日晚为大家做直播分享。
线上分享将在「AAAI 2020 交流群」中进行,加群方式:添加机器之心小助手(syncedai4),备注「AAAI」,邀请入群。入群后将会公布直播链接。