不知道你是否玩过王者荣耀,不知道你是不是经历过被人机疯狂怼在塔下强杀然后嘲讽你的经历?就,真说多了就是泪。
最近,NeurlPS2020会议收录了来自腾讯AI Lab的一篇强化学习的论文《Towards Playing Full MOBA Games with Deep Reinforcement Learning》本文将介绍一下这篇论所讲的内容。

摘要

多人在线竞技类游戏 MOBA 长久以来一直吸引着众多玩家,其中的王者荣耀、英雄联盟、Dota 2 等最近也常被 AI 研究者当做人工智能的实验场,其中的多智能体、巨大的状态动作空间、复杂的环境等元素向 AI 系统提出了极大的挑战。开发用于 MOBA 游戏的 AI 引起了广泛的关注。

然而,当 OpenAI 的 Dota AI 将游戏限制在只能选择 17 名英雄的情况下,若想扩展英雄库,现有的工作在处理由智能体组合(即阵容)爆炸性增长所导致的游戏复杂性方面的问题存在难度。因此,现有的 AI 系统并不能掌握完全没有限制的 MOBA 游戏。

本文,将新的和已有的学习技术结合起来,对系统设计和算法都做了大量的优化,包括课程自我博弈学习、策略蒸馏(policy distillation), 离策略自适应(off-policy adaption)、多头值估计(multi-head value estimation)、蒙特卡洛树搜索等,在训练和用大量英雄玩游戏,同时巧妙地解决了可扩展性的问题。

在王者荣耀上进行测试,展示了人类可以打造出能够击败顶级电子竞技玩家的超级 AI 智能体。通过文献中首次对 MOBA AI 智能体进行大规模性能测试,证明了该 AI 的优越性。

学习系统

为了解决 MOBA 游戏的复杂性,该研究结合了新的和现有的学习技术,用于神经网络架构、分布式系统、强化学习、多智能体训练、课程学习和蒙特卡罗树搜索。尽管该研究使用王者荣耀进行研究,但这些技术同样适用于其他 MOBA 游戏,因为 MOBA 游戏的游戏机制是类似的。

网络结构设计主要包括如下几个方面:

多模态特征输入(生命值、金币、等级等)

使用 LSTM 来处理部分可观测的问题

使用注意力机制进行目标选择

为了提高训练的效率,动作掩码(action mask)就被引用进了策略的输出层。它是建立在人类玩家丰富先验知识的基础之上,加入了动作之间的相关性,这样就可以减少强化学习中的探索过程。

分层动作设计、动作离散化设计

AI分层次的预测动作

策略更新
研究人员使用了双边截断的PPO方法:
介绍这个改进算法之间首先要简单介绍一些原始的PPO算法的思想:PPO算法是一种基于Policy Gradient的强化学习算法,根据OpenAI[2]的解释,之前的Policy Gradient算法对步长非常敏感,策略更新过程中如果步长过小,那么策略 更新的速度会非常缓慢。反之,如果策略更新步长过大,那么策略更新波动会非常剧烈,很难收敛。

因此,PPO就应运而生了,它采用新策略与老策略之间的比值来限制策略的更新幅度,这样策略的更新对步长就不再那么敏感。简而言之,PPO在原来Policy Gradient加入了一个关键的部分,策略比值


c大于1表示下界,
表示最初的截断

值函数更新
模型使用了游戏状态的完整信息,包括隐藏的观测信息作为值函数的输入来降低值估计的方差。值得注意的是,这种方式仅在训练阶段使用,因为测试时只需要策略网络。为了更准确地估计值函数,研究人员引入了multi-head value(MHV)方法。由图1可知,reward被分成了5大类。损失函数定义如下:

其中Rk t和V kt分别为第k个头的奖励折现和价值估计。
然后,总价值估计是头值估计的加权和。

多智能体训练
大型英雄池会导致大量的阵容。当使用自我博弈强化学习时,10 个智能体玩一个 MOBA 游戏面临着运动目标不稳定的问题。此外,不同的 self-play 游戏阵容各不相同,这使得策略学习更加困难。在训练中出现紊乱的智能体组合导致性能下降。这需要一个范式来指导 MOBA 中的智能体学习。

阶段 1,从简单的任务开始,训练固定的阵容。

阶段 2,专注于如何继承固定阵容的 self-plays 游戏所掌握的知识。
采用了multi-teacher政策蒸馏,使用第一阶段的模型作为老师Π,然后合并为单一学生模型Π,loss函数定义如下:

