Dota 2被攻陷!OpenAI 人工智能5V5模式击败人类玩家(4000分水平)

640?wx_fmt=jpeg

来源:机器之心

摘要:我们团队构建的模型,OpenAI Five,已经击败业余 Dota2 团队了。虽然如今是在有限制的情况下,但我们计划到 8 月份在有限英雄池下击败 TI 赛中的一支顶级专业队伍。


我们团队构建的模型,OpenAI Five,已经击败业余 Dota2 团队了。虽然如今是在有限制的情况下,但我们计划到 8 月份在有限英雄池下击败 TI 赛中的一支顶级专业队伍。我们可能不会成功,因为 Dota2 是当前最流行也最复杂的电子竞技游戏之一,一批有激情与创造力的玩家经年训练,想要瓜分 4000 万美金的奖金池。


通过自我对抗学习,OpenAI Five 每天相当于玩 180 年的游戏。训练上,它使用 256 块 GPU、12 万 8000 个 CPU 核心使用近端策略优化(Proximal Policy Optimization)方法进行训练,这是在我们去年建立的 solo Dota2 系统上的扩增。当我们为每个英雄使用单独的一个 LSTM,模型就可以在没有人类数据的情况下学到可识别的策略。这表明强化学习即使没有根本性的进步,也能够产生大规模但也可接受的长期规划。这出乎了我们刚开始时的预料。


640?wx_fmt=jpeg


问 题


人工智能的一个里程碑就是在星际争霸或者 Dota 这类复杂的电子游戏中超越人类的水平。相比于上一个里程碑,即国际象棋与围棋,复杂电子游戏开始反映真实世界的混乱与连续的本质。因此我们希望,能够解决复杂电子游戏的系统可以成为通用的、在游戏之外有广阔应用场景的系统。


Dota2 是一个实时的 5 v 5 策略游戏,每个玩家控制一个英雄。而玩 Dota 的 AI 需要掌握以下技能:


1.长线策略。Dota 游戏平均每秒 30 帧,一场时常 45 分钟,大概 8 万 tick。大部分操作(例如操纵英雄移动)都有单独的小影响,但一些个体行为可能会影响到游戏战略,例如 TP 回家。此外,还有一些策略可能会终结整场游戏。OpenAI Five 每 4 帧观察一次,产生了 2 万个决策。相比之下,国际象棋一般在 40 步之前就结束了,围棋大概 150 步,但这些游戏每一步都很有策略性。  


2.局部可观测状态。己方单位和建筑的视野都有限。地图的其他部分是没有视野的,可能藏有敌人和敌方策略。高玩通常需要基于不完整数据做推理,以及建模敌方意图。而国际象棋和围棋都是完全信息博弈。


3.高维、持续的行为空间。在 Dota 中,每个英雄能采取数十种行为,而且许多行为要么面向敌方单位,要么点地移动位置。我们把这个空间离散到每个英雄 17 万种可能的操作(不是每 tick 都有效,例如在技能冷却时放技能就是无效操作);不计算连续部分,每 tick 平均 1000 个可能有效行为。国际象棋的行为数量大概是 35,围棋 250。


4.高维、连续的观察空间。Dota 是在一张包含 10 个英雄、20 几个塔、数十个 NPC 单位的地图上操作的游戏,此外还有神符、树、眼卫等。通过 Valve(Dota 2 的运营公司)的 Bot API,我们的模型把 Dota 游戏视为 2 万个状态,也就代表人类在游戏中可获取到的所有信息。国际象棋代表大概 70 个枚举值(8x8 的棋盘,6 类棋子和较小的历史信息)。围棋大概有 400 个枚举值(19x19 的棋盘,黑白 2 子,加上 Ko)。


Dota 规则也非常复杂,这类游戏开发了十几年,成百上千的代码行实现游戏逻辑。而且游戏每两周更新一次,环境语义一直在变。


方  法


我们的系统使用一个高度扩展版本的近端策略优化(Proximal Policy Optimization)算法进行学习。OpenAI Five 和之前的 1v1 机器人都是通过自我对抗进行学习的。他们从随机参数开始,并不从人类玩家的方法中进行搜索或者自举。


