【AAAI2020】强化学习玩王者荣耀

简介: 【AAAI2020】强化学习玩王者荣耀

论文题目: Mastering Complex Controlin MOBA Games  with DeepReinforcement Learning

c0f2c1ef96364e2e468d7f3f547d437c.png

主要贡献


提出了一个深度强化学习框架,从系统和算法的角度来解决这个问题。提出的算法包括几种新颖的策略,包括control dependency decoupling,action mask,target action和dual-clip PPO,借助这些策略,可以在系统中有效地训练提出的actor-critic网络。经过MOBA游戏《王者荣耀》的测试,训练有素的AI agent可以在完整的1v1游戏中击败顶尖的职业人类玩家。

系统架构


考虑到复杂的Agent控制问题可能会引入随机梯度的高方差问题,在王者荣耀1V1中,大的batch size可以加速训练,所以文章所采用的强化学习架构由四部分构成:

7cd6463358d1b5129889d2b97c300bb1.png

  • RL Learner:是一个分布式训练环境,并行从pool采样得到梯度,同步全部梯度取均值,更新策略后将策略传给AI Server。
  • AI Server:涵盖了游戏环境和AI之间的交互逻辑,用来产生数据。即从游戏中收集state,预测英雄行为。在使用中,一台AI服务器绑定一个cpu内核。我们构建了快速推断库FeatherCNN,以来更有效的生成推断模型。开源地址:https://github.com/Tencent/FeatherCNN
  • Dispatch Module:从多个AI server搜集数据并压缩、打包奥、传送到Memory
  • Memory Pool:也是服务器。它的内部实现为内存高效的循环队列,用于数据存储。它支持各种长度的样本以及基于生成时间的数据样本

算法设计


Reinforcement Learning用的还是熟悉的actor-critic网络,具体如下图所示:

3bb33f4217245a552f114b42f04fe42f.png

  • 状态设计:如上图;将图像特征fi,向量特征fu和游戏状态信息fg(可观察到的游戏状态)分别通过卷积层、最大池化层和全连接层编码。LSTM输出动作按钮和移动方向。
  • 动作解耦:认为动作之间独立,目标为最终几个策略累积奖励之和;
  • 初始随机动作产生数据;
  • action mask:根据专家经验去掉明显不合理、受限制的动作;
  • dual-PPO:原始PPO在Advantage小于0的时候也容易产生大的策略梯度,作者改进了PPO,使其支持大范围的数据训练。

dual-PPO公式:

65c302685ac5e51b8ad41297e2286bb8.png

01c5ab46c79969dcc222da02eeb3df0b.png

实验部分


实验运用了大量的CPU和GPU资源。框架运行在封装在Dockers和1,064个Nvidia GPU(Tesla P40和V100的混合物)中的总共600,000个CPU内核上。我们框架的数量允许并行实验。数据用float16存储,训练时转成float32。minibatch为4096。每个epoisode从游戏开始到结束。每天的数据量相当于人类玩500年的数据。PPO的eps=0.2,c=3,折扣因子是0.997,half-life大概46秒。GAE的lambda=0.97。游戏时按顶级玩家的133ms反应时间进行预测。训练时间跟Elo的曲线如下:

7e2f8e1279d6fd07f6821171c43076eb.png

由上图可知训练6小时打败内置行为树,30小时达到top 1%人类水平,70小时达到专业水平。

我们训练的AI强化学习跟人类顶级玩家进行1v1的竞赛


e3e590a045f71bf5ad337840ee90cbdd.png

fccdbf7f1be3462f3bcd80841a23d7f1.png

4473165c3186e57f7de21b27c84ecfee.png

Reward设计


ac297b1363d321443d19dd3153213bfd.png


相关文章
|
12月前
|
Web App开发 JSON JavaScript
爬取王者荣耀图片
【10月更文挑战第11天】爬取王者荣耀图片。
527 2
|
存储 数据采集 JSON
英雄联盟手游能“干掉”王者荣耀?微博4.3亿网友吵翻了……
英雄联盟手游能“干掉”王者荣耀?微博4.3亿网友吵翻了……
336 3
英雄联盟手游能“干掉”王者荣耀?微博4.3亿网友吵翻了……
|
存储 安全 Cloud Native
阿里云支持米哈游新游《绝区零》全球开服!
阿里云支持米哈游新游《绝区零》全球开服!
1353 3
技术经验分享:HLG1314火影忍者之~纲手
技术经验分享:HLG1314火影忍者之~纲手
605 0
|
数据采集 数据可视化 Python
用Python爬取《王者荣耀》英雄皮肤数据并可视化分析,用图说话
带大家分析一波当前热门手游《王者荣耀》英雄皮肤,比如**皮肤上线时间**、**皮肤类型**(勇者;史诗;传说等)、**价格**。
1062 0
用Python爬取《王者荣耀》英雄皮肤数据并可视化分析,用图说话
|
安全 网络安全 区块链
小学生的噩梦《王者荣耀》游戏辅助工具病毒爆发
多数勒索软件都会伪装成神器、外挂、辅助及各种刷钻、刷赞、刷枪、刷人气、刷游戏里头稀有装备的软件,诱导小学生下载,实际上没有任何功能,现在的很多下载网站也是一样,下载到的东西完全牛头不对马嘴。
277 0
|
Android开发
王者荣耀安卓区修改荣耀战区方法 | 最低战力查询(附带视频与安装包)
王者荣耀安卓区修改荣耀战区方法 | 最低战力查询(附带视频与安装包)
1071 0
|
前端开发
仿王者荣耀网页-前端网页技术设计完整精美源码HTML+CSS+JS
仿王者荣耀网页-前端网页技术设计完整精美源码HTML+CSS+JS
仿王者荣耀网页-前端网页技术设计完整精美源码HTML+CSS+JS
|
设计模式 算法 数据库
零代码以“王者荣耀”为例解析设计七原则,助你面试拿“五杀”
面试设计原则还在死记硬背?一文助你深入理解设计模式七大原则。
15384 0
零代码以“王者荣耀”为例解析设计七原则,助你面试拿“五杀”
|
存储 Web App开发 缓存
PWA 实践/应用(Google Workbox)
PWA(Progressive Web App – 渐进式网页应用)是一种理念,由 Google Chrome 在 2015 年提出。PWA 它不是特指某一项技术,而是应用多项技术来改善用户体验的 Web App,其核心技术包括 Web App Manifest、Service Worker、Web Push 等,用户体验才是 PWA 的核心。
3505 1
PWA 实践/应用(Google Workbox)