广告位API接口通信错误,查看德得广告获取帮助

电竞之家_品味电竞生活移动版

主页 > 刀塔2 >

揭秘星际2人工智能AlphaStar:DeepMind科学家回应一切

25 日凌晨,人工智能 AlphaStar 与职业玩家 MaNa 进行了一场史无前例的「人机大战」:虽然之前在内部比赛中 AI 十战十胜,但现场比赛中,MaNa 机智地戏耍了对手,为人类取得了一场胜利。赛后,DeepMind 科学家、AlphaStar 项目的领导者 Oriol Vinyals 和 David Silver 在 Reddit 上回答了人们关心的很多问题。与此同时,曾与人工智能交手的两位职业玩家,Liquid 战队的 TLO 与 MaNa 也作为嘉宾回答了一些有趣的问题。

例如:对于 AI 研究者来说,打星际 2 的能力是不是应该写进简历里?

网友 NexYY:我应该把会打星际争霸 2 作为一项技能写在简历里证明我是一个有抱负的 AI 开发者吗?有时我沉迷于打星际,而不是提高写代码的能力,我常常因此感到迷茫……

Oriol Vinyals:在比赛那天我打了好多盘星际,我得说这是非常好的体验——特别是考虑到它塑造了我在人工智能、学习计算机科学等方面的动力。所以如果你想完成一个好简历,请把星际争霸 2 当做一个爱好写进去,祝你好运!

问:从 pysc2 的早期版本(和目前的 master 版本)来看,似乎 DeepMind 开发的方法是基于对人类游戏过程的完全模仿,如 bot 无法获得屏幕视角外任何东西的信息。而这个版本似乎放开了这些限制,因为要素图层现在是「全地图大小」,而且添加了新的要素。是这样吗?如果是,那这与从 API 中获取原始数据并将其简单抽象成结构化数据来作为神经网络的输入有什么真正的不同呢?DeepMind 博客中甚至表明,直接将原始数据和属性以列表形式的数据输入神经网络,这似乎表明你们不再真正使用要素图层了?

Oriol Vinyals:事实上,有了基于镜头的(和不基于镜头的)输入界面,智能体知道已经构建了什么,因为我们将其作为列表(由神经网络 Transformer 进一步处理)输入。一般来说,即使你没有那种列表,智能体也会知道已经构建了什么,因为智能体的记忆(LSTM)会跟踪所有之前发生的动作,以及过去访问的所有视图的位置。

问:当我使用 pysc2 时,我发现要了解已经构建、正在进行、已经完成的事物是一件非常困难的事,因为我必须一直平移相机视图来获取这些信息。camera_interface 方法是如何保存这些信息的?即使在 camera_interface 模式下,通过原始数据访问(如 unitTypeID、建筑物等的计数),大量数据仍是完全可用的?

Oriol Vinyals:是的,我们的确放开了智能体的视角,主要是因为算力原因——没有屏幕移动的游戏大约会有 1000 步,而有屏幕移动的游戏步数会是前者的 2-3 倍。我们的确为迷你地图使用了要素图层,但是对于屏幕,你可以认为要素列表「转换」了那些信息。实际上,事实证明,即使是在处理图像上,将每个像素单独作为一个列表效果也很好!

问:达到当前水平需要玩多少把游戏?换句话说,在你们的案例中,200 年游戏时间一共打了多少把游戏?

Oriol Vinyals:如果平均每场比赛持续 10 分钟,这相当于大约 1000 万场比赛。不过请注意,并不是所有智能体的训练时间都相当于 200 年的游戏时间,这只是接受训练最多的智能体的训练量。

问:所学知识迁移到其它地图效果如何?Oriol 在 discord 上提到它在其它地图上「有效」。我们都很好奇在哪个地图上最有效,所以现在可以揭露答案吗?根据我的个人观察,AlphaStar 似乎很大程度依赖于记忆中的地图信息。它有可能在没见过的地图上执行很好的 wall-off 或 proxy cheese 吗?在全新地图上玩时,MMR 的估计差异是什么?

Oriol Vinyals:参考以上答案。

微信图片_20190126222704.jpg

David Silver(图中黑衣者)与 Oriol Vinyals 在线回答人们有关 AlphaStar 的问题。

问:智能体对「save money for X」这个概念了解得怎么样?这不是一个小问题,因为如果你们从回放中学习,并考虑玩家的无作为行动(NOOP),强化学习算法通常会认为 NOOP 是在游戏中非理想点时的最佳决策。所以你们怎么处理「save money for X」,以及在学习阶段是否排除了 NOOP?

David Silver:实际上,作为其行动的一部分,AlphaStar 会提前选择执行多少 NOOP。最开始这是从监督数据中学到的,以便反映人类游戏玩法,也就是说 AlphaStar 通常以人类玩家相似的速度「点击」。然后通过强化学习来完善,选择减少或增加 NOOP 次数。所以,「save money for X」可以通过提前决定实施几个 NOOP 来轻松实现。

问:你们最终使用的步长是多少?在博客中你们写道,星际的每帧视频被用作输入的一步。然而,你们也提到过平均处理时长是 50 毫秒,而这会超过实际时间(给定 22.4fps,需要<46 毫秒)。所以你们是否要求每 1 步,或每 2 步、3 步是动态的?

Oriol Vinyals:我们要求每一步是动态的,但由于延迟,该操作将仅在某一步结束后处理(即我们是异步操作)。另一个选择是锁定该步,但这样会造成玩家的游戏体验不佳。

问:APM 是怎么回事?我印象中 SC2 LE 被强行限制在 180 WPM,但是我看你们的比赛中,AS 的平均 APM 似乎在很长一段时间内都远远超过这个水平。DeepMind 的博客上展示了相关图表和数字,但没有解释为什么 APM 如此之高。

Oriol Vinyals:这个问题问得好,这也是我们打算解释的。我们咨询了 TLO 和暴雪关于 APM 的意见,并对其增加了一个硬性限制。具体来说,我们在 5 秒内设置 APM 最大为 600,15 秒内为 400,30 秒内为 320,60 秒内为 300。如果智能体在此期间发出了更多动作,我们会删除/忽略那些动作。这些值取自人类玩家的统计数据。暴雪在其 APM 计算中对某些动作进行了多次计算(前面提到的数字是指 pysc2 中「智能体的动作」)。同时,我们的智能体还使用模仿学习,这意味着我们经常看到一些非常「垃圾」的动作。也就是说,并非所有动作都是有效动作。有些人已经在 Reddit 上指出了这一点——AlphaStar 的有效 APM(或 EPM)相当低。我们很高兴能够听到社区的反馈,因为我们只咨询了少数人。我们将考虑所有的反馈。

问:PBT 中需要多少不同的智能体来保持足够的多样性以防止灾难性遗忘?这是如何随着智能体数量的增加而扩展的?还是只需要几个智能体就能保持稳健性?这与历史 checkpoint 的有效通常策略有什么可比性吗?

David Silver:我们保留了每个智能体的旧版本作为 AlphaStar 联赛的竞争对手。当前的智能体通常根据对手的胜率与这些竞争者比赛。这样能够很好地防止灾难性遗忘,因为智能体必须一直打败所有以前的版本。我们也尝试了一些其他的多智能体学习策略,发现这个方法非常稳健。此外,增加 AlphaStar 联赛的多样性非常重要。关于扩展我们很难给出精确的数字,但根据我们的经验,丰富联赛的策略空间有助于使终版的智能体更加强大。

问:从 TPU 和 CPU 的角度来看,总计算时间是怎样的?

(责任编辑:波少)
广告位API接口通信错误,查看德得广告获取帮助