多图详解 DeepMind 的超人类水准星际争霸 AI 「AlphaStar」 …[通俗易懂]

多图详解 DeepMind 的超人类水准星际争霸 AI 「AlphaStar」 …[通俗易懂]雷锋网(公众号:雷锋网)AI科技评论按:英国当地时间1月24日,DeepMind在伦敦组织线上直播,向全世界的游戏AI研究人员以及游戏爱好者们介绍自己的AI研发最新进展。参加直播的DeepMind研究人员是DeepMind团队联合研发负责人OriolVinyals和DavidSilver,后者也是Alph…

大家好,又见面了,我是你们的朋友全栈君。

TB1NVsmDH2pK1RjSZFsXXaNlXXa.jpg

雷锋网(公众号:雷锋网) AI 科技评论按:英国当地时间 1 月 24 日,DeepMind 在伦敦组织线上直播,向全世界的游戏 AI 研究人员以及游戏爱好者们介绍自己的 AI 研发最新进展。

TB1ZIZuDMHqK1RjSZFkXXX.WFXa.jpg

参加直播的 DeepMind 研究人员是 DeepMind 团队联合研发负责人 Oriol Vinyals 和 David Silver,后者也是 AlphaGo 项目的核心开发人员,我们都比较熟悉了。

TB1HtIrDQPoK1RjSZKbXXX1IXXa.jpg

左 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 。直播现场中回放、解说了其中数场比赛的 replay。

TB1ecgoDSzqK1RjSZFHXXb3CpXa.png

AlphaStar 在比赛中展现出了职业选手般成熟的比赛策略,以及超越职业选手水平的微操,甚至可以同时在地图上多个地点同时展开战斗(人类选手在这种状况下就会吃不少亏)。

TB1epMlDHvpK1RjSZPiXXbmwXXa.gif

职业选手式的建筑布局,并快速派出侦查兵探索地图以及对方基地

TB1IvHSDSzqK1RjSZPcXXbTepXa.gif

AlphaStar 会建造大量工人,快速建立资源优势(超过人类职业选手的 16 个或 18 个的上限)

TB1o9wpDQvoK1RjSZFNXXcxMVXa.gif

AlphaStar 的追猎者从三面围攻人类选手 MaNa 的不朽者

TB1UcMnDOrpK1RjSZFhXXXSdXXa.gif

AlphaStar 控制的两个追猎者黑血极限逃生

在直播中 DeepMind 还再次让 AlphaStar 与 MaNa 现场比赛。这次比赛中的 AlphaStar 是一个重新训练的新版本,它需要自己控制视角(而不像前面的版本可以直接读取地图上所有的可见内容)。这次 MaNa 终于取得了胜利。

AlphaStar 的详细介绍请见下文。

星际争霸 AI 背景

自以围棋为代表的完全信息博弈/游戏被 AlphaGo 攻克、取得超出人类顶尖棋手的水平之后,研究人员们立刻向非完全信息博弈发起更加猛烈的进攻。典型的非完全信息博弈比如德州扑克,玩家需要在看不到对手的牌面的状况下做出决策,CMU 的德扑 AI 论文也拿到了 NIPS 2017 的最佳论文奖。

而另一方面,深度学习的研究人员们也希望借助深度强化学习的力量探索更复杂的博弈/游戏。德州扑克显然不够难,德扑 AI 之父表示其中没有用到任何深度学习;再看围棋,虽然围棋中可能出现的局面的总数目是一个天文数字,但具体到每一回合中,比赛的双方只需要选择在棋盘的某一处落一颗棋子即可。相比之下,现代的竞技类电子游戏的行动空间就复杂得多,比赛可以有 2 个以上的玩家参与、每个玩家可以同步做出行动、每个行动可以有不同的时间长短、位移和移动都是空间连续的、攻击防御技能物品等还有很多的变化。