640?wx_fmt=png


强化学习研究人员(包括我们自己)过去普遍认为,进行长时间范围的学习需要根本性的算法突破,例如层级强化学习(hierarchical reinforcement learning)。而我们的结果显示,我们并没有充分信任现有的模型——至少当他们以足够的规模和合理的探索方式运行的时候。


我们的智能体被训练以最大化未来奖励的指数衰减和,其中指数衰减因子被称为 γ。在 OpenAIFive 最新一轮的训练中,我们将 γ 从 0.998(以 46 秒为半衰期)调整到了 0.997(以 5 分钟为半衰期)。相比之下,OpenAI 的近端策略优化(PPO)论文中最长的时间跨度为半衰期 0.5 秒,DeepMind 的 Rainbow 论文中最长的时间跨度为半衰期 4.4 秒,Google Brain 的 Observe and Look Further 论文中则使用了 46 秒的半衰期。


虽然当前 OpenAI Five 的补兵能力略差(看我们的测试赛,专业 Dota 解说员 Blitz 估计它的补兵能力只有职业玩家的中值水平),但它在选择优先攻击目标上能达到专业水平。获取长期奖励(例如插眼控图)通常需要牺牲短期奖励(例如发育后的金钱),因为团推时要也要耗费时间。这一观察加强了我们的信念:系统会随长时间而有优化。


模 型 架 构


每个 Open AI Five 网络包含一个单层、1024 个单元的 LSTM 网络,它能观察当前的游戏状态(从 Valve 的 Bot API 中抽取)并通过一些可能的行动 Head 发出下一步采取的行动。每一个 Head 都包含语义信息,例如延迟该行动的时间值、选择哪一个行动和其 X 与 Y 的坐标轴。


OpenAI Five 使用了观察空间和行动空间的交互性演示。它将世界表征为一个由 2 万个数值组成的列表,并通过发出一个包含 8 个枚举值的列表而采取行动。我们可以在 OpenAI 网站上选择不同的行动和目标以理解 OpenAI Five 是如何编码每一个行动,以及如何观察世界的。下图展示了人们可能会观察到的场景:


640?wx_fmt=png


Necrophos


OpenAI Five 可以对其丢失的状态片段作出反应,这些状态片段可能与它所看到的相关。例如,直到最近 OpenAI Five 的观察还没有包含弹片落下的区域,而人类可以在屏幕上轻松观察到这些落弹区域。然而,我们观察到 OpenAI Five 可以学习走出活跃的落弹区域,因为在这样的区域中智能体会发现它们的生命值在下降。


探 索


尽管构建的学习算法能处理较长的视野,但我们仍然需要探索环境。即使我们已经限制了复杂度,但游戏仍然有数百种物品、几十种建筑、法术、单位类型以及需要长时间慢慢学习的游戏机制,这些变量将组合成极其巨量的情况。因此,有效地探索这一巨大的组合空间是非常困难的。


OpenAI Five 通过自我对抗(self-play)从随机权重开始学习,这为探索环境提供了一个自然的 curriculum。为了避免「策略崩坏」,智能体在 80% 的游戏中通过自我对抗进行训练,而在 20% 的游戏中与过去的智能体进行对战。


在第一场游戏中,英雄漫无目的地在地图上探索,而在几个小时的训练后,出现了规划、发育或中期战斗等概念。几天后,智能体能一致地采用基本的人类策略:试图从对手偷财富、推塔发育、在地图旋转控制英雄以获得线路优势。通过进一步的训练,它们变得精通 5 个英雄一起推塔这样的高级策略了。


在 2017 年,我们第一个智能体击败了机器人,但仍然不能战胜人类。为了强制在策略空间中进行探索,我们有且仅在训练期间对这些单位的属性(生命、速度和初始等级等)进行了随机化,然后它开始与人类对战。随后,当一名测试玩家不停地击败我们的 1V1 机器人时,我们增加了训练的随机性,然后测试玩家就开始输掉比赛了。此外,我们的机器人团队同时将类似的随机技术应用到物理机器人中,以便从模仿学习迁移知识到现实世界中。


