三步理解 AlphaStar 背后的黑科技

在Alpha Zero取得围棋领域的胜利之后,最近的大新闻是: AI又下一城,拿下了重磅即时战略游戏星际争霸。 为什幺我们说这个胜利的重要性不亚于当年的阿法狗? 这背后的黑科技对我们又有怎样的影响。 我虽不懂星际,但我懂得强化学习, 此番为大家讲述。

 

 

首先, 星际争霸, 是一个与围棋有着本质不同的游戏-那就是星际争霸是非完全信息下的博弈游戏。 这里的难点一个是 不完全信息 , 其次是需要 远期计划 , 另外就是 实时性与多主体博弈。

 

何为非完全信息, 你看所有的即时战略游戏, 从红警到星际,你没有刚刚到达过的区域都被一团战争迷雾所笼罩, 那里可能有对方的军队在采矿, 或者大批小兵集结, 这可能与我此刻的决策关系很大, 但是却不为我所知。 这与围棋这样的游戏有着本质的区别, 因为围棋这样的游戏, 即使策略在复杂, 你方和我方的情况都是一目了然的, 围棋游戏的复杂体现在策略空间的巨大导致的维度灾难, 然而始终都是你知我知的。

 

而星际这样的游戏, 却更加符合我们的真实生活, 如果你把真实的生活看成一场即时战略游戏, 从选择大学专业, 找工作, 到炒股, 你所了解到的信息, 永远是你需要知道的决策信息的一小部分, 你的对手,永远在黑色迷雾里行动。  这种黑雾, 对你的第一个挑战就是, 你要应对永恒的不确定性, 即使你有一个比目前水平强大10倍的大脑,  你依然生活在不确定性的迷雾里, 因为它是由于客观信息缺失造成的。 如果过度的渴望精确预测, 还可能由于在explore VS exploit 的权衡中偏向一端而走火入魔。

 

而多体博弈, 体现了策略建模的复杂性, 我方的最佳策略取决于有方策略,对方策略,以及盟友的策略,还有兵种的相克,组合带来的1+1大于2的过等等,游戏尽可能的模拟了真实的战争差。 星际争霸的挑战还有超大的动作空间(可能性超过围棋全部组合数百个数量级),游戏长度很长, 而且游戏初期做出的决定会影响最终的成败。但最关键的,星际相对围棋最大的技术挑战在于 非完全信息博弈 , 也是它和真实世界最接近和最有价值的地方。

 

 

下图是alpha Star 如何处理从输入的图像到神经网络提取的特征,最终到做出的决策(右下)以及预测的实时预测的胜率(右上),而我们最关注的是中间的部分。为了让大家了解alpha star 背后的底层技术, 我们就从最基本的ABC开始, 给大家引入:

 

A, 强化学习 + 深度监督学习框架

 

首先,这几年的深度学习进步主要用到的是监督学习技术, 监督学习容易取得突破时因为它们最好训练,监督数据自带正确答案, 机器每分钟都在学到有用信息。 而如果我们要首先更普世的人工智能, 监督学习时不够用的, 因为智能体行为的本质时根据未来的目标制定当下的行为策略,这点监督学习无能为例, 而是需要强化学习的框架。

 

 

想像一下我们是人工智能体,我们有强化学习和监督学习可以选择,但干的事情是不一样的。面对一只老虎的时候,如果只有监督学习就会反映出老虎两个字,之后由程序员来告诉AI该做什幺,但如果有强化学习就是由AI自己决定逃跑还是战斗,哪一个更容易通往通用智能,是显而易见的,对于老虎在你面前,能够提前预测出老虎即将到来,对智能体的生存是有意义的,但对于更加复杂的,无法由程序员事先编码的情景,就需要靠强化学习来决定了你的行为。

 

然而无论是强化学习还是监督学习, 其背后都是神经网络, 这个模拟人脑智能的抽象模型作为载体实现, 神经网络把一种信号,转化为另一种信号, 实现信息的抽取和转化。在Alpha Star里我们用到LSTM这种基于时间反馈的神经网络作为内核。

 

当然, 强化学习是一个对未来的优化问题, 未来有多长, 几步, 几百部, 还是几万部?  如果你走完了一万步才知道你最后的结果对不对, 那幺这个信号根本不足以支撑机器的学习, 因为学的太慢。 就好比一个人在信息的荒漠里行走, 看上去一直在劳苦, 实则劳而无功。

 

DeepMind  强化学习教父David Silver 喊出了 AI = DL + RL , 意思就是为了解决这个问题, 我们可以先用监督学习让神经网络学习, 监督学习机器每时每刻都知道正确或者错误, 而后再上强化学习, 这样让机器学习到从当下到未来的战略思考。

 

