AI 又赢了! OpenAI 玩Dota 2在5v5比赛中击败人类玩家

本文转自机器之心,转载需授权

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

2017 年,OpenAI 在 Dota2 TI 决赛现场以 1 对 1 solo 的方式击败了「Dota 2」世界顶级玩家。经过一年的发展,OpenAI 于昨日宣布他们的 AI bot 在 5 v 5 团队赛中击败业余人类玩家,并计划之后能够击败顶级专业团队。机器之心对OpenAI的博客内容进行了编译介绍。

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

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

问题

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

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

  • 长线策略。Dota 游戏平均每秒 30 帧,一场时常 45 分钟,大概 8 万 tick。大部分操作(例如操纵英雄移动)都有单独的小影响,但一些个体行为可能会影响到游戏战略,例如 TP 回家。此外,还有一些策略可能会终结整场游戏。OpenAI Five 每 4 帧观察一次,产生了 2 万个决策。相比之下,国际象棋一般在 40 步之前就结束了,围棋大概 150 步,但这些游戏每一步都很有策略性。
  • 局部可观测状态。己方单位和建筑的视野都有限。地图的其他部分是没有视野的,可能藏有敌人和敌方策略。高玩通常需要基于不完整数据做推理,以及建模敌方意图。而国际象棋和围棋都是完全信息博弈。
  • 高维、持续的行为空间。在 Dota 中,每个英雄能采取数十种行为,而且许多行为要么面向敌方单位,要么点地移动位置。我们把这个空间离散到每个英雄 17 万种可能的操作(不是每 tick 都有效,例如在技能冷却时放技能就是无效操作);不计算连续部分,每 tick 平均 1000 个可能有效行为。国际象棋的行为数量大概是 35,围棋 250。
  • 高维、连续的观察空间。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 机器人都是通过自我对抗进行学习的。他们从随机参数开始,并不从人类玩家的方法中进行搜索或者自举。

强化学习研究人员(包括我们自己)过去普遍认为,进行长时间范围的学习需要根本性的算法突破,例如层级强化学习(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 是如何编码每一个行动,以及如何观察世界的。下图展示了人们可能会观察到的场景:

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

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

训练系统示意图

我们已经在 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 的优先级使它获得的伤害更快达到顶峰,从而建立起更大的优势,赢得团战以及利用对方的错误来确保快速取胜。

和人类的差异

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)。

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

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

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

下一步计划

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

原文地址:https://blog.openai.com/openai-five/

原文发布于微信公众号 - CDA数据分析师(cdacdacda)

原文发表时间:2018-06-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

黑人小哥四个月速成全栈机器学习全程解密

程序员转型AI、机器学习需要学多久?1年?3年?这是绝大多数考虑转型的人,从一开始就要认真思考的问题。光说不练在这里没用,咱们还是要看真实的故事,来看看黑人小哥...

1.8K10
来自专栏机器之心

专访 | 三角兽首席科学家王宝勋:热度之下的对话生成

机器之心原创 作者:邱陆陆 从 EMNLP 入选论文《Neural Response Generation via GAN with an Approxima...

423110
来自专栏新智元

【重磅】吴恩达率百度大脑完胜“最强大脑”王峰,AI技术解密

【新智元导读】人工智能又一次战胜了人类!这次是在《最强大脑》。吴恩达率队的百度人工智能在人脸识别跨年龄识别任务中以 3:2 的比分惊险击败《最强大脑》名人堂轮值...

39560
来自专栏灯塔大数据

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

2017 年,OpenAI 在 Dota2 TI 决赛现场以 1 对 1 solo 的方式击败了「Dota 2」世界顶级玩家。经过一年的发展,OpenAI 于昨...

11320
来自专栏AI研习社

如何看待「机器学习不需要数学,很多算法封装好了,调个包就行」这种说法?

不抖机灵,想从接触过机器学习学术圈但已投身工业界的角度来回答。 我认为:大部分机器学习从业者不需要过度的把时间精力放在数学上,而该用于熟悉不同算法的应用场景和掌...

386100
来自专栏新智元

AI 派系争斗如火如荼:概率编程技术能彻底取代神经网络吗?

【新智元导读】Gamalon的CEO和创始人Ben Vigoda近日放出豪言,说他和他的团队所采用的概率编程的技术, 终将在所有的应用中彻底取代神经网络——这有...

41890
来自专栏AI科技大本营的专栏

四个月速成全栈机器学习?这位黑人小哥三个半月就开始找工作了

程序员转型AI、机器学习需要学多久?1年?3年?这是绝大多数考虑转型的人,从一开始就要认真思考的问题。 光说不练在这里没用,咱们还是要看真实的故事,来看看黑...

38180
来自专栏智能计算时代

神经网络计算爆炸

深度挖掘的公司开始为特定应用定制这种方法,并花费大量资金来获得初创公司。 具有先进并行处理的神经网络已经开始扎根于预测地震和飓风到解析MRI图像数据的许多市场,...

34050
来自专栏数据派THU

谷歌大脑2017技术研究总结 | Jeff Dean执笔(附论文、 数据集)

本文经AI新媒体量子位(公众号ID:qbitai)授权转载,转载请联系出处 本文长度为8311字,建议阅读10分钟 Jeff Dean回顾了谷歌大脑团队过去一年...

45250
来自专栏Python攻城狮

DIKW模型与数据工程1.DIKW 体系2.数据工程领域中的DIKW体系3.数据工程 领域职业划分4.数据分析5.数据建模基础

DIKW体系是关于数据、信息、知识及智慧的体系,可以追溯至托马斯·斯特尔那斯·艾略特所写的诗--《岩石》。在首段,他写道:“我们在哪里丢失了知识中的智慧?又在哪...

20730

扫码关注云+社区

领取腾讯云代金券