首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dota2冠军OG如何被AI碾压?OpenAI累积三年的完整论文终于放出

Dota2冠军OG如何被AI碾压?OpenAI累积三年的完整论文终于放出

作者头像
量子位
发布2019-12-19 16:21:40
7570
发布2019-12-19 16:21:40
举报
文章被收录于专栏:量子位量子位

Team OG,Dota2世界冠军战队。

在人工智能OpenAI Five面前,OG不堪一击。五个人类组成的战队,此前全程毫无悬念地以0:2败下阵来,两局加在一起,OG只推掉了两座外塔。

不过,这还不是AI的巅峰。

现在OpenAI又训练出了一个全新的AI,名叫Rerun。面对碾压OG的OpenAI Five,Rerun的胜率达到了……呃……98%。

听到这个消息,一位推特网友发图明志。

主要依靠自学,就能在Dota2这么复杂的游戏中称雄,人工智能是怎么做到的?今天,有关于此的答案揭晓。

没错,OpenAI不单发布了Rerun,还把自己三年多来对于Dota2项目的研究,通过一篇论文,正式公布出来。

在这篇论文中,OpenAI解释了整套系统的原理、架构、计算量、参数等等诸多方面的内容。OpenAI指出通过增加batch size和总训练时间等方法,扩展了计算规模,进而表明当今的强化学习技术可以在复杂的电子竞技游戏中,达到超越人类的水平。

这些研究,可以进一步应用于各种两个对手持续的零和博弈中。

(可能是阅读之后)OG战队发推:“Wow!这篇论文看起来太棒了!”

此情此景,有网友无深情的感叹道:Wow!OG战队夸了一篇论文好看?真是活久见……

这篇论文到底说了什么?

我们总结了几个要点。

要点一:Dota2比下围棋更复杂

与棋类对弈相比,电子竞技游戏要更复杂。

攻克这一难题的关键是,把现有的强化学习系统规模,扩展到前所未有的水平,这耗费了数千块GPU和好几个月的时间。OpenAI为此构建了一个分布式的训练系统。

训练中的一个挑战是,环境和代码会不断变化。为了在每次更改后无需从头开始,OpenAI开发了一套工具,可以在不损失性能的情况下恢复训练,这套工具称为:surgery。

每局Dota2比赛时长大约45分钟,每秒钟会生成30帧的游戏画面。OpenAI Five每4帧做出一个动作。国际象棋一局下约80步,围棋下一局约150步,作为对比,Dota2打一局,AI需要“下”大概20000步。

而且由于战争迷雾的存在,Dota2中对战的双方,只能看到全盘游戏中的局部情况,其他部分的信息都是隐藏状态。

与下围棋的AlphaGo相比,打Dota2的AI系统,batch size要大50-150倍,模型大20倍,训练时间长25倍。

要点二:AI如何学会打Dota2

人类玩Dota2通过键盘鼠标等,实时作出决定。刚才提到,OpenAI Five每4帧做出一个动作,这被称为一个timestep。每个timestep期间,OpenAI会接收血量、位置等数据。

同样的信息,人类和OpenAI Five接收的方式完全不同。

人工智能系统发出动作指令时,大概可以想成这个样子。

AI背后是一套神经网络。policy (π) 被定义为从观察数据到动作概率分布的函数,这是一个有1.59亿个参数的RNN神经网络。这个网络主要由一个单层、4096-unit的LSTM构成。

结构如下图所示:

LSTM贡献了这个模型中84%的参数。

选手们的训练,使用的是扩展版的近端策略优化(PPO)方法,这也是OpenAI现在默认的强化学习训练方法。这些智能体的目标是最大化未来奖励的指数衰减和。

在训练策略的过程中,OpenAI Five没有用到人类游戏数据,而是通过自我博弈。在围棋、象棋等问题上,也应用了类似的方式训练。

其中,80%的战斗中对手是使用了最新参数的分身,而20%的对手是老参数的分身。每经过10次迭代之后,新训练出的分身就被标为老前辈。如果当前正训练的AI击败了新秀或者老前辈,系统就会根据学习率更新参数。

按照OpenAI CTO此前的说法,击败OG前OpenAI Five已经练习了相当于45000年Dota。AI每天的训练量相当于人类打180年游戏。

要点三:计算量和超参数

训练这么复杂的AI系统,肯定要耗费大量的资源。

