奎克的藏经阁 · MinerU 解析内容

AI 3.0(畅销书《复杂》作者、复杂系统前沿科学家梅拉妮·米歇尔,历经10年思考,厘清人工智能与人类智能的全新力作,全景式地展现了人工智能的...

491 个 PDF 物理页 · 本页显示文件第 251–260 页

PDF 物理页索引 250

文件中的第 251 页 · 印刷页码:未识别

哈萨比斯指出:“顶级围棋棋手区别于常人的东西是他们的直觉,我们在AlphaGo中所做的就是将这种所谓的直觉引入神经网络中。” <sup>26</sup>

从随机选择到倾向选择<sub>,</sub>AlphaGo这样工作

现在已经有多个不同版本的AlphaGo了,为了区分它们,DeepMind开始以它们击败的人类围棋冠军的名字来给程序命名,比如AlphaGo Fan和AlphaGo Lee。AlphaGo Fan和AlphaGoLee都使用了深度Q学习、“蒙特卡洛树搜索”(Monte Carlotree search)、监督学习等方法与围棋专业知识进行融合。

在AlphaGo战胜李世石一年之后,DeepMind开发了一个新版本的程序,比AlphaGo更简单也更高级,这个新版本被称为AlphaGo Zero。与之前的版本不同的是:除了围棋规则之外,AlphaGo Zero对围棋的知识是从“零”开始的 <sup>27</sup> 。在AlphaGoLee与AlphaGo Zero的100场对弈中,AlphaGo Zero取得了完胜。此外,DeepMind采用了同样的方法(尽管具有不同的网络和不同的内置游戏规则)来让程序学习下国际象棋和将棋(也称为日本象棋),其作者将这些方法的集合称为AlphaZero 28。接下来,我将描述AlphaGo Zero的工作原理,但为简单起见,我将此版本简称为AlphaGo。

PDF 物理页索引 251

文件中的第 252 页 · 印刷页码:未识别

“直觉”这个词有一种神秘的光环,如果你觉得AlphaGo也有直觉,那么这种直觉源自它对深度Q学习和蒙特卡洛树搜索这些方法的巧妙结合。让我们花点时间来解读一下蒙特卡洛树搜索。首先,蒙特卡洛是微小的摩纳哥公国 <sup>(29)</sup> 最有魅力的城市,坐落于法国里维埃拉(Riviera)地区,以其豪华赌场、赛车和频繁在詹姆斯·邦德(James Bond)的电影中出现而闻名。在科学和数学领域,蒙特卡洛指的是一系列计算机算法,即所谓的“蒙特卡洛方法”(Monte Carlo method),这一方法最初用在曼哈顿计划中来帮助设计原子弹。这个名字来源于一个想法:就像蒙特卡洛赌场那标志性的快速旋转的轮盘一样,一定程度的随机性可被用在计算机上来解决复杂的数学问题。

蒙特卡洛树搜索是专门为计算机游戏程序设计的蒙特卡洛方法的一个版本。与深蓝的评估函数的工作原理类似,蒙特卡洛树搜索用于为一个给定棋局的每一种可能的行棋方式来分配分数。可是,正如我在上面所解释的那样,在博弈树中使用大量的前瞻操作对围棋来说是不可行的,并且还没有人能为围棋中的棋局提出一个良好的评估函数。因此,蒙特卡洛树搜索的工作原理肯定有所不同。

图9-5是蒙特卡洛树搜索的原理示意图。首先,看图中(A)部分,黑色的圆点代表当前的棋局,也就是当前棋盘上棋子的布局。假设我们的围棋程序执黑子,并且现在是黑子行棋。为简单起见,我们假设黑子有3种可能的行棋方式,分别由3个箭头表示,我们想要知道的是:黑子应该选择哪一种行棋方式?

PDF 物理页索引 252

文件中的第 253 页 · 印刷页码:未识别

如果黑子有足够多的时间,它可以对博弈树进行一次全面的搜索:前瞻所有的可能序列,然后选择一种最有可能令黑子获胜的行棋方式。可是,进行这样详尽的前瞻是不可行的,正如我之前提到的:即使是使用自宇宙诞生至今这么长的时间,都不够在围棋中进行一次完整的搜索。使用蒙特卡洛树搜索,黑子只前瞻每一种行棋方式可能产生的棋局序列中极小的一部分,并对这些棋局序列的输赢次数进行统计,然后,根据这个结果来为每种可能的行棋方式打分。受轮盘赌启发的随机性被用来决定如何前瞻。

更具体地说,为从当前棋局中选择一种行棋方式,黑子将会模拟若干种可能的方式,如图9-5中的(B)至(D)所示。在每一种模拟中,黑子从当前位置开始,随机选择一种可能的走法,然后从新的棋局出发为它的对手随机选择走一步棋,以此类推,一直持续到黑子胜或败为止。这样一种从给定棋局开始的模拟,被称为该棋局的“走子演算”(roll-out)。

PDF 物理页索引 253

文件中的第 254 页 · 印刷页码:未识别

在图中,你能看到在3次走子演算中,黑子赢了1次,输了2次。黑子现在可以为当前棋局的每种可能的行棋方式分配一个分数了[见图9-5(E)]。方式1(最左侧的箭头)参与了2次走子演算,其中一次以获胜结束,因此该方式的得分是1/2。方式3(最右边的箭头)参与了1次走子演算,最终以失败告终,因此,其得分为0/1。中间的那步棋根本没有尝试过,因此其得分为0。该程序会保存所有参与走子演算的行棋方式的统计数据。一旦这轮蒙特卡洛树搜索结束,程序就能使用它更新后的分数来判断哪种行棋方式看起来最有获胜希望——此例中,是方式1,然后程序就会在真实的对弈中选择该方式。

我在上文中说过,在走子演算的过程中,程序为自己和对手选择的行棋方式是随机的,而实际上,程序会根据这些行棋方式在之前几轮蒙特卡洛树搜索中得到的分数来概率性地选择走子策略。当每次走子演算结束时,该算法会根据这次演算的结果更新其所有行棋方式的分数,这些分数将反映下次走子演算中这些行棋方式的获胜概率。

程序第一次从给定棋局中选择行棋方式是相当随机的,这就好像通过旋转一个轮盘来选择一种行棋方式,但随着程序不断地执行走子演算,生成的统计数据也越来越多,它越来越偏向于选择那些在过去的走子演算中最可能通往胜利的行棋方式。

PDF 物理页索引 254

文件中的第 255 页 · 印刷页码:未识别

这样一来,AlphaGo在应用蒙特卡洛树搜索时就不用通过查看棋局局势来猜测哪种行棋方式最可能通往胜利,而只根据走子演算收集的关于给定行棋方式最终指向胜利或失败的统计数据,来判断下一步的最佳行棋策略。程序执行的走子演算越多,其统计数据就越有参考价值。和之前一样,该程序需要平衡“效用”(在走子演算期间选择得分最高的行棋方式)和“探索”(偶尔选择程序尚未有太多统计数据的得分较低的行棋方式)。在图9-5中,我展示了3种走子演算,而AlphaGo的蒙特卡洛树搜索在每轮中会执行近2 000次走子演算。

蒙特卡洛树搜索不是DeepMind的计算机科学家发明的,而是2006年在博弈树的基础上被首次提出的,并且它的出现使计算机围棋程序的水平得到大幅提升。当时这些程序还无法战胜最出色的人类棋手,其中一个原因是:从走子演算中生成足够多的统计数据需要花费大量时间,特别是对于存在大量可能行棋方式的围棋来说,更是如此。DeepMind团队意识到他们或许可以使用一个深度卷积神经网络来对蒙特卡洛树搜索进行补充,以提升它们的系统能力。以当前棋局作为输入,AlphaGo使用一个训练过的ConvNets来为当前棋局中所有可能的行棋方式分配一个粗略值,然后蒙特卡洛树搜索使用这些值来启动它的搜索,也就是说蒙特卡洛树搜索不用再随机选择初始行棋方式,而是根据ConvNets的输出值来判断哪一初始行棋方式是最优的。想象一下,你是正在注视着一个棋局的AlphaGo,在你开始为当前棋局执行蒙特卡洛树搜索的走子演算时,ConvNets会在你的耳边悄悄告诉你,当前棋局中的哪一步走法是最好的。

PDF 物理页索引 255

文件中的第 256 页 · 印刷页码:未识别

反过来,蒙特卡洛树搜索的结果又能反馈到对该ConvNets的训练中。设想一个经过一次蒙特卡洛树搜索的AlphaGo,搜索的结果是分配给它的所有可能行棋方式的新概率——基于执行走子演算期间所有可能行棋方式导致胜利或失败的概率,这些新概率现在通过反向传播来校正ConvNets的输出。随着对弈的进行,会产生一个又一个新的棋局,然后上述过程不断重复。从原则上说,ConvNets将会通过这一学习过程学会辨识局势,就像围棋大师一样。最终,ConvNets将在AlphaGo中发挥直觉的作用,这种直觉的实际效果会进一步被蒙特卡洛树搜索改进。

AlphaGo和塞缪尔的西洋跳棋程序一样,通过许多局(约500万局)自我对弈来进行学习。在其训练过程中,ConvNets在每步棋后,会根据网络输出值与蒙特卡洛树搜索运行后的改进值之间的差异来更新其权重。然后,当AlphaGo在和一个像李世石这样的人类围棋高手下棋的时候,经过训练的ConvNets会在每一轮对弈中生成一个能够帮助蒙特卡洛树搜索启动的值。

凭借其AlphaGo项目,DeepMind证明了:人工智能领域中长期以来的重大挑战之一,能够被强化学习、ConvNets和蒙特卡洛树搜索,以及在这一组合中加入的强大的现代计算硬件所体现出的创造性征服。因此,AlphaGo在人工智能“万神殿”中有着当之无愧的地位。但接下来呢?这种强大的组合方法能被泛化并应用到游戏之外的世界中去吗?这是我们在下一章将要讨论的问题。

PDF 物理页索引 256

文件中的第 257 页 · 印刷页码:未识别

本章要点

09 好的游戏<sub>,</sub>可以从更好的猜测中学习猜测

如果你是那个学习智能体,当前状态下某个动作的值是对你在选择某一动作并持续选择高价值动作的条件下,本片段结束后你将获得多少奖励的估计,那么,越接近这一片段的结尾,估值就越准确,因为在一个片段的结尾处,你能计算出你将获得的实际奖励!其中的诀窍是:假设网络在当前迭代的输出比上一次迭代的输出更接近于正确值,然后,通过反向传播学习调整网络权重,从而使得当前与先前迭代输出之间的差异最小化。

理查德· 萨顿是这种方法的鼻祖之一,他把该方法称为:从猜测中学习猜测。我把它修改为:从更好的猜测中学习猜测。简而言之,强化学习不是将其输出与人类给定的标签进行比较,而是假设后续迭代给出的值比前面迭代给出的值更好,网络学习的是使其输出在一次迭代到下一次迭代的过程中保持一致。

PDF 物理页索引 257

文件中的第 258 页 · 印刷页码:未识别

10游戏只是手段<sub>,</sub>通用人工智能才是目标

在过去的10年里,强化学习已经从一个相对不起眼的人工智能分支,转变为该领域最受瞩目且资金充足的研究方向之一。强化学习的复兴,在很大程度上要归功于我在前一章中描述的DeepMind项目。DeepMind在雅达利游戏和围棋上的成就确实是卓越且重要的,可谓实至名归。

对大多数人工智能研究人员来说,开发超人类的游戏程序并不是人工智能的最终目的。我们应该思考的是:这些成功对人工智能更长远的发展有什么启示。对此,哈萨比斯表达过他的一些看法:

游戏只是我们的开发平台……它是开发并测试这些人工智能算法的最快途径,但最终我们希望把它们应用于解决现实世界的问题,并在健康和科学等领域产生巨大影响。关键在于,它必须是一种通用人工智能,也就是它可以根据自身的经验和数据来学习如何做事 <sup>1</sup> 。

PDF 物理页索引 258

文件中的第 259 页 · 印刷页码:未识别

让我们深入探讨一下:这种人工智能究竟有多通用?除了游戏,它如何适用于现实世界?这些系统在多大程度上是真正在靠自己学习的?并且,它们究竟学到了什么?

理解为什么错误至关重要

当我在网上搜索关于AlphaGo的文章时,我发现了这篇标题吸睛的文章:《DeepMind的AlphaGo利用业余时间掌握了国际象棋》 <sup>2</sup> ,这种说法是错误且极具误导性的,而理解为什么错误是很重要的。AlphaGo所有的版本除了下围棋,其他什么也不会,即便是其最通用的版本AlphaGo Zero,也不是一个同时学会了围棋、国际象棋和日本将棋的独立系统,每种游戏都有自己单独的ConvNets,对每一种游戏,网络都必须从头开始进行训练。与人类不同的是,这些程序中没有一个能够将其在一款游戏中学到的知识迁移到其他游戏中,来帮助其学习不同的游戏。

这一点同样适用于各种各样的雅达利游戏程序,每个程序都需要从头学习自己的网络权重。这就好像你学会了玩《乒乓》,但是为了学会玩《打砖块》,你必须完全忘记你学过的关于《乒乓》的所有知识,并重新开始。

在机器学习领域,有一个充满前景的学习方法,那就是“迁移学习”(transfer learning),它是指一个程序将其所学的关于一项任务的知识进行迁移,以帮助其获得执行不同的相关任务的能力。对于人类来说,迁移学习是自动进行的,比如,我在学会打乒乓球之后,就能将其中的一些技巧进行迁移来帮助我学习打网球和羽毛球;知道如何下西洋跳棋,也有助于我学习国际象棋;当我还是个孩童的时候,学习如何转动我房间的门把手是花费了一些时间的,但是当我掌握了这个技能后,我的这种能力就迅速地泛化到几乎所有的门把手上了。

PDF 物理页索引 259

文件中的第 260 页 · 印刷页码:未识别

人类这种从一种任务到另一种任务的能力迁移看起来毫不费劲;我们对所学知识进行泛化的能力正是思考的核心部分。因而,我们可以说,迁移学习的本质就是学习本身。

与人类形成鲜明对比的是,当今人工智能领域中的大多数学习算法在相关的任务之间不是可迁移的。在这点上,该领域离哈萨比斯所说的通用人工智能仍然还有很远的距离。尽管迁移学习是目前机器学习从业者最活跃的研究领域之一,但这方面的研究仍然处于初级阶段。 <sup>3</sup>

无须人类的任何指导

与监督学习不同,强化学习可以使程序能够真正靠自己去
学习,简单地通过在预设的环境中执行特定动作并观察其结果
即可。DeepMind对于其成果,特别是在AlphaGo项目上取得的成
果的最为重要的声明是:“我们的结果全面地证明了一个纯粹
的强化学习方法是完全可行的,即便在最具挑战性的领域,不
用人类的示例或指导,除基本规则之外不提供任何其他领域的
知识,程序也有可能训练到超人类水平。” 4\_