随着当年的狂热玩家们如今成为计算机科学领域的研究人员,电子竞技游戏 AI 研发也快速分出了两大主要阵营:星际争霸/星际争霸2,以及 DOTA2。两者都有广泛的群众基础,玩家们对游戏 AI 喜闻乐见,也有许多高水平的职业选手可供 AI 切磋学习。

虽然都是 RTS (即时战略)游戏,虽然都需要在收集资源和打架之间找到平衡,但星际和 DOTA2 也有不少区别。星际中需要控制多种不同类型的单位,这些单位有各自的运动和攻击特点,而 DOTA2 中可以从头到尾只控制同一个英雄;星际中每一方只有一位玩家,而 DOTA2 中每一方有五位玩家。由此带来的游戏策略和执行上的区别也让星际 AI 研究和 DOTA2 AI 研究走出了不同的发展路线。

截至本次比赛前,星际 AI 研究领域和 DOTA2 AI 研究领域已经见识过的最强 AI 分别来自三星和 OpenAI

2018 年 AIIDE 星际争霸 AI 挑战赛共有来自全世界的 27 支团队带着自己的 AI 参赛,获得冠军的人族 bot 「SAIDA」来自三星。这个 bot 的核心特点是有一个稳定的游戏策略,它会首先考虑防守,然后在游戏中期伺机一波带走对方。这种策略是从韩国的职业星际选手们身上学到的。这个 bot 去年时还不能击败职业选手。

星际争霸 AI 普遍大量使用固定策略和手工规则,三星的 bot 应用了一些机器学习技术来帮助控制单位、探索地图,开发团队也在尝试更多地应用机器学习技术。参加了同一个比赛的 Facebook 的虫族 bot「CherryPi」大量应用了机器学习技术,但只获得第二名。(更多信息可以阅读雷锋网 AI 科技评论 报道 )

2018 年 8 月,OpenAI 组织线下比赛测试自己的 DOTA2 AI 系统「OpenAI Five」,前一次在有较多比赛限制的情况下对阵欧美前职业选手组成的团队取得了胜利,然后在稍后的 DOTA2 国际邀请赛 Ti8 中对阵中国(前)职业选手组成的团队时失败。这之后 OpenAI 在持续不断地进行改进,并声称后来的某个版本已经大幅超越此前线下比赛中的版本。

「OpenAI Five」是一套精心设计的深度强化学习系统,由 5 个独立的神经网络分别控制 5 个英雄。研究人员们使用了许多技巧引导智能体学习 DOTA2 中的各种行为,也设计了超参数帮助网络学习团队协作;但比赛过程中智能体之间没有直接的沟通。(更多信息可以阅读此前 报道)

AlphaStar 技术介绍

在活动预告文中,我们盘点了此前 DeepMind 在星际 2 AI 研究中的动向。作为以深度强化学习著称的人工智能企业,如今我们见到的 DeepMind 的星际 2 AI「AlphaStar」自然毫不意外地是一套基于深度强化学习的系统。

TB1g.MpDNTpK1RjSZFMXXbG_VXa.png

18 年 12 月的比赛时,观战室中的 Oriol Vinyals 和 David Silver(以及你们看出来中间是谁了吗?)

AlphaStar 模型设计

AlphaStar 是一个把游戏看作长序列建模学习任务的强化学习智能体,它的模型设计也就以长序列建模为能力为核心。模型从游戏接口接收的数据是单位列表和这些单位的属性,经过神经网络计算后输出在游戏中执行的指令。这个神经网络的基础是 Transformer 网络,并且结合了一个深度 LSTM 网络核心、一个带有指针网络的自动回归策略头,以及一个中心化的评分基准。这样的网络架构是 DeepMind 对复杂序列建模任务的最新思考结果,他们也相信这样的先进模型可以在其他需要长序列建模、有很大行动空间的机器学习任务(比如机器翻译、语言建模和视觉表示)中同样发挥出优秀的表现。

网络设计的相关论文参见:

Transformer 网络 – https://papers.nips.cc/paper/7181-attention-is-all-you-need.pdf

深度 LSTM 网络 – http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.676.4320&rep=rep1&type=pdf

自动回归策略头 – https://arxiv.org/abs/1708.04782

指针网络 – https://papers.nips.cc/paper/5866-pointer-networks.pdf

中心化评分基准 – https://www.cs.ox.ac.uk/people/shimon.whiteson/pubs/foersteraaai18.pdf

AlphaStar 训练策略

AlphaStar 的初始训练策略与早期的 AlphaGo 相同,DeepMind 的研究人员首先用人类比赛的比赛 replay 对模型进行监督学习训练,以模仿学习的思路让模型快速学习到高水平玩家们在星际争霸天梯中使用的基础策略和微操。这时候的 AlphaStar 就能够以 95% 的胜率打败星际争霸 2 内置的「精英」级别的 AI 了。(作为对比,OpenAI 的 DOTA2 AI 是完全从零开始的强化学习,初始阶段花费了很多时间在无意义的游戏操作上)

下面当然就是强化学习的自我对弈、继续提升水准的阶段了,而这也是和 AlphaGo 的训练策略有所不同的地方。在之前的报道中我们介绍过,AlphaGo 自我对弈阶段的棋局是由所有之前的迭代过程中出现的表现最好的一个版本生成的,也就是说每一时刻都存在一个「最好的版本」,也不断寻找比它还好要的版本并进行替换。但对于星际争霸,DeepMind 的研究人员们认为不同的优秀策略之间可能是相互克制的,没有哪一个策略是可以完胜其它所有策略的。所以这次他们的做法是分别更新、记录许多个不同版本的网络(合称为 AlphaStar league)。

TB1H1coDMHqK1RjSZFgXXa7JXXa.png

如上图,AlphaStar 在人类数据上初始训练后,继续进行多轮 AlphaStar league 中的自我对战,而每轮都会在之前的数个比较强的版本基础上进行分叉;分叉前的版本会被固定参数保留下来,一直参与后续的多轮自我对战;不同的版本也可能会被人工安排不同的对战策略和学习目标。这样的做法就在不断提升网络水平、提高对战难度的同时也保留了足够的多样性。根据每轮自我对战的结果,每个的网络参数都会进行更新;这种做法来自于群体强化学习的思想,保证了持续稳定的表现提升,而且很新的版本也不会「忘记」如何击败很早的版本。

群体自我对弈的过程中可以产生许多不同的策略。有一些策略仅仅是对早期策略的细微完善,也有一些策略会含有全新的建造顺序、单位组合、微操模式;能够稳定击败早期策略的策略也开始出现。比如在 AlphaStar league 自我对战的早期,快速 rush 的策略有较高的胜率;但随着训练过程持续,其它的策略开始展现出更高的胜率,比如用更多的工人快速扩大基地,获取更多的资源后建立经济优势;或者用几个兵去对方的基地骚扰,获得发展速度的优势。这种策略的更替演化也和人类选手们数年中的摸索之路非常类似。如下图,随着总训练时间越来越长,智能体平均使用的单位数目也越来越多。

TB1dJguDMHqK1RjSZFkXXX.WFXa.png

许多轮自我对战结束后,研究人员们会以 AlphaStar league 中的纳什分布采样出一个版本来,作为训练结束后最终得到的智能体。这样的做法可以得到已经发现的多种策略的综合最优解。

根据 DeepMind 介绍,击败 TLO(虫族选手操作神族,并不是他最佳水平)和 MaNa 的 AlphaStar 版本分别来自第 9 天和第 14 天的自我对战(如下图),实际上在观赛中选手和游戏解说也都注意到了两次比赛中 AlphaStar 水平的变化。

TB1gN7LDNnaK1RjSZFBXXcW7VXa.png

保证策略多样性的努力