阶段 3,通过从第 2 阶段中提取的模型进行模型初始化,从英雄池中随机挑选阵容进行持续训练。

学习征召模式
扩大英雄池所带来的一个新问题是 BAN 选机制(Ban Pick)。在 MOBA 比赛开始之前,两支队伍经过挑选英雄的过程,这将直接影响未来的策略和匹配结果。给定一个庞大的英雄池,例如 40 个英雄(超过 10的11次方组合),一个完整的树搜索方法,如 OpenAI Five[2]中使用的 Minimax 算法,在计算上是困难的。
为了解决这个问题,研究者利用蒙特卡洛树搜索(MCTS)和神经网络开发了一种 BAN 选智能体。MCTS 会估算每次选择的长期价值,价值最大的英雄将被选中。该研究使用的特定 MCTS 版本是应用于树(UCT)的上置信界。在征召模式 Ban 选的过程中迭代地构建一棵搜索树,其中每个节点代表一个状态(两个团队都已经选择了英雄),每条边代表一种动作(选择尚未选择的英雄),然后会产生下一个状态。

实验结果

腾讯 AI Lab 训练了一个英雄池大小为 40 的 AI 版本,覆盖了所有英雄角色,包括坦克、法师、辅助、刺客、射手和战士。英雄池的规模是 OpenAI 的 2.4 倍,英雄组合复杂度提升了 2.1×10^11 倍。在挑选英雄阶段,人类玩家可以从 40 个英雄中随机挑选。在对局中,研究人员没有对游戏规则进行任何限制,玩家可以任意购买物品或者使用自己喜欢的召唤师技能。

为了测试 AI 的真实水平,腾讯邀请了王者荣耀职业玩家来和 AI 进行对抗。从 2020 年 2 月 13 日到 4 月 30 日,AI 每周都会和职业玩家进行多次对弈。职业玩家被鼓励使用他们擅长的英雄以及尝试不同的游戏策略。在最初的 10 周时间内,人机对决共进行了 42 场,AI 赢了 40 场(95.2% 的胜率,置信区间[0.838,0.994])。

2020 年 5 月 1 日到 5 月 5 号,腾讯 AI Lab 将 AI 部署到王者荣耀正式服务器上和玩家公开对抗,对参与玩家设置了段位门槛。为了鼓励玩家参与,玩家如果击败了 AI 就能够拿到一枚荣誉徽章。最终,绝悟 AI 与顶尖玩家对抗了 642,047 局,AI 赢得了其中的 627,280 局(胜率 97.7,置信区间[0.9766, 0.9774])。对比其它的公开游戏 AI 测试:AphaStar 和 OpenAI 各打了 90 和 7,257 场,而且对参与者没有游戏水平的要求。

在图 3 中,研究者说明了 CSPL 的整个训练过程和基线方法。表 1 对比了两种方法的具体训练时间。
为了进一步分析该方法中的组件,研究者进行了几项内部控制变量实验,结果如图 4 所示。

结论

在本文中,提出了一种用于使用深度强化学习来玩完整的MOBA游戏的MOBA AI学习范式。我们开发了一种结合了新颖和现有的学习技术,包括非策略适应、多头值估计、课程自玩学习、多教师策略提取、蒙特卡罗树搜索等,以解决由于训练和玩大英雄池而出现的问题。在目前最流行的MOBA游戏《王者荣耀》的测试中,我们的AI能够打败顶尖的人类玩家并具有统计学意义。据我们所知,这是第一个基于强化学习的MOBA AI程序,它可以玩40个英雄或者更多。此外,在我们的大规模、严格、反复的性能测试中,还没有针对复杂策略视频游戏的人工智能程序。在未来,我们将继续致力于完全英雄池的支持,并研究更有效的训练方法,以进一步缩短MOBA AI的学习过程。为了促进游戏智能的研究,我们也会为人工智能社区开发moba游戏的子任务。

或许如果你没玩过王者荣耀,你可以看看他的游戏界面

