英国当地时间 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 战绩打败了 Team Liquid 的职业《星海 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 2 AI 研究走出不同的发展路线。
截至本次比赛前,《星海争霸》AI 和 DOTA 2 AI 研究领域已见识过的最强 AI 分别来自三星和 OpenAI:
- 2018 年 AIIDE《星海争霸》AI 挑战赛共有全世界 27 支团队带着 AI 参赛,获得冠军的人族 bot“SAIDA”来自三星。这个 bot 的核心特点是有一个稳定的游戏策略,会首先考虑防守,然后在游戏中期伺机一波带走对方。这种策略是从韩国职业星海选手学到的。这个 bot 去年时还无法击败职业选手。
- 《星海争霸》AI 普遍大量使用固定策略和手工规则,三星 bot 应用一些机器学习技术来帮助控制单位、探索地图,开发团队也尝试更应用机器学习技术。参加同一个比赛的 Facebook 虫族 bot“CherryPi”大量应用机器学习技术,但只获得第二名。
- 2018 年 8 月,OpenAI 举行线下比赛测试自己的 DOTA 2 AI 系统“OpenAI Five”,在较多比赛限制的情况下对阵欧美前职业选手组成的团队取得胜利,在稍后 DOTA 2 国际邀请赛 Ti8 对阵中国(前)职业选手组成的团队时失败。这之后 OpenAI 持续不断改进,并声称后来的某版已大幅超越之前比赛的版本。
- “OpenAI Five”是一套精心设计的深度强化学习系统,由 5 个独立神经网络分别控制 5 个英雄。研究人员使用许多技巧启动 AI 学习 DOTA 2 各种行为,也设计超参数帮助网络学习团队合作;但比赛过程中 AI 之间没有直接沟通。
AlphaStar 技术介绍
活动预告文中,盘点了之前 DeepMind 在星海 2 AI 研究的动向。以深度强化学习著称的人工智能企业,如今我们见到的 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 2 AI 是完全从零开始的强化学习,初始阶段花了很多时间在无意义的游戏操作)。
下面当然就是强化学习的自我对弈、继续提升水准阶段了,这也是和 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
(本文由 雷锋网 授权转载;首图来源:影片截图)