DeepMind 在技术介绍博客中提到,为了让 AlphaStar league 中有尽量高的多样性,他们实际上有意识地为不同的智能体设置了不同的学习目标(这也符合我们的常识,简单的随机扰动带来的多样性变化是非常有限的)。有的智能体要专门针对击败某个特定的智能体进行学习,或者为另一些智能体设定额外的内部动机,比如具体地通过建造某种单位来击败所有使用某类策略的智能体。这些目标会在训练过程中进行一些调节。DeepMind 可视化展示了最终形成的多种不同策略分布,如下图。

TB1t.khDMTqK1RjSZPhXXXfOFXa.png

在 AlphaStar league 的自我对战中,每个智能体的网络权重都会根据强化学习算法更新,优化各自不同的学习目标。权重更新规则来自于一种新的、高效的策略离线 actor-critic 算法, 其中含有经验重放、自我模仿学习和策略蒸馏的思想。

AlphaStar 算力需求

为了支持大批不同版本 AlphaStar 智能体的对战与更新,DeepMind 构建了一个大规模可拓展的分布式训练环境,其中使用了最新的谷歌 TPUv3,这个训练环境可以支持成群的 AlphaStar 智能体实例同时运行;星际 2 游戏主体也有数千个实例同步运行。AlphaStar league 的自我对战训练过程用了 14 天,每个 AlphaStar 智能体使用了 16 个 TPU,最终相当于每个智能体都有长达 200 年的游戏时间。训练结束后的模型在单块消费级 GPU 上就可以运行。

AlphaStar 的游戏表现

由于 AlphaStar 首先从人类玩家数据进行模仿学习,以及神经网络有一定的计算延时,它的操作频率其实比人类选手还要低一些。MaNa 的 APM 达到了平均 390,而 AlphaStar 却只有平均 280 左右而已。AlphaStar 的计算延时平均为 350 毫秒(从观察到做出行动)。(相比之下,以往基于固定策略和手工规则的星际 AI 会保持上千的 APM)

TB1Dt3rDQPoK1RjSZKbXXX1IXXa.png

DeepMind 也根据 AlphaStar 和 MaNa 的一局比赛制作了智能体视角和内部信息的可视化示意图如下:其中展示了神经网络接收到的原始数据(左下角小图中蓝色点),神经网络内部的激活状况(中下方左侧小图)、智能体考虑点击和建造建筑的地图区域示意(中下方右侧小图,这也可以理解为智能体的注意力关注的区域)、智能体的操作输出激活情况(右下角小图)以及胜率预测。图中同步也展示了 MaNa 的视角,游戏中 AlphaStar 是看不到对手的视角的。

TB1cLcnDPTpK1RjSZKPXXa3UpXa.gif

在文章开头我们提到,两次以 5:0 击败 TLO 和 MaNa 的 AlphaStar 是无需控制视角的,它可以直接读取地图上所有的可见内容。相比之下,人类选手显然需要手动把视角切换到地图的不同位置才能看到部分信息。从这个角度说,AlphaStar 有欺负人类选手的嫌疑。DeepMind 也针对这一点做了分析,他们的数据统计认为 AlphaStar 切换关注区域的速度大约是每分钟 30 次,这个次数和人类职业选手相当。

当然了,最好的办法还是做实验验证。所以 DeepMind 重新训练了需要自己控制视角的 AlphaStar ,也就是在直播中 MaNa 击败的那个版本(不过这个版本只训练了 7 天,而不是原始版本的 14 天)。这个版本的 AlphaStar 所能获取的信息仅限于视角包含的部分,指令也一样。DeepMind 提供的训练图表也显示出这带来了一定的表现下降(虽然仍然能较快地追上)。不过 DeepMind 认为表现下降的幅度非常轻微,也体现出了 AlphaStar 的强大表现主要还是要归功于学习到了有效的游戏策略和强力的微操。

TB1QfcnDPTpK1RjSZKPXXa3UpXa.png

DeepMind 的展望

