AI 组队在 Dota 2 五对五团战中首次战胜人类,协作型人工智能的里程碑式突破...

(点击上方公众号,可快速关注)

综合自:深科技、机器之心

2018 年 6 月 26 日,由马斯克和 Sam Altman 创立的著名人工智能非营利组织  OpenAI 宣布这一重大里程碑:他们开发的 AI 已经能够组队在 5V5 对战中战胜 Dota 2 顶尖业余玩家,平均天梯分数超过4200分。

虽然这次与 AI 对战的是来自 OpenAI 的员工,并非顶尖职业玩家,而且 AI 也只会使用游戏所提供的 115 位可选英雄中的5位,并且人类玩家不能使用真假眼,魔瓶等道具,但我们有理由相信这仅仅是个开始。此次开发的 AI 也将在今年秋季参加顶级 Dota 2 赛事 The International,到时候会与 5 名专业选手组成的战队一决高下。

640?wx_fmt=jpeg

图丨OpenAI 的 AI 团队击败了OpenAI的员工团队,但前方还有更大的挑战

 OpenAI 开发了一套名为“ OpenAI Five”的算法,如果独立的看这种算法,其实并没有什么特别的,就是一种学会了如何玩 Dota 2 的神经网络,而且此前也有AI算法在一对一 Dota 2 比赛中胜过人类玩家的先例。但 AI 的这次胜利却有着完全不同的意义,因为5套算法间已经学会了如何与“队友”协作。 

OpenAI 创建人工智能时使用的是机器学习的一种,强化学习。这种技术看似简单,但是能让 AI 习得非常复杂的行为。让 AI 学习的过程是,把 AI 放到虚拟环境中,并通过自我尝试学会实现目标。具体来说,程序员设定奖励机制(比方说在AI 杀掉敌人后奖励机器系统),然后让 AI 一遍遍进行游戏。

这些 Dota 机器人的自我训练量惊人,每一天机器人用相当于180年游戏的量进行训练,连续训练时间达几个月。研究人员说:“它开始时在地图上乱走,但是,几个小时后,它开始具备基本技能。如果一个人需要花1.2万到2万小时才能成为专业游戏玩家,那AI的速度要快得多,因为每天积累的游戏经验是一个人一生积累经验的100倍。”

与技术战略类游戏不同,Dota 这种 MOBA(多人联机在线竞技游戏)类游戏有着更为复杂的游戏机制,还需要队友间完美的配合才能取得最终的胜利。而这次的 5 位AI“玩家”完美的证明了人工智能也懂得相互配合。

这无疑是 AI 技术的又一里程碑,因为人们认知中的AI通常独立运行的,多AI间的相互配合,除了在游戏中击败人类,我们很容易联想到这种“协作型” AI 技术更多的商业应用场景,比如多种 AI 算法可以在在线交易或广告竞价排名中相互配合拿下订单,或者在生产线上“组队”完成多样化的制造任务。当然,合作型算法将导致AI技术与人类更“亲密无间”的协作。

640?wx_fmt=png

其实即便是科技高度发展的今天,AI 和机器人技术还是两个相对独立的领域,人类也一直在尝试将 AI 技术与机器人相结合,来颠覆现有的生产及仓储模式,这无疑会将 AI 带入全新的时代。

此前,OpenAI 已经开发出了一种算法,能在一对一的 Dota 2 比赛中战胜人类顶级玩家,基于这套算法,OpenAI 进一步开发出了能评估自身表现与队伍获胜间的微妙关系。OpenAI Five 作为相互独立的5种算法,它们之间并不存在主动交流机制,除非它们处于同一局游戏中,所以大可不必担心出现电影《终结者》中的“天网”。

 “我们从比赛中能感受到,AI算法间的协作意图似乎是一种非常自然的本能表现。” OpenAI 创始人之一的 Greg Brockman 表示。在 Dota 2 的 5V5 团队赛中,他们甚至尝试了用一位人类玩家顶替 5 位“ AI 玩家”中的一个,而这位替补上场的人类玩家的感觉是:“我能体会到AI队友对我的支援!”

640?wx_fmt=jpeg

 图丨Greg Brockman 

Dota2 是一个复杂的战略游戏,游戏中各自由五名玩家组成的队伍之间开展对战,在广袤的地图上推倒对方的防御塔和遗迹,才能获得最终的胜利。玩家们使用的英雄有各自的强项、弱项、技能和属性。在游戏里,玩家需要获得金钱,购买和升级装备,思考战略,还要和对手厮杀。

 

用 AI 程序来玩电脑游戏逐渐成为衡量 AI 能力的常用手段。围棋是著名的高难度游戏,Alphabet 的子公司 DeepMind 曾因为开发出能学习下围棋的软件而声名大噪。另一个相关的成绩则是 AI 通过与自己对战从零开始直到掌握了下围棋和国际象棋的能力。

 

虽然玩 Dota 2 所需的战略不像国际象棋和围棋那样有更多自由发挥的空间,但是要掌握这款游戏仍然相当困难。对于机器来说更是巨大的挑战,因为机器不能随时能看到对手的举动,而且这款游戏需要团队合作。

 

目前 OpenAI Five 还只能在有限条件下打 Dota 2。 OpenAI Five 不随机从115个可用英雄中选择,而是限定了5个英雄,因为每个英雄都有自己的特点。 他们的选择是:Necrophos、Sniper、Viper、Crystal Maiden、Lich。

一些决策过程是硬编码的,比如在商店买哪些物品,以及选择用游戏积累的经验值提高哪些技能。此外,游戏中一些决策棘手的操作也被禁用,比如隐形和召唤。这些技能可以让玩家拥有观察远方的功能,就像有一个远程相机,几乎是高级游戏玩家必备。

尽管如此,OpenAI Five 继承了计算机的优势,反应时间比人类短,不会错过点击,可以即时和精确地获取数据,如物品清单、英雄的健康状况以及地图上物体之间的距离。而人类玩家必须手动检查或者凭本能判断。

OpenAI Five 通过与自己的不同版本对战来学习游戏战略。随着时间推进,程序习得的战略与人类玩家所使用的战略很类似,比如通过 “打钱” 找到获取金钱的方法,以及采用游戏中特定的战略角色,并学习如何分路,Gank 和支援队友等策略。

人工智能专家表示,这一成就意义重大。匹兹堡卡内基梅隆大学的研究员 Noam Brown 说:“ Dota2 是一个极其复杂的游戏,能打败强大的业余玩家就已经很不容易了,而且, 处理 Dota2 这种大型游戏中的隐藏信息是一个很大的挑战。”

此前人工智能学习Dota2的画面

Brown 之前研究过一种玩扑克的算法,扑克是另一种非完整信息博弈游戏,玩家需要有高超的技巧。Brown 说,如果 OpenAI 五人组能够一直打败人类,那将是人工智能的一个重大成就。然而,他也指出,只要有足够的时间,人类可能就会找出人工智能团队的游戏风格弱点。

Brown 说,其他游戏也可以进一步推动人工智能。“下一个重大挑战将是涉及到交流的游戏,例如《强权外交》和《卡坦岛》,在这些游戏里,玩家需要平衡合作与竞争才能胜利。”

技术细节

我们的系统使用一个高度扩展版本的近端策略优化(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 的团队专注于达成八月份制定的目标。我们不知道它是否可以实现,但是我们相信通过自身的努力(和运气),机会还是很大的。

觉得这条资讯有帮助?请转发给更多人

关注 技术最前线 看 IT 要闻

640?wx_fmt=png

640?wx_fmt=jpeg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值