OpenAI Five 使用我们为 1V1 机器人编写的随机化,它还使用一个新的「lane assignment」。在每次训练游戏开始时,我们随机「分配」每一个英雄到线路的一些子集,并在智能体发生偏离时对其进行惩罚,直到游戏中的随机选择时间才结束惩罚。


这样的探索得到了很好的奖励。我们的奖励主要由衡量人类如何在游戏中做决策的指标组成:净价值、杀敌数、死亡数、助攻数、最后人头等。我们通过减去每一个团队的平均奖励以后处理每一个智能体的奖励,因此这能防止智能体找到正项和(positive-sum)的情况。


合  作


OpenAI Five 没有在各个英雄的神经网络之间搭建显式的沟通渠道。团队合作由一个我们称之为「团队精神」的超参数控制。团队精神的取值范围为从 0 到 1,代表了 OpenAI Five 的每个英雄在多大程度上关注自己的个人奖励函数以及在多大程度上关注团队平均奖励函数。在训练中,我们将其值从 0 逐渐调整到 1。


Rapid


640?wx_fmt=png


我们的系统是用通用的强化学习训练系统 Rapid 来实现的。Rapid 可以被应用到任何一个 Gym 环境。在 OpenAI,我们也用 Rapid 来解决其他问题,包括竞争性自我对抗训练(Competitive Self-Play)。



640?wx_fmt=png

训练系统示意图


我们已经在 IBM Kubernetes,微软 Azure,谷歌 GCP 后端上实现了 Rapid。


游  戏


到目前为止,我们与这些队伍进行了对战:


1、最强的 OpenAI 职员团队: 匹配分 2500 


2、观看 OpenAI 职员比赛的观众玩家 (包括 Blitz 等):匹配分 4000-6000,他们此前从没有组队参赛过。


3、Valve 公司团队: 匹配分 2500-4000 


4、业余团队: 天梯 4200, 作为一支队伍来进行训练


5、半职业团队: 天梯 5500, 作为一支队伍来进行训练。


在与前面三支队伍的比赛中,OpenAI 取得了胜利,输给了后面的两只队伍(只赢了开场前三局)。


我们观察到 OpenAI Five 具有以下几个特点:


经常来牺牲自己的优势路(夜魇军团的上路,天辉军团的下路),以压制敌人的优势路,迫使战斗转移到对手更难防御的一边。该策略在过去几年的专业领域出现过,现在已经成为了流行战术。Blitz 说他在打 DOTA 8 年后才学到了这个战术,当时是 Liquid(一支职业队伍)告诉了他。


比赛初期到中期的转换比对手更快。它是这样做到的:1)在人类玩家走位出问题时,进行多次成功 gank,2)在对方组织起反抗前,去组队推塔。


在一些领域机器有时也会偏离主流打法,例如在前期将钱和经验让给辅助英雄(这些英雄一般不优先获取资源)。OpenAI Five 的优先级使它获得的伤害更快达到顶峰,从而建立起更大的优势,赢得团战以及利用对方的错误来确保快速取胜。


640?wx_fmt=jpeg


和人类的差异


OpenAI Five 获得的信息和人类是一样的,但前者可以实时看到位置、生命值和装备清单等,而这些信息都需要人类选手去手动查看。我们的方法从根本上就没有依赖于(实时)观察状态,但从游戏中渲染像素就需要成千上万块 GPU。


OpenAI Five 平均每分钟可进行 150-170 次操作(APM=150-170,因为每四帧观察一次,所以理论峰值为 450)。熟练的玩家有可能掌握完美捕捉画面的时机,但这对机器来说轻而易举。OpenAI Five 的平均反应时间为 80 毫秒,比人类更快。


这些差异在 1V1 中影响最大(当时我们机器人的反应时间为 67 毫秒),但竞技是相对公平的,因为我们已经看到人类在学习和适应机器人的打法。在去年 TI 之后,很多专业选手使用我们的 1V1 机器人进行了为期数月的训练。William *"Blitz"* Lee(前 DOTA2 专业选手和教练)表示,1V1 机器人已经改变了我们对单挑的传统看法(机器人采取了快节奏的打法,现在每个人都已经试着去跟着这个节奏)。


令人惊讶的发现