虽然这次的模型用在了星际争霸 2  AI 上,但 DeepMind 认为这是个足够复杂、具有代表性的任务,用来解决这个任务的技术也可以用在更多其他的复杂问题上。比如这个为长序列建模设计的网络架构可以用在更多不完全信息的长序列建模任务中,比如天气预测、气候建模、语言理解等等。他们也会继续开发 AlphaStar 项目,并利用其中的技术收获改善更多的任务。

另一方面,DeepMind 认为此次设计的训练策略也是通往安全、鲁棒的 AI 的一条新路径。现阶段的 AI 系统的一大难题就是难以预测系统会在多少种不同的情况下发生失效,星际争霸的人类职业选手们取胜 AI 也往往就是依靠寻找并攻击 AI 的弱点和错误。AlphaStar 中提出的群体训练策略就是一种可靠得多、出错的可能性明显减小的训练策略。DeepMind 的研究人员们认为这种方法还有很多潜力可以挖掘,也许未来它就会成为安全因素非常关键的问题中的重要一环。而最终,DeepMind 希望可以创建出真正智慧的系统,帮助人类解决一些全球最重要、最基础的科学难题。

关于技术细节的更细致全面的介绍,DeepMind 也正在准备一篇论文,并计划投稿到期刊让同行评议。我们可以共同期待正式论文的发出。

部分资料参考 DeepMind 技术博客 https://deepmind.com/blog/alphastar-mastering-real-time-strategy-game-starcraft-ii/。雷锋网 AI 科技评论报道

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137995.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • android 空间分享到朋友圈,Android开发之微信分享到好友,朋友圈

    android 空间分享到朋友圈,Android开发之微信分享到好友,朋友圈3.快速集成第二步:配置AndroidManifest.xml下面清单文件的配置是全部的,没有的平台就是不需要配置1、添加权限2、添加activity信息(注意:tencent后面的appid要保持和您配置的QQ的appid一致)android:name=”com.mob.tools.MobUIShell”android:theme=”@android:style/Theme.Transluc…

  • C++:string 截取字符串

    C++:string 截取字符串stringstr=”123abc456″;inti=3;1取字符串的前i个字符str=str.Substring(0,i);//orstr=str.Remove(i,str.Length-i);2去掉字符串的前i个字符:str=str.Remove(0,i);//orstr=str.Substring(i);3从右边开始取…

  • oracle中schema指的是什么?

    oracle中schema指的是什么?

    2021年11月13日
  • tomcat7和tomcat8的websocket区别

    tomcat7和tomcat8的websocket区别tomcat8真正支持jsr-356(包含对websocket的支持),tomcat7部分版本的websocket实现不兼容jsr-356。websocket实现tomcat7.x与tomcat8.x有很大差异。在tomcat7中使用websocket需要定义一个servlet,然后继承WebSocketServlet,在tomcat8中使用websocke。出自:http://blog.csd

  • 常数变易法的原理解释_微分方程常数变易法

    常数变易法的原理解释_微分方程常数变易法高数看到常数变易法,不懂为什么要把C变成u,看了篇文章,感觉懂了转载自http://www.cnblogs.com/lookof/archive/2009/01/06/1370065.html注:本方法是对崔士襄教授写的《“常数变易法”来历的探讨》论文的解释。思路并非本人原创。特此注明。背景详见本人前一篇博文。      我们来看下面的式子:

    2022年10月24日
  • javas事件_java提供的事件处理模型

    javas事件_java提供的事件处理模型鼠标事件/*onclick:点击某个对象时触发ondblclick:双击某个对象时触发onmouseover:鼠标移入某个元素时触发onmouseout:鼠标移出某个元素时触发onmouseenter:鼠标进入某个元素时触发onmouseleave:鼠标离开某个元素时触发onmousedown:鼠标按下时触发onmouseup:鼠标抬起时触发onmousemove:鼠标被移动时…

    2022年10月26日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号