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

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

491 个 PDF 物理页 · 本页显示文件第 241–250 页

PDF 物理页索引 240

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

西洋跳棋和国际象棋

1949年,工程师亚瑟·塞缪尔加入了IBM位于纽约波基普西的实验室,并立即着手对IBM701计算机的一个早期版本进行编程,使其可以玩西洋跳棋。如果你有一点计算机编程的经验,那么你会对他所面临的挑战感同身受,正如一位历史学家所指出的:“塞缪尔是第一个在701上进行严谨编程的人,因此当时都没有任何可调用的系统实用程序,也就是说,实质上没有可用的操作系统。特别是,他没有汇编器,所以,必须使用操作码和地址来编写所有内容。” <sup>8</sup> 此处为非程序员读者解读一下,这就像只用手锯和锤子来建造一座房子一样。塞缪尔的西洋跳棋程序是最早的机器学习程序之一,事实上,正是塞缪尔发明了“机器学习”这个词。

塞缪尔的西洋跳棋程序是基于搜索博弈树(game tree)的方法,该方法是迄今为止所有棋类游戏程序的基础,包括我在后面将要描述的AlphaGo。图9-4展示了用于西洋跳棋的博弈树的一部分。按照惯例,博弈树的“根”应绘制在顶部,这与自然界中树的根不同,其展示了玩家行棋之前的初始棋盘。从根节点延伸出的分支指向第一个玩家(此处为黑子)所有可能的行棋方式,这里有7种可能的行棋方式,为简单起见,图9-4仅展示其中的3种。对于黑子这7种行棋方式中的每一种,白子都有7种可能的对应行棋方式(图中没有全部列出),以此类推。图9-4中每个棋盘展示了一种可能的棋子排列,被称为一盘棋局。

PDF 物理页索引 241

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

注:为简单起见,此图只显示了每个棋局中2~3种可能的行棋方式。其中,白色箭头是从一个行棋棋子的先前位置指向当前位置。

想象一下你正在玩西洋跳棋。在每一个回合中,你可能会在脑海中构建这棵博弈树的一小部分,然后对自己说:“如果我走这步棋,那么对手就会走那步棋,这样的话,我可以走另一步棋,来为后面的棋做好准备。”大多数人,包括最好的棋手,只能考虑几种可能,即在决定走哪步棋之前只能前瞻几步。

一台高速计算机,则能在一个大得多的范围内执行这种前瞻。那为什么计算机无法对每一种可能进行分析,来判断如何行棋会最快地走向胜利?这个问题与我们在第03章中所列举的那个指数增长的问题一样。还记得国王、智者和米粒的故事吗?西洋跳棋游戏的平均步数约为50步,这意味着图9-4中的博弈树可能会向下延伸50层,在每一层中,每个可能出现的棋局平均对应有6或7个分支,这意味着树中棋局的总数可能超过6<sup>50</sup>,这是一个极其庞大的数字。假设有一台每秒可以计算10<sup>12</sup> 个棋局的计算机,它将需要花费超过10<sup>19</sup> 年才能分析完单个博弈树中的所有棋局。我们可以将这个数字与宇宙的年龄进行比较,后者的数量级仅为10<sup>10</sup> 。显然,对博弈树进行完全搜索是不可行的。

PDF 物理页索引 242

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

幸运的是,即使计算机不做这种详尽的搜索,也有可能表现得很好。在每一回合中,塞缪尔的西洋跳棋游戏程序会在计算机的内存中创建如图9-4所示的那样一棵博弈树的一小部分。博弈树的根是玩家当前的棋局,而程序会利用其内置的跳棋规则,从当前的棋局中生成它能采取的所有合规的行棋方式,然后,在每种行棋方式对应的棋局上,程序再生成对手可能选择的所有合规的行棋方式,以此类推,这种程序最多可以做出4~5回合(或“层”)的前瞻。 <sup>9</sup>