二元奖励可以给予良好的表现。我们的 1v1 模型具有形状奖励,包括上次命中奖励,杀戮等。我们进行了一个实验,只奖励代理的获胜或失败,并且让它在中间训练了一个数量级较慢并且稍微平稳的阶段,与我们平常看到的平滑学习曲线形成对比。该实验在 4500 个核心和 16 个 k80 GPU 上进行训练,训练至半专业级(70 TrueSkill,而非我们最好的 1v1 机器人的 90 TrueSkill)。


640?wx_fmt=png


我们可以从头开始学习卡兵。对 1v1 来说,我们使用传统的强化学习和一个卡兵奖励(a creep block award)来学习卡兵。我们的一个同事在去度假前(去和未婚妻求婚!)留下了 2v2 模型,打算看看需要多久的训练能才提高表现。令他惊讶的是,这个模型在没有任何指导或奖励的情况下学会了卡兵。


我们仍在修复系统漏洞。下图显示了击败业余玩家的训练代码,相比之下,我们只是修复了一些漏洞,比如训练期间的罕见崩溃,或者导致达到 25 级的巨大负面奖励的错误。事实证明我们可以在隐藏严重漏洞的情况下,依然击败优秀的人类玩家!


640?wx_fmt=png


Open AI Dota 的一个子团队手托去年在 Dota 2 国际邀请赛 1v1 上击败世界顶级专业玩家的笔记本电脑。


下一步计划


Open AI 的团队专注于达成八月份制定的目标。我们不知道它是否可以实现,但是我们相信通过自身的努力(和运气),机会还是很大的。


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。


未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 mitmproxy + python 做拦截代理

From:https://blog.wolfogre.com/posts/usage-of-mitmproxy https://www.cnblogs.com/H4ck3R-XiX/p/12624072.html http://www.cnblogs.com/grandlulu/p/9525417.html mitmProxy 介绍:https://blog.csdn.net/h416756139/article/details…

ZeroMQ全面介绍

★ZMQ是啥玩意儿?   通俗地说,ZMQ是一个开源的、跨语言的、非常简洁的、非常高性能、非常灵活的网络通讯库。它的官方网站在"这里",维基百科的介绍在"这里"(暂时没有中文的维基词条)。这玩意儿推…

Android IDA 动态调试最完善攻略,跨过各种坑

From:https://www.pianshen.com/article/3409449384/ IDA 静态分析 与 动态分析:https://zhuanlan.zhihu.com/p/38983223 新手向总结:IDA 动态调试 So 的一些坑:https://zhuanlan.zhihu.com/p/145383282 Android 逆向之旅 --- …

一场科技盛宴,一次“盈”满天下 安创成长营五期Demo Day完美收官

2018年6月21日,安创成长营第五期Demo Day在北京金隅喜来登拉开帷幕,16家安创成长营五期成员代表齐齐亮相,为资本圈带来了一场集科技、创新、前瞻于一体的项目展示。数百数位业内有影响力的Arm生态系统的合作伙伴、知名品牌厂商创新事业部负责…

安卓逆向_25 --- 密码学 之 《Java加密与解密的艺术》

《Java加密与解密的艺术》中文 PDF版 :https://www.jb51.net/books/65048.html 1. 密码学应用 :https://www.bilibili.com/video/BV1oA411J7Lb?p1 密码学应用 密码学的基本概念,对称密码,公钥密码,Hash算法&#xff…

深度丨一文读懂智能制造的主线——智能生产(工厂/车间数字化)

来源: 亿欧摘要: 发展智能制造对于中国制造业乃至中国经济的重要性不言而喻,先进制造业作为深耕制造业领域的专业媒体,长期关注智能制造发展,助力中国制造转型升级,努力做“中国制造2025”的推动者。近年来…

最好用的十六进制编辑器 010 Editor

最好用的十六进制编辑器010 Editor https://blog.csdn.net/qq_38482805/article/details/89309120 新版010Edit注册机&去除网络验证:https://bbs.pediy.com/thread-249724.htm 010Editor脚本语法入门:https://www.jianshu.com/p/ba60ebd8f916 宇宙…

Object to XML