这就是实现alpha star最基本的框架。  监督学习为首,强化学习跟上。 那个LSTM网络先要不停的看以往人类选手的比赛记录, 并预测它们的行动和比赛结果, 直到得到一个baseline水平。  这点, 也同时让我们想到Karl Friston所提出的自由能原理和predictive coding法则。 智能体必须把预测外部世界的变化作为核心目标来建立自己内在的representation(世界表征)。 这里的监督学习过程, 可以看作不停的预测外部世界, 减少预测误差,建立世界表征的过程。 下图我们可以看到alphastar 在监督学习监督就已经达到一定的水平

 

 

图片描述训练成绩和训练时间的关系, 我们看到在0之前的训练代表机器单纯靠监督学习达到的基准线, 而后是强化学习阶段,我们看到机器在第8天开始超越TLO的水平(世界排名44), 在第14天开始达到MaNa水平(职业排名13)

 

B  马尔可夫 vs 局部马尔可夫决策框架

 

强化学习本质上还是一个数学优化优化算法。 它的起初的成功得自一个称为Markov决策的框架。 所谓的马尔可夫, 就像物理把原子看成一个行星轨道模型一样, 是一种对真实问题的霸王硬上弓的强行简化,

 

首先你把真实过程分解为无数离散的时刻,这样, 无论问题多复杂,都可以分解为状态(state)- 行为(action)- 奖励(reward)- 策略(policy)四要素。状态是每个时刻你拥有的和决策相关的信息总和,行为是你的决定, 奖励是你的此刻收益。 而策略就是从状态到行为的对应关系。后所谓的马尔可夫,就是说, 当下的行为决策只和当下的状态相关。

 

 

其实做马尔可夫决策模型的人脑子里的世界就是一个经典的方格迷宫。  你的状态就是你所在的方格, 你的行为就是上下左右走,你的奖励是中间的加号。 行走的过程每一步都只与上一步相关,此刻拥有绝对信息(位置),因此可以简化为下图b的马尔科夫决策图框架。

 

 

a

 

看到这个你是不是觉得和星际争霸相去甚远我在骗你呢? No! .   事实上, 如果你进行比较凶狠的简化,还真的差距不大。  首先, 星际游戏给它拆解开无非包含这样的几个步骤:  1,收集资源   2, 建立生产单元   3, 建立军事单元和武装  4,  部队集结并摧毁敌方生产和军事单元 。 所谓的战略,首先是在这些不同步骤(状态)之间的顺序和时间调配。 当然你要说地图实在太大太复杂了, 你不要忘了深度学习的核心思维, 特征抽取, 请看下图, 机器眼里的星际争霸地图。

 

 

机器眼里的星际争霸地图, 就是这样一个离散的单元特征图。上图左边的大图每个格子里有不同的单位,显示整体的布局, 然后对于不同的核心信息, 我们可以又有右边分开的格子图表示(比如某种敌方单元的分布)。  大家是不是想到了卷积网络眼中的特征图?  如果你把这样的特征图看成机器真正“行动”的地图, 你看是不是它就和刚刚那个机器走方格游戏的距离大大拉近?  我们有离散的状态, 可以通过一个个的格子空间表示,然后可以决定采用的动作,此刻的动作决定下一刻的状态, 这些都和走方格游戏类似, 只不过特征很多很复杂,一次要控制多个单元而已。

 

稍等, 此处还有一个特点是刚刚说的马尔可夫框架所不能包含的,那就是特征图里面有那幺多黑色区域啊! 这些黑色区域代表了未知,未知里面敌方的部队可能在集结, 说明当下的状态不包含决定我的决策的所有信息了 。

 

那怎幺办呢? 此处马尔可夫框架很自然的扩展到局部马尔可夫框架。不要忘记神经网路是有想象力的,它可以脑补黑色区域里的东西。 如果你通过想象填充了那些黑色区域, 你就再一次回到了马尔可夫的世界。

 

怎幺脑补? 你想象一下你自己如果要预测一下明天发生什幺, 你第一步要做的是不是会议昨天做过什幺呢?  是的, 我们的记忆, 不是帮助你追忆似水年华,而是更好的预测未来(此处自行联想predictive coding 预测编码理论)!

 

我们说神经网络是一个巨大的函数模拟器, 如果你要用一个神经网络把过去和当下的信息综合起来, 然后拟合未来的画面,这个神经网络就是循环神经网络RNN, 然后用神经网络来学习这个函数,这就自然的引入了深度强化学习。通过数据可以模拟函数,有了函数就可以把值函数的问题解决。它是类似模仿生物工作记忆的原理,信息放在记忆里面,将其作为决策的依据。RNN的网络结构和前向神经网络差距并不大,只是多了一个时间转移矩阵,即当下隐藏的状态再到下一步隐藏状态的连接。

 