该程序随后会对前瞻过程结束后出现的棋局进行评估。评估一个棋局意味着为其分配一个用于评价该棋局将有多大可能性会使得程序走向胜利的数值。塞缪尔的程序使用了能给棋局的各种特征进行评分的评估函数,如黑子在总数上的优势、黑子的国王数量、黑子中接近于“成为国王”的棋子数,总分是38分。这些特征是塞缪尔基于他对西洋跳棋的了解来选择的。一旦完成对底层每个棋局的评估,也就是前瞻过程结束后,程序就会使用一个被称为“极小化极大”(minimax)的经典算法,来对程序从当前棋局走出的下一步棋的所有可能性进行评估,然后选择其中评分最高的行棋方式。

PDF 物理页索引 243

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

我们应该很容易想到:当评估函数被用在游戏后期的棋局上时,评估会变得更加精准,因此,塞缪尔的程序的策略是:首先看到所有可能的行棋序列中的未来几步,然后将评估函数应用于几步后产生的棋局,再将获得的评估值通过极小化极大算法反向传播回博弈树的顶端,从而生成对当前棋局下所有可能行棋方式的评分。 <sup>10</sup>

该程序需要掌握的是:在给定的一个回合中,哪些棋局特征应该被包含在评估函数内,以及如何对这些特征进行加权来算出总分数。塞缪尔在他的系统中试验了几种学习方法,其中有个版本最有趣,系统会自己边玩边学!这种学习方法有点复杂,我就不在这里详述了,但其中的一些方面有着现代强化学习的影子。 <sup>11</sup>

塞缪尔的西洋跳棋程序提升到了超过一般玩家的水平,尽管离冠军水平还有一些距离。一些业余棋手表示:这个跳棋程序的确很棘手,但还是可以被击败的。 <sup>12</sup> 值得注意的是,这个程序的备受关注,给IBM带来了一笔意外收入:在1956年塞缪尔于美国国家电视台演示这个程序后的第二天,IBM的股价上涨了15个百分点。此次是IBM在展示其游戏程序击败人类后经历的数次股价上涨中的第一次,后来,IBM的沃森程序在《危险边缘》中赢得了智力竞赛的冠军后,其股价也出现了类似的上涨。

PDF 物理页索引 244

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

尽管塞缪尔的西洋跳棋程序是人工智能历史上的一个重要里程碑,但我在这里讲述这段历史只是为了介绍其所包含的三个非常重要的概念:博弈树、评估函数和“自对弈学习”(learning by self-play)。

不智能的<sup>“</sup>智能赢家<sup>”</sup>深蓝

尽管塞缪尔的“棘手但可以被击败”的跳棋程序是了不起的,特别是在它那个时代,但它几乎没有动摇人们认为这种程序并不具备独特智能的想法。即便一台机器最终在1994年战胜了人类跳棋冠军 <sup>13</sup> ,精通跳棋游戏的机器也从未被视为通用人工智能的代表,但这在国际象棋中则不同了。用哈萨比斯的话来说:“几十年来,顶尖的计算机科学家都相信,因为国际象棋被看作人类智力的典型印证,所以一个精通国际象棋的计算机游戏程序将会很快在其他方面全面超越人类。” <sup>14</sup> 包括艾伦·纽厄尔和赫伯特·西蒙这两位人工智能早期的开拓者在内的许多人,都曾公开表示过对国际象棋的赞扬。1958年,他们写道:“如果有人能够设计出成功的国际象棋机器,他可能已经触碰到了人类智力的核心。” 15

国际象棋比西洋跳棋明显要复杂得多。举个例子,在上文中我说过,在跳棋中,任何一个给定的棋局都有平均6种或7种可能的行棋方式。相比之下,国际象棋中任何一个给定的棋局平均有35种行棋方式,这使得国际象棋的博弈树要比跳棋巨大得多。几十年来,国际象棋程序一直在改进,与计算机硬件速度的提升保持步调一致。1997年,IBM凭借深蓝,在一个被广泛播出的电视节目中击败了国际象棋世界冠军加里·卡斯帕罗夫,获得了其在游戏比赛领域的第二个重大胜利。

PDF 物理页索引 245

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

