返回栏目
首页国内 • 正文

《星际2》最强AI复现计划:如何打造自己的AlphaStar(2)

发布时间:  浏览: 次  作者:莫言

在这种情况下,我们只需要针对10个数字作训练,例子数量呈指数级缩减。但它并不能直接解决“从图像中识别数字串”这个问题,因为还需面对“发现原始输入图像的哪些区域包含有意义的数字并截取”的难题。我们要仔细制定规则来确认哪些区域包含数字及其顺序,这是OCR任务中常用的方法,但恰如批评所言,这属于“人工+智能”。

3) 可观测的输入:整个图像,一个初始的矩形区域;期望产生的输出:矩形区域中的图像内容“0……9”,矩形区域在图像上的下一步移动,是否终止检测。

这就开始脱离监督学习的范式了。系统并非一次性的完成对输入的分析,产生输出,而是试图做一个决策流,每个步骤都要根据一个本步观测(输入)得到一个相应的决策(输出)。而一个步骤的决策又会影响下一个步骤的观测。如下图所示:

它更加符合人类智能解决实际问题的方式,而 游戏环境则是这类方案天然的试炼场 。这也是通过人工智能程序玩游戏,在近年来获得如此关注的原因之一。事实上:

把上面流程中的“数字串原始图像”换成“星际争霸2游戏环境”,

把判定和决策的输出结果换成上面讨论过的单步宏操作,

把“截取出的图像块”换成上面讨论过的AI的对游戏的观测,

我们就基本定义好了 “玩星际争霸的AI”所面对的问题

《星际2》最强AI复现计划:如何打造自己的AlphaStar

AlphaStar面对的就是这样一个问题,我们从它的博客文章[2]提到的若干技术要素出发,对其训练方法进行解说与猜测。它使用的这套技术分为如下三个大类:

宏观训练策 略

单个智能体强化学习策略

智能体的构造和训练的具体实现

拆解:AlphaStar的训练策略

1. 宏观的群体学习策略

简略地讲,AlphaStar 的总体训练过程,是一组 多回合的“AI联赛” 。在介绍联赛规则之前,我们先讲为什么要训练一群,而不是一个AI,来挑战星际争霸2。首先,星际争霸2本质上是一个对抗性游戏,玩家追求胜利需要考虑对手的活动,并无全局意义上的最优策略。其次,相比于围棋,星际争霸2对战场状态只能作不完全观测,且其状态空间更加庞大,导致一系列AI会各有偏好并相互克制。

对于一个的AI算法来说,强化学习任务中的诸要素,自然地分作两类: 受控变量和外界环境 。在学习的每个时间点,AI选择好的动作和观测结果,是两边交换信息的载体。

算法设计者须将外界环境视为黑箱,不能或不会在学习过程中加以控制。比如设计一个 AI 来挑战 Atari 主机中的某个游戏,算法设计者只能启动强化学习 AI 后从旁观察。对于星际争霸这类对战式的任务,被AI视为“外界环境”的元素,除游戏程序之外,对手一方同样满足:

不在AI的控制范围

对“本” AI 的行动作出反馈

影响游戏状态,从而影响“本” AI 在下一个时间节点取得的观测结果

因此解决方案中需要考虑对手,为此构建的学习环境中也需要包含一个对手。

AlphaStar从一个单一的 “种子选手” 启动联赛,每一轮挑选有潜力的互相挑战,对优胜AI略微变通后令其加入扩大联赛队伍。一轮接一轮地将联赛开展下去。启动的种子AI来自基础的监督学习:从Blizzard战网下载人类玩家对战数据,训练深度神经网络学习每局对战每个时刻的(游戏状态,玩家操作)的对应关系。(更详细的,我们猜测应该是若干步的游戏状态序列和操作流之间的对应关系)

获得启动种子后的联赛式训练见下图(取自Deepmind blog)

博客中详细介绍的是第四轮训练Network-006的过程。首先我们注意到这个训练过程能够进行就有两个前提条件:i) 本轮的Network-006是前一轮Network-004的两个变异后裔之一。ii)Network-006被选中参加本轮联赛的比赛,以绿色表示,而每一轮当中不参加比赛的AI选手以蓝色表示。无论是否参加比赛,一轮当中所有的AI选手都会被原封不动地拷贝到下一轮。

之后,Network-006本场比赛的对手选定为Network-008,设定好学习参数,就可以进行强化学习训练了。注意Network-008在这次训练中充当“陪练”的角色,其本身的网络参数不会获得调整。Network-006将Network-008当作靶子来训练,会习得专门对付008的方案。至于008的出场是根据“Matchmaking Probability”算法抽取的,大约是在随机分布的基础上,让高等级选手出场的机会略多,具体计算方式必须等论文出来才能确定。

“星际争霸AI大联盟”始终保留其历史上的所有会员,每个AI都有出场机会。这样可以避免学习终局的那些高等级AI,只会针对其它高等级AI,反而不懂如何应对菜鸟的事件。训练的时候还会给一些 比较弱的人工指导 ,比如“初期鼓励出狂战士”等。这类指导策略也是随机选取的,为的是进一步提升下一轮联盟中AI选手的多样性。

从他们博文看来,联赛举行了800轮之多。最后一轮过后,“星际争霸AI大联盟”中存在高达877个训练过的AI神经网络。在测试阶段出战者的选择方式,则是从这些AI选手中以Nash Distribution采样。

2. 单个 AI 的训练

下面我们分析特定轮比赛中AI个体的学习问题。 这是一个强化学习任务

在“强化学习”中,AI 自行尝试输出不同的决策,训练者反馈给 AI 激励和新的数据。这些配对数据用于后期的“监督学习”,从机器在探索中得到的数据对,来学习环境输入与操作输出这两大要素之间的联系,在星际争霸2单个AI训练中,我们将这两个层面称作 “强化学习探索” “构建 AI 模型本体来学习样本数据中的关联”

从“种子”选手开始,每个 AI 模型就继承了以前的模型从它们对战经验数据中学习到的决策策略。而首个种子选手继承的是人类选手的经验。一旦启动学习,AI 就立即面临强化学习领域经典的“守成探索不能得兼”(exploitation-vs-exploration)的问题。

相关文章Related

返回栏目>>

首页   |   国际   |   国内   |   财经   |   科技   |   娱乐   |   汽车   |   房产   |   教育   |   军事   |   生活   

Copyright © 2002-2017 eastdaily.net.cn. 东方日报网 版权所有