北京时间 1 月 25 日凌晨 2 点, DeepMind 直播了他们的 AI AlphaStar 和人类顶尖的职业电竞选手对战星际争霸 2。根据 DeepMind 介绍,AlphaStar 在 2018 年 12 月 10 日和 19 日先后以 5:0 全胜的战绩击败了 2 位国际顶级的人类选手,此次直播的过程中也播放了之前比赛的重放。虽然 AlphaStar 在最后一场现场直播的比赛中惜败,但是仍然保持对人类 10 胜 1 败的战绩。
星际在全球玩家众多,是最流行的一款实时策略游戏之一,而 DeepMind 汇聚了全球最顶尖的人工智能科学家,似乎两者出现在同一个场景里有些违和。大众刻板印象里面,科学家一般都与实验科研为伍,怎么会对玩星际感兴趣呢?
其实如果大家对于 DeepMind 这个公司有所了解的话,就会发现这个世界一流的人工智能团队实际就是一路打游戏过来的。DeepMind 的创始人 Demis Hassabis 自小酷爱国际象棋,13 岁就成为了国际象棋大师。之后他于 2010 年成立 DeepMind,专门开发能够玩游戏的人工智能。这个时候人工智能领域大火,DeepMind 顺势推出了自己的深度强化学习 (Deep Reinforcement Learning),并于 2014 年在 Atari 游戏里面超过了人类水平。2014 年之后 DeepMind 被 Google 收购,借助 Google 的资源优势继续研发,从此在游戏领域一骑绝尘。2016 年和 2017 年 DeepMind 的 AI 先后战胜围棋世界冠军李世石和柯洁。接着 DeepMind 又推出了 AlphaZero,完全不借助人类棋谱,几个小时之内就在围棋,国际象棋和日本将棋上超过了人类水平。
DeepMind 之所以对于游戏如此热衷,除了创始人的游戏情节以外,最关键的还是游戏本身就是绝佳的人工智能测试环境。游戏就是人为创造的,用以帮助人来习得某个技能或者测试技能水平的工具。游戏通过提供明确的反馈,使人可以在短期内不断重复某些行为,从而习得技能。比如很多棋类游戏的设计初衷就是锻炼分析决策能力。当然也有专门用来让人获得愉悦的游戏,比如说许多网络游戏。这些游戏一般会有很强奖励(比如获得金币之类),获得奖励的速度也很快,这就是这类游戏容易让人沉迷的原因。
回过头来说星际本身。为什么 DeepMind 的科学家们看中了这么一款游戏呢?原因主要是星际争霸有这样两个特点:
第一星际争霸的动作空间和策略非常复杂。围棋虽然每次落子的变化也很多,但是每次毕竟只是需要根据盘面挑选落子地方,还算比较简单。相对而言,星际争霸里面的的动作空间就很复杂,玩家需要:
1)积累资源
2)建设工厂
3)组建军队
4)消灭对方的工事
每一个动作之间相互有影响,许多动作产生的后果是很长期的
第二玩家没有全部的信息。基本上来说玩家只知道显示在屏幕上面的一小部分区域的信息。而真正的地图是很大。所以如果他们想要知道对手的信息,需要派出专门的侦查兵
为了这次的对战,DeepMind 其实已经准备已久。去年 DeepMind 和暴雪联合推出了基于星际争霸 2 的强化学习测试平台并且发布了论文《StarCraft II: A New Challenge for Reinforcement Learning》。这次参与对战的 AI 也是从这个平台上训练得到的。这里主要解答一些大家可能关心的问题。AlphaStar 的视角能够看到的是什么信息?它的操作和人是否一样?有没有作弊?
AlphaStar 到底是看到的什么呢?
我们都知道人类玩家在玩星际的时候看到的是计算机屏幕的信息(如果是团战可能还会有场下交流)。计算机屏幕上面的信息是标准的视频流。人类玩家首先做的实际上是识别哪个士兵,哪个是工厂。在计算机视觉里面,这些被称为物体识别和场景识别任务。值得一提的是识别这些人物本身很困难,但和策略的部分关系不大。所以 Deepmind 对问题进行了一些简化。 AlphaStar 以图像的方式从游戏引擎里面读取特征信息,这些图像直接标记了哪里是兵或者工厂。你可以想象,AlphaStar 有很多只眼睛,有的看到兵,有的看到所有的工厂。除了计算机屏幕上面的信息,AlphaStar 还可以看到一个粗略的全景地图,可以另外知道一些全局的信息,比如当前有多少资源,多少兵力等等。AlphaStar 看到的视角实际上长得像是下面这个样子。
那么 AlphaStar 是怎么进行操作呢?
人类玩家都知道玩星际很多时候是拼手速。操作速度快的人基本可以碾压操作速度慢的人。人类一般一分钟进行 30 到 300 次操作。最厉害的人类选手大概是每分钟 500 次操作。理论上计算机的操作速度远远超过人类,所以如果不限定操作速度的话,比较基本上没有意义了。在 DeepMind 发布的工具包里面,操作速度被限制为每分钟 180 次。除此以外,DeepMind 尽量让 AlphaStar 的操作和人的操作是一样的。人类玩家的正常操作一般来说是一个鼠标键盘序列。比如说要移动兵的话,人一般会先按 m 代表进入 move 操作,再按 shift 同时点击要移动的兵。AlphaStar 的操作也会产生类似的序列。
根据上面的信息,我们知道 AlphaStar 的输入和输出其实和人类选手是差不多的,并没有特殊作弊的行为。从这次的比赛视频来看,AlphaStar 在选择策略上如同职业选手般娴熟,非常令人惊叹。那么 Deepmind 大概是用了什么样的方法来训练 AlphaStar 的呢?Deepmind 在赛后发布了一篇博客进行了介绍。据说相应的论文正在同行评议中,相信不久就会将看到细节。这里我结合博客内容和我自己相关的经验进行下简单介绍。
Deepmind AI 的深度网络由多个模块构成,看起来主要的网络是一个被称为 Transformer 和 LSTM 的网络结构构建。这类网络最重要的特点就是有很长的记忆能力,可以在很长的序列里面自动找到数据中的关联,早期这类网络是在自然语言处理里面成熟的。之所以这次使用这样的网络结构,我猜测主要是星际里面的很多动作的影响时间很长,比如说开始建一个工厂到真正这个工厂开始能够提供物资需要过很久。训练的过程和初代版的 AlphaGo 类似,结合了有监督学习 (Supervised Learning) 和强化学习 (Reinforcement Learning)。这两种学习方法其实我们人类也常用 — 有监督学习相当于从课本上面学习,而强化学习像是从实践中摸索。有监督学习和强化学习并用,就相当一个人先从课本上学习大概知识然后学以致用,在实践中不断改进。
在 AlphaStar 中,第一步的训练是在暴雪提供的数据集上进行的有监督学习。据 DeepMind 称,经过有监督学习,AlphaStar 对暴雪的内置 AI 能保持 95% 上的胜率。接下来很多经过有监督学习的 AlphaStar 进行联赛 (League),相互对打,在这个过程中使用强化学习不断提升能力。下面这个图展示了这两个阶段水平的提升。
可以看出,有监督学习使得 AlphaStar 达到人类中的金牌水平(Gold Level),在进行了 8 天强化学习之后,AlphaStar 最终超过人类选手 TLO。14 天之后超过了人类选手 MaNa。值得一提的是,在 14 天的强化学习训练期间,每个 AlphaStar 相当于完成了 200 年的游戏试验。尤其是多个 AlphaStar 相互对战,需要的计算量极其巨大。为了加快计算速度 DeepMind 使用了 Google's v3 TPU (向量计算单元)开发了一个分布式训练系统。TPU (Tensor processing unit) 是 Google 开发的专门用于人工智能的处理器,从 2016 年推出,至今已经演进到第三代。每一个 AlphaStar 智能体使用了 16 块 三代 TPU,这是相当惊人的计算能力 — 要知道几个小时灭掉 AlphaGo 的 AlphaZero 在对弈的时候也不过只用了 4 块一代 TPU。
AlphaStar 之所以能够使用 TPU 的强大算力,得益于从 16 年起 Deepmind 将主要研究平台转移到了 TensorFlow 上面。TensorFlow 是 Google 开发的开源机器学习平台,如今也是最受欢迎机器学习系统之一。TPU 就是专门为 TensorFlow 开发的硬件。除了 DeepMind 以外,Google 大部分的人工智能系统也都是基于 TensorFlow。
芯片领域有一个摩尔定律,就是计算力随着时间是指数增长的。其实人工智能领域也有着类似的规律,比如说 AlphaGo 对阵李世石的时候人类尚可一战,不久之后对战柯洁人已经完全不在 一个量级。相信随着时间的前进,AlphaStar 也会不断的强大,同时在更多的问题上人工智能也会超过人类。许多人因此担忧人会随着人工智能的发展人变得多余。其实我们大可不必担忧,虽然如今人工智能在许多地方取得了不俗的成就,但其本质仍然是人类的工具。人类历史其实就是一个不断的发明创造新的工具的历史,从火的使用,到蒸汽机,再到如今的人工智能,无一不是如此。在新的时代,新的人类必然会懂得如何去使用全新的工具。AlphaStar 的星际争霸首秀,可能是这个新的时代的又一个序章。回到文初的问题,为什么科学家们会对星际争霸如此痴迷 — 因为这不仅是游戏里的星际,更是人类的星辰大海。
全部0条评论
快来发表一下你的评论吧 !