OpenAI预估了用于优化的GPU消耗量,最后的结论,OpenAI Five的GPU计算用量在770±50~820±50 PFlops/s·days左右,而今天新提到的、更强的Rerun,在随后两个月的训练中,GPU计算量消耗大概是150 ± 5 PFlops/s·days。

再说一下,OpenAI公布的只是用于优化的计算量,只是训练中所有开销的一小部分,大约占30%。

此前,OpenAI也曾透露过OpenAI Five的日常训练,需要256块P100 GPU和12.8万个CPU核心。

至于整个神经网络的超参数,在论文中,OpenAI表示在训练Rerun的时候,已经根据经验进一步简化了超参数。最后,他们只更改了四个关键的超参数:

• Learning Rate • Entropy penalty coefficient • Team Spirit • GAE time horizon

当然,OpenAI也表示这些超参数还有进一步的优化空间。

要点四:并不全是自学

最后,还有一点需要强调。

OpenAI在论文中明确指出,AI系统在学习Dota2的过程中,并非完全依靠强化学习自学,启示也使用了一些人类的知识。这跟后来的AlphaGo Zero有所区别。

有一些游戏机制是脚本编写好的程序。比方,英雄购买装备和学习技能的顺序,信使的控制等等。OpenAI在论文中表示,使用这些脚本有一些历史原因,也有成本和时间方面的考虑。不过论文也指出,这些最终也可以通过自学完成。

论文全文

在这篇名为Dota 2 with Large Scale Deep Reinforcement Learning的论文中,OpenAI公布了更多的详细信息,如果你感兴趣,下面是传送门:

https://cdn.openai.com/dota-2.pdf

对战回顾

最后,我们回顾一下OpenAI Five连下两局击败OG的比赛全程吧。

第一局

AI(天辉):火枪、飞机、冰女、死亡先知、斯温

人类(夜魇):小牛、巫医、毒龙、隐刺、影魔

选完阵容,OpenAI Five认为自己有67.6%的胜率。

刚刚开局,OpenAI Five拿下一血,而人类军团也很快杀掉了AI方的冰女。之后,双方前期在人头数上一直不相上下。AI一直在经济上保持总体领先,但最富有的英雄,却一直是人类的大哥影魔。

这也能看出双方策略上的明显区别:OG是3核心+2辅助的传统人类打法,而AI的5个英雄经济分配相对平均,比较“大锅饭”。

经过几番激烈的推进和团战,游戏进行到19分钟左右,AI对自身胜率的预测已经超过了90%。自信心爆棚的AI一鼓作气攻上了人类的高地。

OG紧接着选择了分路推进,几位解说推测,这是为了尽可能分散AI,防止它们抱团推进,然而并没有奏效太长时间。

然而,坚持到38分钟,人类方的小牛刚刚买活,AI的最后一波总攻已经推掉了人类的基地。

OpenAI Five赢下第一局。现场,也是一片掌声。

这场比赛中,AI展现了清奇的思路:出门装就选择两个大药,后续的装备也更倾向于买补给品,而不是提高自身属性。

另外,我们前边提到的“大锅饭”政策,以及在比赛前期就频繁买活,都和人类职业选手的习惯大不相同。

第二局

AI(天辉):冰女、飞机、斯温、巫医、毒龙

人类(夜魇):火枪、小牛、死亡先知、小鱼人、莱恩

选完英雄,AI对自身胜率的预测是60.8%,略低于上一局的阵容。

比赛前两分钟,双方都在一片祥和中各自带线,然而没想到,人类中单Topson很快就送出了一血。

之后,人类代表们以惊人的速度溃败。

5分钟时,AI的信心就已经大幅上升,预测自己有80%的胜率;7分钟,AI推掉了上路一塔;10分钟,AI就已经领先人类4000金币,多推了两座塔,还为自己预估了95%的胜率。

11分钟,AI已经攻上了OG的高地。

仅仅21分钟,OG的基地被推掉,OpenAI Five轻松拿下第二局。直到比赛结束,OG拿下人头还是个位数,被AI打成了46:6。

虽然这一局赢得异常轻松,不过对局过程中还是能看出AI在细节上有一些不足。比如说面对在复杂树林中绕来绕去的人类,AI就无能为力。今天的比赛中,Ceb就靠绕树林救了自己一命。

最后,祝大家周末快乐。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 要点一:Dota2比下围棋更复杂
  • 要点二:AI如何学会打Dota2
  • 要点三:计算量和超参数
  • 要点四:并不全是自学
  • 论文全文
  • 对战回顾
    • 第一局
      • 第二局
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档