深蓝使用了与塞缪尔的跳棋程序几乎相同的方法:在一个给定的回合中,以当前棋局为根创建部分博弈树,将评估函数应用于博弈树的最底层,然后使用极小化极大算法将值沿树向上传播并决定应该走哪步棋。塞缪尔的程序与深蓝之间的主要区别在于:深蓝在其博弈树中具有更深入的前瞻,更复杂的特别针对国际象棋的评估函数、手动编程的国际象棋知识,以及能够使其高速运行的专用并行硬件。此外,与塞缪尔的跳棋游戏程序不同,深蓝没有在任何核心部件上使用机器学习方法。

就像塞缪尔的跳棋程序一样,深蓝击败卡斯帕罗夫也使得IBM的股价大幅上涨 <sup>16</sup> 。人类棋王的这次败北在媒体上也产生了相当大的恐慌,其中不仅包含对于超人类智能的担忧,还有对人类今后是否还有下棋动力的怀疑,但是自深蓝出现后的这么多年里,人类已经渐渐适应了这一情况。正如香农在1950年有预见性地写道:“一台能在国际象棋上超越人类的机器将迫使我们要么承认机械化思维的可能性,要么进一步限制我们对‘思维’这一概念的理解。” <sup>17</sup> 如今,后者已经发生了。

现在,人们通常认为,超人类的国际象棋游戏程序并不需要通用智能,而且从任何意义上来说,深蓝都不智能:除了下象棋之外,它什么都做不了,对于玩一局游戏且赢得这局游戏的意义,它也没有任何概念。我曾听一位演讲者打趣道:“深蓝确实打败了卡斯帕罗夫,但它从未从中获得任何乐趣。”

PDF 物理页索引 246

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

国际象棋作为一项具有挑战性的人类活动,有着相当长的历史,并且相当受欢迎。如今,国际象棋程序已经被人类棋手当作一种辅助训练工具,就像棒球运动员使用投球机进行练习一样。这是我们不断深化对智能这一概念的理解所产生的一个结果吗?并且得益于人工智能的进步,使我们更加确信这一点?还是说这只是印证了约翰·麦卡锡那句格言,“一旦它开始奏效,就没人再称它为人工智能了”? <sup>18</sup>

围棋<sub>,</sub>规则简单却能产生无穷的复杂性

围棋已有两千多年的历史,被公认为所有棋类游戏中最难的。如果你不是一位围棋棋手,也不用担心,这里的任何讨论并不要求有围棋的先验知识,但要知道这一游戏的地位很高,尤其是在东亚,围棋非常受欢迎。学者兼记者艾伦·列维诺夫(Alan Levinovitz)曾这样写道:“围棋是帝王将相、知识分子和天才少年所钟爱的消遣。”他继而引用了韩国围棋冠军李世石(Lee Sedol)的一句话:“西方世界有国际象棋,但围棋有着其不可比拟的精妙和智慧。” <sup>19</sup>

围棋是一款规则相当简单但却能产生近乎无穷复杂性的游戏。在每个回合中,棋手将己方所执颜色的棋子(黑棋或白棋)按照落子和提子规则放置在一块19×19的正方形棋盘上。与国际象棋中兵、象、王后这种层级结构不同的是,围棋中的棋子都是平等的。棋手需要根据棋子在棋盘上的布局进行快速分析并决定下一步行棋。

PDF 物理页索引 247

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

从人工智能发展的早期以来,创建会下围棋的程序就一直是该领域关注的焦点,然而,围棋的复杂性使得这项任务异常艰难。早在1997年,也就是深蓝击败国际象棋世界冠军卡斯帕罗夫的同一年,当时最好的围棋程序仍然会被普通棋手轻易击败。你应该还记得,深蓝能够从任一棋局开始进行大量前瞻,然后使用其评估函数来给未来的每一步棋分配一个值,这个值预示了一个特定棋局是否将获胜。然而,围棋程序无法使用这一策略,主要原因有如下两个。

· 首先,围棋的博弈树的规模要比国际象棋大得多。一个国际象棋棋手在一个给定棋局中平均有35种可能的行棋方式,而一个围棋棋手平均有250种这样的行棋方式。因此,即便使用专用的硬件,对围棋的博弈树进行“深蓝式”的暴力搜索也是不可行的。

· 其次,还没有人能够为围棋棋局创建一个良好的评估函数。也就是说,没有人有能力构建一个有效的公式来分析围棋中的一个棋局局势并预测哪一方将获胜。最优秀的人类围棋棋手依赖于他们对于局势的掌控以及难以言喻的直觉。

