Deepmind暴雪开源接口 AlphaGo能否用于星海争霸
来源:观察者网 专栏作者:陈经
早在2016年3月AlphaGo挑战围棋成功之后,就传出Deepmind下一步计画是在星海争霸
上打败人类。
人工智能开发者研究算法很喜欢用电脑游戏。一是研究目标清楚,游戏目标定义得
很完善,科研有时最重要的是提出问题。二是最近流行的深度学习需要极多的训练样本,
人类的线上高水准比赛很多能够提供足够的样本。三是问题足够难,进展如何通过人机对
战、线上测试一清二楚,而不是研究者自说自话。
围棋是“完全资讯博弈”(局面摆明,理论上有确定结论)游戏里最复杂的一个,又
很有艺术性。在围棋上战胜人类,就实现了Deepmind负责人哈萨比斯的说法,机器自我对
弈不断自我学习的方法可以解决一切基于推理的棋类游戏。
这个自学习的框架,能否在“非完全资讯博弈”上打败人类,令人非常有兴趣,同时
又极有学术价值。星海争霸是一个很合适的测试物件。星海争霸最常见的是两个玩家对战
,各自从一个基地开始发展,没有兵力在附近就看不见对方的动作,对方在干什么自己不
知道,因此是“非完全资讯博弈”。
1998年暴雪公司推出的星海争霸,经过数次升级到“母巢之战”版本,终于成为一款
平衡性极好的即时战略游戏,人族、神族、虫族三家兵种与科技特色极为鲜明。在不少玩
家的心中,星海争霸具有独特的地位,对战起来战略非常复杂,而且富于变化经常有创新
。
韩国人在曹熏铉与李昌镐称霸世界棋坛后掀起了围棋热潮,会下围棋的人比例极高。
同样,韩国人也非常热爱星海争霸,将它变成了一项“国技”,创立了职业联赛,出现了
许多高水准的职业选手,在WCG(世界电子竞技大赛)上多年来一直是垄断地位,竞技水
准比其它国家选手高出一大截。
韩国选手发明了很多新战术,如“拖把流”、“宇宙天空流”、“神教流”,不断将
星海争霸游戏水准推向新的高峰。玩家们普遍认为,历史最强选手应该是人称“教主”的
人族选手李永浩(网名Flash)。因为Flash的统治力,玩家们认为虽然星海争霸已经很平
衡,但在顶尖水准人族应该稍有优势,神族最吃亏。
星海争霸有个很大的问题,操作实在是太复杂。除了复杂的对战策略,职业选手们还得
有象抽风一样的手速,APM(每分钟操作)经常上400。对战双方一边要采矿挖气开分基地
发展经济、科技、兵工厂,还得去多线作战,作战时微操很重要。虫族的“拖把流”就是
说前方打得再激烈,还得抽空在后方不断增补农民挖矿发展,这样虫族利用出兵快兵力前
仆后继的优势,弥补了单兵战力的不足,“补农”做的不好的对手后期就败下阵来。
这样发展下去,身体反应的对抗越来越激烈。韩国职业选手基本都非常年轻,手速反
应跟不上就被淘汰,而且有可能产生职业病。开发商暴雪公司2010年推出了操作简单一些
的星海争霸2,2016年韩国星海争霸1联赛停办,可能都与此有关。
能够说明星海争霸复杂性的,除了多线操作,还有“侦察”。有一定水准的玩家都会
在很早就从本方基地派出一个农民去探路寻找对方基地(虫族还会让漂浮的房子去碰运气
),跑到对方基地侦察对方的发展动向。如果发展方向被针对了,失败可能就非常大了。
例如对方在发展空中力量,自己却没有作好防空准备;或者对方放弃经济短期堆积兵
力猛扑过来,自己却农民过多兵力不足防御工事不够,钱多还被打死。侦察经常有运气因
素,如猜错探路方向,很长时间才找到对方基地,反应时间不足吃了亏。所以即使强如教
主,胜率也只有70%。
通过以上描述,我们能感觉到星海争霸从AI研发角度看,是一个比围棋复杂得多的游
戏。围棋就是去推理出胜率高的选点,而星海争霸要决定很多的行动策略,科技与经济发
展方向、侦察之后针锋相对、战斗的方向与时机、作战单元的微操。
例如高水准选手都会hit and run(打了就跑)的骚扰战术,甚至上升到战略层面,
如人族的雷车提速骚扰,如何应对很烦人。除了“资讯不完全”这个特性,星海争霸的博
弈决策种类也特别多。而各类决策的影响也长短不一,有的决策要过很长时间才能体现重
要性,水准不高的甚至看不懂。同时,与围棋AI相比,星海争霸的AI具有更高的实用价值
,如果开发成功,军事指挥等决策事务引入人工智能就是很快的事了。
正因为如此,星海争霸职业选手对AlphaGo征服围棋后转向星海并不服气,职业解说
黄旭东在2016年3月与古力九段发生争执。围棋的推理深度极深,电脑算法能解决围棋
非常令人震惊了。
特别是AlphaGo取得突破后短短一年多就迅速战胜李世石、柯洁等所有人类最顶尖选
手,这个发展速度让人印象深刻。AlphaGo的算法原理能不能用在星海争霸上让AI的竞
技能力取得突破,并不容易回答。
2017年8月10日,Deepmind与暴雪公布了星海争霸2的AI开发接口,合作发了论文《星
海争霸2:对强化学习新的挑战》,对这个问题作出了初步的探索。可以看出来,星海争
霸的复杂度可能超过了Deepmind的想像,他们的进展并不太大。这也部分揭示了,
Deepmind发明的“让机器自己玩游戏不断进步”的流水线开发方法存在一定局限性。同时
,这并不是说人工智能就对星海争霸没有办法了,更厉害的学习框架也许可以开发出来,
Deepmind与暴雪为此准备了完善的研发环境,意义很大。
Deepmind让AlphaGo不断自我对弈提高棋力,既不去主动写代码告诉机器怎么下棋,
也不去干预机器的自我学习过程。主要的开发就是设计好各类机器学习的过程,找到新的
训练方法提升效率,这是一个很高明的选择。
AlphaGo算法负责人席尔瓦说,人类棋谱的作用,就是提供一个初始的棋力,之后
就再没有人类棋谱输入了,AlphaGo学习自己的棋谱提升棋力。而腾讯的绝艺开发方法不
太一样,具备了很高棋力以后积极地与顶尖棋手不断实战测试,发现问题后针对棋谱改代
码调试升级。
绝艺的开发方法多少有些急功近利,近期显得无法突破瓶颈,在2017年8月16、17日
的首届中信证券杯智慧围棋赛中先后负于台湾的CGI与日本的DeepZenGo,出乎预料地连决
赛都没有进。
绝艺的失利有偶然性,CGI与DeepZenGo也不是太稳定,夺冠的DeepZenGo预赛中输给
了绝艺。这说明高水准围棋AI的开发并不简单,容易进入瓶颈,棋界都在等AlphaGo的新
论文公布。
因为这个思想,Deepmind坚持让机器自我学习不断打星海争霸去提升实力,认为这种
方法潜力更大。主动去程式设计让AI具备相当的实力,这样前期进展快,但提升潜力不大
。机器的学习有两种,一种是从0知识开始,一种是参考人类的比赛录影。这两种办法,
Deepmind都在星海争霸2上进行了实践,那么结果如何?
从0知识开始让AI自我学习是Deepmind的拿手好戏。在开发AlphaGo之前,Deepmind就
有一篇2015年的《自然》文章《Human-level control through deep reinforcement
learning》,描述如何在“打砖块”等Atari开发的经典小游戏中,从0知识开始自我学习
达到超过人类的游戏水准。
开发人员负责给AI定好神经网络结构,AI通过海量试玩,分析游戏结果(如分数)改
变神经网络系数提高分数回报。可以猜测,Deepmind希望用海量的自我对战,引导星海争
霸AI的神经网络结构去自己发展出越来越复杂的战略与战术,甚至与人类玩家抗衡。
Deepmind也这样对星海争霸2建立了几种神经网络架构,一种训练是用比赛胜负结果
作为“回报”去调整网络系数,另一种是用比赛过程中报告的分数(如钱数、农民数、兵
的个数)作为回报。训练的对手是暴雪内置的AI,这种AI是用主动程式设计的方法做出来
的,前期如何发展,什么时候对玩家发动一波进攻都是写好的。它的目的是让玩家学习操
作,玩得开心,不是为了搞出厉害的AI展示算法能力。
暴雪的内置AI有十个级别,最厉害的三个是作弊的,AI能得到额外的资源和视野,
Deepmind用的是最容易的那个级别。比赛是人族对人族,如果30分钟没有打完,就是和局
。
结果是令人崩溃的!Deepmind训练出来的神经网络没有一局能打胜,甚至没有一个能
打得象回事。表现“最好”的一种神经网络,它“学会”了将人族建筑飘到空中游动躲避
攻击(但就没法搞生产了),然后生存大于30分钟拖成和局。如果是用过程中的分数作为
训练目标(它和比赛胜负是有关联的),这些神经网络们不约而同收敛到了一个策略:让
农民拼命采矿,其它什么也不干,对手来了就任人宰杀。
暴雪的内置AI是很差的,有些玩家声称能一家打六七个AI,因为AI的策略太简单。这
个结果等于是说,Deepmind并没有做出有操作意义的AI,而是将以前机器从0知识开始不
断试玩Atari小游戏的成功方法跑了一下。结论是,星海争霸远比小游戏复杂,过去的神
经网络结构和训练方法是远远不够的。由于外界对Deepmind的预期很高,这次它报告的结
果可能会让人意想不到,虽然Deepmind自己说这不令人意外。
为了探索神经网络自学习框架对星海争霸的作用,Deepmind还设计了七个迷你游戏,
等于是相当于Atari小游戏难度的子任务。这七个迷你游戏跑出了一些有意义的结果。
推 讲的好详细