Dota2团战实力蔑视人类,解剖5只“AI英雄”
去年,OpenAI 在 DOTA 的 1v1 比赛中战胜了职业玩家 Dendi,而在距离进阶版 OpenAI Five 系统战胜人类业余玩家不过一个月的时间,今天凌晨,它又以 2:1 的战绩再次完成对人类高级玩家的“屠杀”,GG(人类赢的最后一局纯属耍赖)。
相比之下,人类这次输给的是怎样的进阶版“AI 英雄”?
此次,OpenAI Five 对阵 5 个高级玩家(解说员+前职业玩家)——Blitz, Cap, Fogged, Merlini 和 Moonmeander,他们的平均天梯分 7000 左右。反观 OpenAI Five,根据公开资料,它的实力相当于人类玩了 180 年的游戏,而且每天都与自己进行对抗学习,学习过程非常复杂,需要在 256 个 GPU 和 128,000 个 CPU 上运行扩展版本的近端策略优化(PPO)进行训练。
它对每个英雄使用了单独的 LSTM(长短期记忆递归神经网络),并且没有人类数据,它会学习可识别的策略,这表明强化学习可以产生可实现规模的长期规划。
此外,就应用环境而言,不同于棋牌游戏的固定规则,像 DOTA2 这样的复杂视频游戏是 5v5 对决的战略游戏,况且,DOTA 游戏已经不断开发了十几年,游戏逻辑中有数十万行代码,且每两周更新一次,游戏语义在不断产生变化。
因此,AI 玩 DOTA 的难度可想而知,它首先需要解决以下四大问题:长时视野;局部观察状态;高维、连续的动作空间;高维、连续的观察空间。
▌模型架构
OpenAI Five 的每个网络都包含一个单层的、1024-unit 的 LSTM,它可以查看当前的游戏状态(从 Valve 的 Bot API 中抓取),并通过几个可能的 action heads 发出动作。每个 head 都具有语义含义,例如延迟动作的刻度数,选择哪一个动作,该动作在单元周围网格中的 X 或 Y 坐标等。Action heads 是独立计算的。
OpenAI Five 使用观察空间(observation space)和动作空间(action space)进行交互式演示。OpenAI Five 将世界视为 20000 个数字的列表,并通过发出一个包含 8 个枚举值(enumeration values)的列表来执行操作。通过选择不同的行动和目标,我们可以了解 OpenAI Five 如何编码每个动作,以及如何观察世界。下图是人类会看到的场景。
OpenAI Five 可以对与它所看到的相关的丢失状态片段做出反应。例如,直到最近,OpenAI Five 的观察区域才包括狙击手的技能范围(子弹落在敌人身上的区域)。然而,我们观察到 OpenAI Five 可以学习走出(虽然不能避免进入)狙击手的技能范围,因为当进入这个区域时,它可以看到自己的血量是在减少的。
▌探索
就算有学习算法能够处理较长的视野,我们仍然需要对环境进行探索。因为即使我们设定了各种限制,仍然有数百种道具、几十种建筑、法术、单元类型、长尾游戏机制,以及因此产生的各种组合,想要有效地探索这个巨大的空间其实并不容易。
OpenAI Five 可以从随机权重开始,从自我博弈中学习。 为了避免“策略崩溃”,智能体在训练的时候,80% 的游戏都是自我对抗, 另外 20% 则是与过去的自己进行对抗。在自我对抗时,英雄首先会漫无目的绕着地图游走。经过几个小时的训练后,智能体开始有了一些概念,例如建造、中路对线等。几天之后,他们始终采用基本的人类策略:试图从对手那里偷走 Bountyrunes等。 通过进一步的训练,它们可以熟练掌握 5 个英雄集中推塔的高级策略。
OpenAI Five 使用了 1v1 机器人里的随机化的方法 。它还使用了一个新的路线分配(lane assignment)策略。 在每个训练游戏开始时,他们随机地将每个英雄“分配”到一些 lane 的子集,在到随机选择的时间之前,如果英雄偏离这些路线,就会受到惩罚。
当然,也有奖励来帮助智能体探索环境,主要包括净值(net worth)、杀敌数(kills)、死亡数(deaths)、助攻(assists)、最后一击(last hits) 等指标。他们通过减少其他团队的平均奖励,来对每个智能体的奖励进行后续处理,以防止智能体找到正和博弈(positive-sum)的情况。
他们也对道具和技能构建进行了硬编码,同时,也通过脚本基线( scripted baseline)引入了信使管理( Courier management)。
▌Rapid
这个系统的实现使用了被称为“Rapid”的通用 RL 训练系统,它适用于任何多人模式环境。
训练系统分为 rollout workers,运行游戏副本,智能体(agent),用来收集经验,优化器节点(optimizer nodes)执行跨 GPU 组的同步梯度下降。每次训练还包括分别对训练机器人以及样本机器人进行评估的组件,以及监视软件,比如 TensorBoard,Sentry 以及 Grafana。
在同步梯度下降运算过程中,每一个 GPU 组件都会运算自己负责的批处理部分的梯度计算,随后整体梯度再进行平均计算。他们原本使用消息传递借口的规约算法进行平均计算,现在则使用英伟达的多卡通型框架 NCCL2 的封装函数来实行 GPU 并行计算以及网络间数据传输。同步 58MB 大小数据(用于 OpenAI Five 的参数)的延迟显示在表格之中,延迟时间足够低能满足大部分数据被进行并行运算的 GPU 标记。
▌与人类的不同
OpenAI Five 获取的信息和人类完全一致,但是系统能马上反应到类似位置、生命值以及物品更新情况等等人类玩家需要定时观察的信息。OpenAI Five 的平均 APM 在 150-170 之间(理论上最快可以达到 450 考虑到每四帧一动),平均反应时间为 80 毫秒,比人类平均速度要快很多。
很多职业选手在去年 TI 结束后都使用 bot 进行训练。根据 Blitz 的说法 solo bot已经改变了人们对 solo 赛节奏的看法,bot 偏向于快节奏风格,现在大多数选手也已经使用快节奏风格来和 bot 抗衡。
AI 在 Dota2 中的节奏和执行力非常强了,这是不是意味着它没有优化空间了?当然不是, 此次的 OpenAI Five 还是有诸多限制,比如系统在进行最后一击时较弱,其客观优先级与一个共同的专业策略相匹配,获得战略地图控制等长期奖励往往需要牺牲短期奖励。
Open AI 方面称,在今年后续的 TI 表演赛上,还会有职业玩家继续挑战 AI,但结果想来也是实力“嘲讽”人类。或许,更让人期待的是,在 Dota2 这样的复杂游戏中,是否会出现“AI vs AI”的神仙打架比赛?
▌推荐
原文https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/81454459
Dota2团战实力蔑视人类,解剖5只“AI英雄”的更多相关文章
- 面对最菜TI战队,OpenAI在Dota2上输的毫无还手之力
作者:Tony Peng 去年,OpenAI 的 1v1 AI 击败了世界顶尖选手 Dendi,OpenAI CTO Greg Brockman 承诺:明年,我们会带着 5v5 的 AI bot 重回 ...
- 读书笔记《疯狂人类进化史》,第五章,关于xing ai这件事
像人类这样沉迷于交配的却少之又少--传宗接代并不需要无休止的xing ai,这种小事只要在发情期做几次就可以了.在其他动物眼里,人类简直"淫荡至极",他们在床上花费大量时间 ...
- 基于SpringBoot+SSM实现的Dota2资料库智能管理平台
Dota2资料库智能管理平台的设计与实现 摘 要 当今社会,游戏产业蓬勃发展,如PC端的绝地求生.坦克世界.英雄联盟,再到移动端的王者荣耀.荒野行动的火爆.都离不开科学的游戏管理系统,游戏管理系 ...
- 基于深度学习方法的dota2游戏数据分析与胜率预测(python3.6+keras框架实现)
很久以前就有想过使用深度学习模型来对dota2的对局数据进行建模分析,以便在英雄选择,出装方面有所指导,帮助自己提升天梯等级,但苦于找不到数据源,该计划搁置了很长时间.直到前些日子,看到社区有老哥提到 ...
- 游戏编程算法与技巧 Game Programming Algorithms and Techniques (Sanjay Madhav 著)
http://gamealgorithms.net 第1章 游戏编程概述 (已看) 第2章 2D图形 (已看) 第3章 游戏中的线性代数 (已看) 第4章 3D图形 (已看) 第5章 游戏输入 (已看 ...
- 十大最佳Leap Motion体感控制器应用
十大最佳Leap Motion体感控制器应用 Leap Motion Controller也许还没有准备好大规模的发售,但是毫无疑问,这款小巧的动作捕捉器是我们见过的最酷的设备之一.这款设备的硬件 ...
- 维格表2月更新:智能图表上线,唤醒全量工作数据堪比AI
你是否曾经想过,你的维格表数据有朝一日变化出如科幻电影般的数据图表? 你是否感到厌倦,对当前的后台系统密密麻麻的数据累觉不爱? 你是否一直期待,拥有一个专属大数据 BI 看板,让你的规划如有神助,挥斥 ...
- cg tut
Gesture Drawing with Alex Woo Gesture Drawing with Alex Woo and Louis Gonzales http://eisneim.com/?p ...
- 看德日进,凯文·凯利与Kurzweil老师?
生命从哪里来.要到那里去.生命存在的意义是什么.这些差点儿是人类可以探究的最深层次问题.基督教给出的答案是毁灭和审判.佛学给出的答案是无常,科学的达尔文进化论给出了生命的起点和进化的过程,对于未来.达 ...
随机推荐
- cache and database
This article referenced from http://coolshell.cn/articles/17416.html We all know that high concurren ...
- symfony 参考
多语言存数据库 http://blog.elendev.com/development/php/symfony/use-a-database-as-translation-provider-in-sy ...
- 微信小程序 wafer2框架摘要
微信小程序 wafer2框架摘要 帮助文档:https://github.com/tencentyun/wafer2-startup/wiki 使用了knex.js进行数据库交互,使用了koa.js进 ...
- ym——Android怎样支持多种屏幕
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 原文链接:http://developer.android.com/guide/pra ...
- Linux系统下ssh登陆很慢的解决办法
很多的Linux用户发现连接上Linux服务器在输入用户名之后还要再等一下才能输入密码,时间过长了,现在小白与大家分享一下如何解决ssh登陆问题的问题,希望对您有所帮助. 1.我们平时登陆Linux服 ...
- 蓝桥杯 地宫寻宝 带缓存的DFS
历届试题 地宫取宝 时间限制:1.0s 内存限制:256.0MB 问题描写叙述 X 国王有一个地宫宝库. 是 n x m 个格子的矩阵. 每一个格子放一件宝贝. 每一个宝贝贴着价 ...
- 记录一次node中台转发表单上传文件到后台过程
首发掘金 记录一次node中台转发表单上传文件到后台过程 本篇跟掘金为同一个作者leung 公司几个项目都是三层架构模式即前台,中台(中间层),后台.前台微信端公众号使用vue框架,后台管理前端使 ...
- nginx-Proxy Cache缓存
1.创建目录 mkdir /export/Data/nginx_proxy_cache mkdir /export/Data/nginx_proxy_temp 2.修改http,打开缓存 文件 ...
- go5--数组
package main /* 数组Array 定义数组的格式:var <varName> [n]<type>,n>=0 数组长度也是类型的一部分,因此具有不同长度的数组 ...
- YTU 2629: E1 一种颜色,三个分量
2629: E1 一种颜色,三个分量 时间限制: 1 Sec 内存限制: 128 MB 提交: 300 解决: 226 题目描述 在计算机中,常用三种基色红(R).绿(G).蓝(B)的混合来表示颜 ...