多图详解 DeepMind 的超人类水准《星海争霸》AI“AlphaStar”
▼
英国当地时间 1月 24日,DeepMind在伦敦线上直播,向全世界的游戏 AI研究人员及游戏爱好者介绍AI研发最新进展。
参加直播的 DeepMind研究人员是DeepMind团队联合研发负责人Oriol Vinyals和David Silver,后者也是AlphaGo 计划的核心开发人员,外界对他应该比较熟悉。
▲Oriol Vinyals(左)与David Silver。
DeepMind的《星海争霸 2》AI名为“AlphaStar”,命名方式正如之前的围棋 AI“AlphaGo”及蛋白质折叠计算 AI“AlphaFold”。
据 DeepMind介绍,AlphaStar 操作神族(Protoss),2018年 12月 10日以5:0战绩打败了 TeamLiquid的职业《星海2》选手TLO,然后经过更多训练后,12月 19日再次以 5:0完胜战绩打败了同一战队的职业选手 MaNa。直播现场重播、解说其中数场比赛。
AlphaStar展现出职业选手般成熟的比赛策略,以及超越职业选手水准的微操作,甚至可在地图上多地点同时展开战斗(人类选手在这种状况下会吃不少亏)。
▲职业选手式的建筑布局,并快速派出侦查兵探索地图及对方基地。
▲AlphaStar会制造大量工人,快速建立资源优势(超过人类职业选手的 16个或 18个上限)。
▲AlphaStar的追猎者从三面围攻人类选手 MaNa的不朽者。
▲AlphaStar控制的两个追猎者黑血极限逃生。
直播时DeepMind还再次让 AlphaStar与MaNa现场比赛。这次比赛的 AlphaStar是重新训练的新版本,需要自己控制视角(不像之前版本可直接读取地图所有可见内容)。这次 MaNa终于取得胜利。
《星海争霸》AI 背景
从以围棋为代表的完全资讯博弈/游戏被AlphaGo攻克、取得超出人类顶尖棋手水准之后,研究人员立刻向非完全资讯博弈发起更猛烈的进攻。典型的非完全资讯博弈如德州扑克,玩家需在看不到对手牌面的状况下决策,CMU的德扑AI论文也拿到NIPS 2017最佳论文奖。
另一方面,深度学习的研究人员也希望借助深度强化学习的力量探索更复杂的博弈/游戏。德州扑克显然不够难,德扑AI 之父表示没有用到任何深度学习;再看围棋,虽然围棋可能出现的局面总数是天文数字,但每回合双方只需选择在棋盘某处落一颗棋即可。相比之下,现代竞技类电子游戏的移动空间就复杂得多,比赛可有 2个以上玩家参与、每个玩家可同步行动、每个行动有不同时间长短、位移和移动都是空间连续,攻击防御技能等物品也有很多变化。
随着当年的狂热玩家如今成为电脑科学领域的研究人员,电子竞技游戏AI研发也快速分出两大主要阵营:《星海争霸/星海争霸2》,以及DOTA 2。两者都有广泛群众基础,玩家对游戏AI喜闻乐见,也有许多高水准的职业选手可与AI切磋学习。
虽然都是RTS (即时战略)游戏,都需要在收集资源和打仗间找到平衡,但星海和DOTA 2也有不少区别。星海需要控制多种不同类别的单位,这些单位有各自的运动和攻击特点,DOTA 2可从头到尾只控制同一个英雄;星海每一方只有一位玩家,而DOTA 2每一方有 5 位玩家。因此游戏策略和执行区别也让星海AI和DOTA 2AI研究走出不同的发展路线。
截至本次比赛前,《星海争霸》AI和DOTA 2AI研究领域已见识过的最强AI分别来自三星和OpenAI:
- 2018年 AIIDE《星海争霸》AI 挑战赛共有全世界27 支团队带着AI 参赛,获得冠军的人族bot“SAIDA”来自三星。这个bot的核心特点是有一个稳定的游戏策略,会首先考虑防守,然后在游戏中期伺机一波带走对方。这种策略是从南韩职业星海选手学到的。这个bot去年时还无法击败职业选手。
- 《星海争霸》AI普遍大量使用固定策略和手工规则,三星bot 应用一些机器学习技术来帮助控制单位、探索地图,开发团队也尝试更应用机器学习技术。参加同一个比赛的Facebook虫族 bot“CherryPi”大量应用机器学习技术,但只获得第二名。
- 2018年 8月,OpenAI 举行线下比赛测试自己的DOTA 2AI系统“OpenAI Five”,在较多比赛限制的情况下对阵欧美前职业选手组成的团队取得胜利,在稍后DOTA 2国际邀请赛 Ti8对阵内地(前)职业选手组成的团队时失败。这之后OpenAI持续不断改进,并声称后来的某版已大幅超越之前比赛的版本。
- “OpenAI Five”是一套精心设计的深度强化学习系统,由 5个独立神经网络分别控制 5个英雄。研究人员使用许多技巧启动 AI 学习DOTA 2各种行为,也设计超参数帮助网络学习团队合作;但比赛过程中 AI 之间没有直接沟通。
AlphaStar 技术介绍
活动预告文中,盘点了之前 DeepMind在星海2AI研究的动向。以深度强化学习着称的人工智慧企业,如今我们见到的 DeepMind《星海争霸 2》AI“AlphaStar”自然毫不意外是一套基于深度强化学习的系统。
▲2018年 12月比赛,观战室的Oriol Vinyals和 David Silver(看出来中间是谁了吗)。
AlphaStar模型设计
AlphaStar 是一个把游戏看作长串列建模学习工作的强化学习 AI,模型设计也就以长串列建模为能力为核心。模型从游戏介面接收的资料是单位清单和这些单位的属性,经过神经网络计算后汇出游戏执行的指令。这个神经网络的基础是Transformer网络,并结合一个深度LSTM网络核心、一个带指标网络的自动回归策略头,以及一个中心化的评分基准。这网络架构是DeepMind对复杂串列建模工作的最新思考结果,他们也相信这先进模型可在其他需要长串列建模、有很大行动空间的机器学习工作(比如机器翻译、语言建模和视觉表示)同样发挥出优秀的表现。
网络设计的相关论文:
- Transformer网络
- 深度LSTM网络
- 自动回归策略头
- 指标网络
- 中心化评分基准
AlphaStar训练策略
AlphaStar的初始训练策略与早期AlphaGo相同,DeepMind研究员首先用人类比赛的replay监督学习训练模型,以模仿学习的思路让模型快速学到高级玩家在星海天梯使用的基础策略和微操作。这时的AlphaStar就能以 95%的胜率打败《星海争霸 2》内建的“精英”等级AI(对比OpenAI的DOTA 2AI是完全从零开始的强化学习,初始阶段花了很多时间在无意义的游戏操作)。
下面当然就是强化学习的自我对弈、继续提升水准阶段了,这也是和AlphaGo的训练策略不同的地方。之前介绍过,AlphaGo自我对弈阶段的棋局是由所有之前更新过程的表现最好版本生成,也就是说每时刻都有一个“最好的版本”,也不断搜寻比前辈还好的版本替换。但对《星海争霸》,DeepMind研究员认为不同的优秀策略之间可相互克补,没有哪个策略可完胜其他策略。所以这次他们分别更新、记录许多不同版本的网络(合称为 AlphaStar league)。
如上图,AlphaStar 用人类资料初始训练后,继续进行多轮 AlphaStar league自我对战,每轮都会在之前数个较强的版本基础上分叉;分叉前的版本会固定参数保留下来,一直参与后续多轮自我对战;不同版本也可能会安排不同对战策略和学习目标。这样不断提升网络水准、提高对战难度的同时,也保留足够多样性。根据每轮自我对战的结果,每个网络参数都会更新;这种做法来自群体强化学习的想法,保证持续稳定的表现提升,且很新的版本也不会“忘记”如何击败很早的版本。
群体自我对弈的过程会产生许多策略。有些策略仅细微改善早期策略,也有一些策略会有全新的建造顺序、单位组合、微操作;能稳定击败早期策略的策略也开始出现。比如AlphaStar league自我对战早期,快速rush的策略有较高胜率;但随着训练过程持续,其他策略开始展现更高胜率,比如用更多工人快速扩大基地,获取更多资源后建立经济优势;或派几个兵去对方基地骚扰,获得发展速度的优势。这种策略更换演化也和人类选手数年摸索之路非常类似。如下图,随着总训练时间越来越长,AI 平均使用的单位数目也越来越多。
多轮自我对战结束后,研究人员会以AlphaStar league的 Nash 分散取样出一个版本,当作训练结束后最终得到的 AI。这做法可得到已发现的多种策略综合最优解。
据DeepMind介绍,击败TLO(虫族选手操作神族,并不是他最佳水准)和MaNa的AlphaStar版本分别来自第 9天和第 14天的自我对战(如下图),实际上观赛选手和游戏解说也都注意到两次比赛AlphaStar的变化。
保证策略多样性的努力
DeepMind在技术介绍部落格提到,为了让AlphaStar league有尽量高的多样性,他们有意识地为不同 AI 设定不同的学习目标(这也符合人类常识,简单的随机扰动带来的多样性变化非常有限)。有的 AI 要专门针对击败某特定 AI 学习,或为另一些 AI 设定其余内部动机,比如具体透过建造某种单位,击败所有使用某类策略的 AI。这些目标会在训练时调节。DeepMind可视化展示了最终形成的多种不同策略分散,如下图。
AlphaStar league自我对战中,每个 AI 的网络权重都会根据强化学习演算法更新,最佳化各自不同的学习目标。权重更新规则来自新的、高效的策略离线 actor-critic演算法,其中含经验重播、自我模仿学习和策略蒸馏的思想。
AlphaStar算力需求
为了支援大批不同版本AlphaStar AI的对战与更新,DeepMind构建大规模可拓展的分散式训练环境,使用最新的Google TPUv3,这训练环境可支援成群AlphaStar AI实例同时执行;《星海争霸 2》游戏主体也有数千个实例同步执行。AlphaStar league的自我对战训练过程用了 14天,每个AlphaStar AI使用16个 TPU,最终相当于每个 AI 都有长达 200年的游戏时间。训练结束后的模型在单块消费级GPU就可执行。
AlphaStar的游戏表现
由于AlphaStar首先从人类玩家资料模仿学习,以及神经网络有一定的计算延迟,操作频率其实比人类选手还低一些。MaNa的APM达平均 390,AlphaStar平均只有280左右。AlphaStar的计算延迟平均为 350毫秒(从观察到行动)。相比之下,以往基于固定策略和手工规则的星海AI会保持上千APM。
DeepMind也根据AlphaStar和MaNa一局比赛制作 AI 视角和内部资讯的可视化示意图,如下:展示神经网络接收到的初始资料(左下角小图蓝色点),神经网络内部的触发状况(中下方手边小图)、AI 考虑点击和建造建筑的地图区域示意(中下方右侧小图,这也可以理解为 AI 的注意力关注的区域)、AI 作业输出触发情况(右下角小图)及胜率预测。图中同步展示MaNa视角,游戏中AlphaStar看不到对手视角。
本文开头提到,两次以 5:0击败TLO和MaNa的 AlphaStar无需控制视角,可直接读取地图所有可见内容。相比之下,人类选手显然需要手动切换视角到地图不同位置才能看到部分资讯。从这个角度说,AlphaStar有欺负人类选手的嫌疑。DeepMind也针对这点分析,他们的资料统计认为AlphaStar切换关注区域的速度约是每分钟 30次,这个次数和人类职业选手相当。
当然了,最好的办法还是做实验证明。所以DeepMind重新训练了需要自己控制视角的AlphaStar ,也就是直播时MaNa击败的那版(不过那版只训练了 7天,而不是初始版的 14天)。这版的AlphaStar能抓取的资讯仅限于视角包含的部分,指令也一样。DeepMind提供的训练图表也显示这带来一定的表现下降(虽然仍能追上)。不过DeepMind认为表现下降的幅度非常轻微,也表现出AlphaStar的强大,主要还是归功于学到有效的游戏策略和强力微操作。
DeepMind的展望
虽然这次模型用在《星海争霸 2》AI,但DeepMind认为这是够复杂、有代表性的工作,用来解决这个工作的技术也可用在其他复杂问题。比如为长串列建模设计的网络架构,可用在更多不完全资讯的长串列建模工作,如天气预测、气候建模、语言理解等。他们也会继续开发AlphaStar项目,并利用其中技术收获,改善更多工作。
另一方面,DeepMind认为此次设计策略也是通往安全、强健性 AI的新路径。现阶段的AI系统一大难题就是难以预测系统会在多少种不同情况下失效,《星海争霸》的职业选手取胜AI也往往依靠搜寻并攻击AI的弱点和错误。AlphaStar提出的群体训练策略就是一种更可靠、出错可能性明显减少的训练策略。DeepMind研究员认为,这种方法还有很多潜力可挖掘,也许未来会成为安全因素非常关键的重要一环。最终,DeepMind 希望建立真正智慧的系统,帮助人类解决最重要、最基础的科学难题。
关于技术细节更细致全面的介绍,DeepMind正撰写论文,并计划投稿到期刊让同行评议。共同期待正式论文的发表吧。
- AlphaStar: Mastering the Real-Time Strategy Game StarCraft II
(本文由 雷锋网 授权转载;首图来源:影片截图)
▼
特别声明 本页内容仅供参考,版权终归原著者所有,若有侵权,请联系我们删除。