在攻克了围棋以后,人工智能研究者们似乎不约而同地把电子竞技游戏作为了下一个练兵场。雷锋网上周报道,在Dota2国际邀请赛TI7上,OpenAI率先展示了自己的成果,在西雅图让AI在1v1比赛中击败了职业选手,又一次点燃了关于AI的讨论。
雷锋网对比赛结果也进行了诸多分析,就目前的资料来看,其实1v1比赛可能较围棋来得简单,在1v1比赛中取胜,也不能说明在5v5的完整比赛中能战胜人类,人类还保有一定的尊严。
经过约一周的时间,OpanAI最终公布了Dota AI的一些细节,不过它还是有所保留,没有说明技术细节。最后,他们还说到最终的目的就是在5v5比赛中战胜人类。
上图是游戏AI的TrueSkill评级(类似于国际象棋中的ELO评级)分数变化,计算方式是模拟AI之间的游戏对局,并观察胜率。TrueSkill系统是基于贝叶斯推断的评分系统,由微软研究院开发,主要用于多人游戏匹配。这套评分系统考虑到了玩家水平的不确定性,综合考虑了玩家的胜率和可能的水平涨落,而不是简单的基于胜率的评分。
图中显示的变化趋势是线性的,这意味着AI的提升水平呈指数级增长。
OpenAI还具体介绍了项目的开发时间表。从某种角度看,15%的玩家低于1.5K MMR,58%的玩家低于3k,而99.99%低于7.5k。
MMR是比赛匹配分级系统,全称是match making ranking,简单理解就是Dota中常说的天梯分。
3月1日:在简单的Dota环境中得到了第一个经典强化学习下的结果,AI操作的黑暗游侠可以对付神牛了。
5月8日:1.5k MMR水平的测试员说自己的速度比AI要快。
6月初:击败1.5k MMR水平的测试者
6月30日:在与3k MMR测试者的比赛中多数会赢
7月8日:对战7.5K MMR水平的半专业测试者,终于赢了一次。
8月7日:3-0击败Blitz(6.2k的前职业选手),2-1击败Pajkatt(8.5k的职业选手),3-0击败CC&C(8.9k的职业选手),不过大家都认为,系统还是打不过顶尖选手Sumail。
8月9日:10-0击败Arteezy(10k职业选手)10-0,但他还是认为系统搞不定Sumail。
8月10日:6-0击败Sumail(8.3k职业选手,顶级1v1玩家),不过在与8月9日版的系统对战结果是2-1。
8月11日:2-0击败Dendi(7.3k职业选手,前世界冠军)2-0。这个时候的系统对战前一天的版本,胜率是60%。
AI与Sumail比赛
完整的比赛是5v5版本的,不过1v1也出现在一些锦标赛中。OpenAI写到,系统是在标准比赛规则下对战的 ,在1v1中没有为AI做特别的简化。
系统的操作环境如下:
观察:使用游戏的Bot API接口,功能集与视角和人类玩家的一样,会受英雄,小兵,信使和附近地形的影响。整个游戏对AI系统来说是部分可观察的。
操作:也是调用Bot API,操作频率被限定在与人类水平相当,这包括移动到某个位置,攻击或使用某个物品的频率。
反馈:系统在赢得比赛后会得到奖励,其它一些基本指标,如英雄的生命状态和最后一击等,也会影响奖励。
系统还可以选择使用的几十个装备道具,选择后会有评估。OpenAI还用了传统的强化技术单独训练开局前的挡兵,这基本是1v1的标准操作。
AI与Arteezy比赛
OpenAI称,他们使用的方法结合了少量的“教练”式训练与自我对战,每天都能有很大的提升。比如在TI比赛的那段时间,周一晚上的时候Pajkatt还打赢了系统,当时他使用了一个不寻常的装备,即在早期购买了魔棒。后来OpenAI将这种操作加到了培训当中。
星期三下午OpenAI再次测试了最新的系统。比赛中AI在第一波攻击中就掉了一大半血,正当研究人员觉得要把系统回复了原先版本的时候,他们注意到了惊人的发展,原来第一波攻击是在诱使对方采用更激进的攻击方式。系统进一步的自我对局逐渐解决了这个问题,并学会了抵制引诱策略。
在与Arteezy的比赛之后,OpenAI更新了挡兵模型,让系统的TrueSkill分增加了一点。然后在与Sumail比赛之前又进行了进一步训练,把TrueSkill分增加了两点。Sumail比完后说,AI甚至学会了在敌方的视线之外压影炮,这样可以打断敌人在视野之外的回复。
Arteezy还与OpenAI的7.5k评级半专业测试员打了一场比赛。Arteezy赢了比赛,但测试人员用了从AI系统那学的一招,着实让人吃惊。Arteezy后来说,这是他以前与Paparazi比赛时对方用过的招数,很少有人会用。
这种情况在围棋中也曾出现过,当AlphaGo战胜李世石后,再到它与柯洁的比赛,人类棋手也越来越多地开始学习它的布局与下法。
Sumail在对战后说,AI系统是“不可战胜的”,但它仍然会在与之前遇到过的状况非常不同的情况下不知混所措。在TI的比赛那段时间,OpenAI还设了一次局域网比赛让很多人参加进来,以各种方式与AI系统对战,总共收集了1000多次比赛数据。最终还是发现了不少系统的破绽,可以战胜它,主要有三类:
引兵:当小兵进攻的时候,可以不断攻击它们吸引火力,让他们跟着你跑,这样可以导致AI一方的防卫塔被小兵消耗而亡。
淬毒之珠+风灵之纹:买这两个装备可以在1级的时候带来很大的移动速度优势,这样可以快速拿AI的一血。有了这样好的开始战胜电脑就很容易了。
1级影压:用这一条战胜电脑需要不少技巧,不过根据OpenAI的说法,有几个6-7k水平的玩家能够在较短时间内压3-5记影炮,在1级的时候就杀死AI系统。
以上都是在1v1比赛中的小bug,很容易修复错误。但是对于5v5比赛来说,这样的问题根本就不是漏洞了,这时候需要的是一个可以处理突发且怪异情况的系统。
最后,OpenAI表示还没有准备好对外公布开发的AI代理的具体构造,团队的重点是首先解决5v5比赛。如果说1v1比赛很复杂,那5v5比赛就是复杂的集合,而解决这一问题会进一步推动AI的进步。
OpenAI认为,一个比较好的着手方式是行为克隆。Dota每天有大约一百万场公开赛,这些比赛的重播数据会被存储在Valve的服务器上两周。雷锋网了解到,自去年11月以来,OpenAI一直在下载每位专家级别玩家的重播数据,已经收集了580万局游戏的数据(每局都是10人参与的45分钟游戏)。
OpenAI的Dota 2系统表明,如果有充分的计算,自我对局可以将机器学习系统的性能从远低于人类的水平提高到超越人类。在一个月的时间里,它们的系统就从比不上高水平玩家,发展到了击败顶级职业选手,而且还在继续提升。有监督深度学习系统只能与培训数据集一样好,但在自我对局系统中,随着代理越来越好,可用数据会自动提升。