人工智能研究人员尚未弄清楚如何将直觉编码到一个评估函数中。所以,在深蓝击败卡斯帕罗夫的1997年,记者乔治·约翰逊(George Johnson)在《纽约时报》上写道:“如果一台计算机能击败人类围棋冠军,它将是人工智能成为真正的‘智能’的标志。” <sup>20</sup> 这听起来可能很耳熟,因为人们过去在国际象棋的问题上说过类似的话!约翰逊引用了一位围棋爱好者的预言:“计算机要想在围棋上击败人类,可能需要100年,甚至更久。”然而,仅仅20年之后,AlphaGo就通过深度Q学习学会了围棋,并在一场五局三胜制的比赛中击败了世界上最出色的围棋棋手之一——李世石。

PDF 物理页索引 248

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

AlphaGo对战李世石<sub>:</sub>精妙<sub>,</sub>精妙<sub>,</sub>精妙

在我解释AlphaGo如何工作之前,让我们首先来回顾一下它对战李世石所取得的令人惊叹的胜利。即便曾亲眼见证了AlphaGo击败欧洲当时的围棋冠军樊麾,李世石仍然非常自信地认为自己将获胜:“我认为AlphaGo的水平不如我……当然,它在过去的四五个月里进行了很多次更新,但这些时间还不足以让它获得足够的能力来挑战我。” <sup>21</sup>

2016年3月,AlphaGo对战李世石的比赛吸引了全球超过2亿人观看,也许你正是其中的一员。我确信这是在围棋两千多年历史上观众最多的一场比赛。在第1局比赛结束后,李世石对自己输给了程序感慨道:“我很震惊,我承认……我没想到AlphaGo会以如此完美的方式来下围棋。” <sup>22</sup>

AlphaGo的完美下法中的许多步棋让这场比赛的人类评论员感到讶异和钦佩。在第二局比赛中途,AlphaGo走出了一步令最出色的围棋专家都目瞪口呆的棋。《连线》(Wired )杂志报道了当时的场景:

PDF 物理页索引 249

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

起初,樊麾认为这一步行棋相当奇怪,但随后他发现了这步棋的精妙之处。“这不是人类能走出来的棋,我从未见过任何人会走这步棋,”他说,“太精妙了!”他一直在重复“精妙”这个词:“精妙,精妙,精妙……这是一步非常令人惊异的棋。”接着另一位评论员轻笑道:“我认为这步棋是个错误。”也许没有一个人比李世石更惊讶了,他起身离开了比赛室。“他需要去洗把脸或做点别的来找回状态。”一个评论员这样说道 <sup>23</sup> 。

对于这步棋,《经济学人》(The Economist )指出:“只有顶尖的人类围棋大师才能偶尔走出这样的棋,这在日语中通常被称为‘上帝之手’或‘神之一手’。” 24

AlphaGo接连赢下了第2局和第3局,但在第4局比赛中,李世石也遇到了自己的“神之一手”,一个捕捉到了博弈的复杂性并发挥了顶级棋手的直觉力的时刻。李世石的这一步棋令评论员感到意外,但他们随即发现:这步棋是对AlphaGo的潜在致命一击。一位撰稿人指出:“然而,AlphaGo似乎没有意识到发生了什么,这是AlphaGo在其自我对弈的成千上万盘棋中不曾遇见过的一步棋。李世石因此赢得了第4局比赛。在赛后的记者招待会上,李世石被问到,当他下那步棋时他在想什么。他说,那步棋是他当时能看到的唯一一步棋。” <sup>25</sup>

AlphaGo最终还是赢了第5局,从而赢得了整场比赛。在大众媒体看来,这是“深蓝对战卡斯帕罗夫”的再次上演,随之而来的是大量关于AlphaGo的胜利对人类之未来意味着什么的反思类文章。这次AlphaGo的胜利甚至比深蓝的胜利意义更重大:人工智能克服了比国际象棋更大的挑战,而且是以一种令人印象更加深刻的方式完成的。与深蓝不同的是,AlphaGo通过自对弈的强化学习方法来提升它的能力。