摘要:本节主要介绍如何把Object对象转换为XML 引言:最近工作中因为工作需要,需要把两个系统之间的传递的报文修改一下(现在系统之间一般都是通过发送xml字符串传数据吧),最开始用的Jdom来实现的&#xff0c…

Science:发现重写创伤记忆的神经元

来源:生物谷摘要:对创伤经历的回忆会导致精神健康问题,如创伤后应激障碍(PTSD),这会破坏一个人的生活。对创伤经历的回忆会导致精神健康问题,如创伤后应激障碍(PTSD)&…

安卓逆向_23 --- Hook 框架 Cydia Substrate( Hook Java层 和 so层)

From:Android Hook 框架 Cydia_substrate 详解:https://www.cnblogs.com/lkislam/p/4859957.html 通过 cydia substrate 对 framework API进行注入:https://www.jianshu.com/p/cc49b30c5b5b Android 逆向之旅 --- Native层的Hook神器Cydia …

高校人工智能热的“冷”思考

来源:中国科学报高校在开设相关专业时,应该组织教授委员会、学术委员会,结合国家的人才政策、产业发展对人才的需求、国内外其他高校同类专业人才培养的情况,就本校开设这方面的专业有无现实条件,怎样进行师资建设、课…

转载:实用 FRIDA 进阶 --- objection :内存漫游、hook anywhere、抓包

转载:实用FRIDA进阶:内存漫游、hook anywhere、抓包:https://www.anquanke.com/post/id/197657 Frida Hook Android 常用方法:https://blog.csdn.net/zhy025907/article/details/89512096 实用FRIDA进阶:脱壳、自动化…

谷歌李飞飞:我们依旧站在人工智能研究的起点

来源:机器人大讲堂摘要:8 年来,在 ImageNet 数据集的训练下,人工智能对于图像识别的准确度整整提高了 10 倍,甚至超越了人类视觉本身。但李飞飞认为,我们对于人工智能的研究仍在起点上。说起人工智能&#…

Android Intent 用法总结

From:https://www.jianshu.com/p/67d99a82509b Android 中提供了 Intent 机制来协助应用间的交互与通讯,Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android 则根据此 Intent 的描述,负责找到对应的组件…

FRIDA - API使用篇:rpc、Process、Module、Memory 使用方法及示例

官方 API (JavaScript API):https://frida.re/docs/javascript-api/ From: ( FRIDA-API使用篇 ):https://www.anquanke.com/post/id/195215 前言 在这篇文章中来对其官方的一些非常常用的 API 进行学习。所谓工欲善其事,必先利其…

Entity Framework 实体关系总结(转)

通过 Entiy Framework实践系列文章,理了理 Entity Framework 的实体关系。 为什么要写文章来理清这些关系?“血”的教训啊,刚开始使用 Entity Framework 的时候,由于没有静下心来认真理清关系,走了一些"痛不欲生&…

技术架构分析:攻克Dota2的OpenAI-Five

来源:CreateAMind摘要:OpenAI昨日发布研究成果,宣布Dota2 5v5在限定条件下(英雄阵容固定,部分道具和功能禁用)战胜人类半职业选手。本文主要对其模型技术架构做一些分析总结。一、 模型输入与输出模型的输入…

Redis基础-Redis概念及常见命令

1.nosql数据库 NoSQL数据库是一种提供了非关系型数据存储的数据库系统,与传统的关系型数据库(如SQL数据库)不同。NoSQL数据库的特点是灵活性高,能够处理结构化、半结构化或非结构化数据。它们通常用于大数据和实时Web应用。NoSQL数…

Java 高级特性 --- 反射

From:Java 高级特性 --- 反射:https://www.jianshu.com/p/9be58ee20dee From:Java 基础之 --- 反射(非常重要):https://blog.csdn.net/sinat_38259539/article/details/71799078 From:Java 高级…

G20国家科技竞争力大盘点,中国科研创新表现突出,人工智能变道超车

来源:科睿唯安中国科学院文献情报中心和科睿唯安6月25日在北京联合发布了《G20国家科技竞争格局之辩》系列报告,报告分为总体篇及人工智能专题篇(下文有重点介绍),聚焦G20国家的科研产出规模、学术影响力、领域分布、国…