AAAI 2020使用深度强化学习的MOBA游戏《Towards Playing Full MOBA Games with Deep Reinforcement Learning》打败王者荣耀顶尖选手相关推荐

  1. 演化强化学习:Wuji: Automatic Online Combat Game Testing Using Evolutionary Deep Reinforcement Learning

    0 摘要 这篇文章的摘要没有提到很多感兴趣的东西,一句话概括就是 Wuji模型可以使用深度强化学习去进行游戏测试,是一个多任务智能体,不仅要通关游戏,还要尽可能的去探索游戏,找到游戏中的bug . 1 ...

  2. 【深度强化学习】【论文阅读】【双臂模仿】Deep Imitation Learning for BimanualRobotic Manipulation

    title: Deep Imitation Learning for BimanualRobotic Manipulation date: 2023-01-15T20:54:56Z lastmod: ...

  3. 用深度强化学习玩atari游戏_被追捧为“圣杯”的深度强化学习已走进死胡同

    作者 | 朱仲光 编译 | 夕颜出品 | AI科技大本营(ID:rgznai1100) [导读]近年来,深度强化学习成为一个被业界和学术界追捧的热门技术,社区甚至将它视为金光闪闪的通向 AGI 的圣杯 ...

  4. 用深度强化学习玩atari游戏_(一)深度强化学习·入门从游戏开始

    1.在开始正式进入学习之前,有几个概念需要澄清,这样有利于我们对后续的学习有一个大致的框架感 监督型学习与无监督型学习 深度强化学习的范畴 监督型学习是基于已有的带有分类标签的数据集合,来拟合神经网络 ...

  5. 深度强化学习篇2:从Playing Atari with Deep Reinforcement Learning 看神经网络的输入,学习的状态空间

    Introduction:学习直接从高维的感观输入(视觉,语音)去直接控制智能体是强化学习一个长期的挑战.一些成功的RL应用都是依赖于hand-crafted的特征.最近深度学习的进步使提取高水平的特 ...

  6. Mastering Complex Control in MOBA Games with Deep Reinforcement Learning(论文笔记)

    本文由腾讯AI Lab跟天美发表,用于王者荣耀1v1的AI训练,达成99.81%的胜率.文章分了几个部分进行讲解. 大系统 整个框架分为四个模块:RL Learner,AI Server,Dispat ...

  7. 深度强化学习探索算法最新综述,近200篇文献揭示挑战和未来方向

    ©作者 | 杨天培.汤宏垚等 来源 | 机器之心 强化学习是在与环境交互过程中不断学习的,⽽交互中获得的数据质量很⼤程度上决定了智能体能够学习到的策略的⽔平.因此,如何引导智能体探索成为强化学习领域研 ...

  8. 深度强化学习的 18 个关键问题 | PaperDaily #30

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  9. python全局解释器锁 tensorflow_想轻松复现深度强化学习论文?看这篇经验之谈

    近期深度强化学习领域日新月异,其中最酷的一件事情莫过于 OpenAI和 DeepMind 训练智能体接收人类的反馈而不是传统的奖励信号.本文作者认为复现论文是提升机器学习技能的最好方式之一,所以选择了 ...

最新文章

  1. 一个简洁OKR是成功的关键因素
  2. 直接型FIR滤波器的fpga实现
  3. 使用asp.net MVC4中的Bundle遇到的问题及解决办法
  4. 一款旅游型的在路上应用源码项目
  5. 入门K8s:一键脚本搭建Linux服务器集群
  6. python语言学完后学什么_学完Python语言可以做什么?发展前景怎么样?
  7. 从程序员到项目经理(12):如何管理自己的时间(上)
  8. mfc之解决vs2010调试监视器(MSVSMON.EXE)未能启动的问题
  9. leetcode之前K个高频元素
  10. Eclipse中自动生成get/set时携带注释
  11. 高中计算机数学,高中数学必修5
  12. react 使用ajax axios,react中使用Ajax请求(axios,Fetch)
  13. html怎么添加banner图,如何在wordpress首页中添加banner图片?
  14. Tensorflow学习-自定义模型
  15. 云计算是互联网和计算机技术发展的产物,云计算 是传统计算机和网络技术发展融合的产物,它意味着计算能力也可作为一种商品通过互联网进行流通 。...
  16. 极速狂飙 无线网BT下载使用技巧全攻略
  17. html5人脸拼图,layout拼图
  18. Hark的数据结构与算法练习之插入排序
  19. 访问者模式Visitor
  20. QQ浏览器隐私泄露报告

热门文章

  1. 炉石传说游戏系统拆解
  2. 小红书标签怎么添加?小红书标签对作品有什么影响
  3. STM32L071 Flash写入的数据进行CRC-CCITT校验
  4. 学计算机的怎样分析TCGA数据库,开启数据挖掘之门:TCGA数据库入门必看!
  5. nodeJS打包安装和问题处理
  6. thinkphp5实现评论回复功能
  7. 当前时间的七天前和七天后
  8. 今日早报 每天一分钟知晓天下事 3-13
  9. html5 窗口 最小化,HTML5 窗口最小化动画(先压扁后变窄)
  10. 软件系统的多维性能模型