这个连接实际上是传递当下的信息到下一刻的过程,这个传递过程中包含了记忆,我们可以把过去的信息往将来不停的迭代,于是神经网络细胞当中就含有过去很多时刻的记忆,其实就是生物的Working Memory。LSTM只是在RNN的基础上多了一记忆细胞层,可以把过去的信息和当下的信息隔离开来,过去的信息直接在Cell运行,当下的决策在Hidden State里面运行。

 

加入RNN(LSTM)的神经网络,可以极好的根据对过去信息的整合来预测那些黑色区域里可能是有敌军部队还是有矿藏, 就可以用来驾驭星际争霸。

 

 

RNN随时间展开的反向传播, U是隐层连接

 

 

LSTM: 加入Cell

 

lstm网络中motif(重复单元),通过增加memory cell 引入动态的可训练的记忆单元

 

C  技术细节创新

 

刚刚说的大框架, 可以帮助我们解决很多动作类游戏(doom)或真实世界的空间导航问题(deepmind: navigation in complex world)。 但是没有一些关键细节的创新, 依然无法在星际这样的游戏里取胜。 我们看看星际具体使用了哪几个新技术呢?

 

1, 多任务联合训练: 星际争霸最大的任务“赢得战争”里其实包含无数小的任务单元,比如对不同种类矿物的采集, 对不同敌军单位的攻击等, 这些可以分开训练,分别设定奖励函数, 这些小的任务会让整个游戏的学习加速很多。 这种把最难的任务分解为很多基本任务分开训练的思路, 应该可以被需要应用强化学习的工业应用大量采纳。

 

2.   多体博弈问题, 保留所有训练中产生的历史版本, 并在其之间进行对战, 这有点类似于生物“基因池”的概念。 这个过程里,我们可以做到不会把某些个体学到的有效信息轻易遗忘,而是在多体博弈里有效的运用所有已经学会的东西, 同时选择出那些最强的策略, 最终的训练结果是一个达到纳什均衡状态的最强策略池, 这不得不让人联想到进化算法, 让人想到不同AI算法的融合趋势。 这个不同策略的博弈过程, 也是alphastart对未来的智能算法最有启发的部分之一。

 

3, RNN联合注意力attention框架改进 : Pointer Networks。我们直到所有RNN(lstm) 在当下序列建模里的成就都和attention机制的结合有关。 而pointer network又对之前的attention进行了改进, 用输出的结果直接反向影响注意力,决定需要注意的对象, 并且这个输出的尺寸是可变的。

 

 

pointer network, 根据网络输出反向决定attention焦点(所要关注的输入信息)的框架, 左边是传统seq2seq网络, 右边是新引入的框架。 Pointer Networks 2017

 

4   自回归模型。 这里就牵涉到策略的细节表示, 星际游戏的策略是典型的动作序列,而且在不完全的马尔可夫决策框架下所有决策取决于历史, 因此对策略的表达方法用到了自回归的思想, 首先把当下的动作决策表述为所有过去动作为条件的一个条件概率,然后假定这些过去的动作对当下的影响是独立的, 所以可以写成连乘的形式:

 

 

5, 关于和人类的成绩比较 : 有的人在阿法start的结果刚出来的时候说这应该是机器可以在单位时间能够操控更多的动作导致,事实上deepmind对机器的行为做了诸多限制, 让它不是单纯因为“速度快” 这种愚蠢的原因赢得人类。

 

阿法star对我们的启示:

 

这一次的alpha star,依然是有人说这不过是谷歌的广告, 强化学习目前是 处在上升期的人工智能技术, 据这张非常表格非常粗糙的估计, 深度强化学习的技术成熟期在未来5-10年, 此时此刻, 正类似于深度学习在2010的状况。

 

 

然而我们毫无疑问看到了AI在非完全信息博弈, 这个与真实世界的大多数任务非常接近的框架所取得的巨大进步。  AI是否会很快开始指导一场真正的人类战争? 我想依然没有那幺容易, 一个最核心的问题依然是电脑游戏是可以在大脑上无限取得数据的, alphastar在短短时间里经历了人类选手200年的训练才取得了如此的成就。 想象一下, 如果到了真实世界, AI和人类的数据取得速度差不太多, 那幺谁强谁弱呢?

 

因此, alphastar虽然诠释了AI的一个新的篇章, 却无需让我们太恐慌, 我们想的更多的应该是, 如何用alphastar里分解出的新的技术, 真正提高RL在工业里的使用效率, 比如 如果做出能够进行更好多体协作,甚至直接和人进行配合的工业机器人,如何让它帮助我们得到更好的能源调控策略一类的具体任务。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注