Dota2冠军战队居然被AI碾压了?
2019-12-16 09:28

Dota2冠军战队居然被AI碾压了?

本文来自微信公众号:量子位(QbitAI),作者:问耕,原文标题:《Dota2冠军OG如何被AI碾压?OpenAI累积三年的完整论文终于放出》,Photo by Stackie Jia on Unsplash


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在论文中表示,使用这些脚本有一些历史原因,也有成本和时间方面的考虑。不过论文也指出,这些最终也可以通过自学完成。


对战回顾


最后,我们回顾一下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就靠绕树林救了自己一命。



本文来自微信公众号:量子位(QbitAI),作者:问耕

本内容为作者独立观点,不代表虎嗅立场。未经允许不得转载,授权事宜请联系hezuo@huxiu.com
如对本稿件有异议或投诉,请联系tougao@huxiu.com
正在改变与想要改变世界的人,都在 虎嗅APP
赞赏
关闭赞赏 开启赞赏

支持一下   修改

确定