但是,比赛并没有最终结束。当时很多评论家并不太在意这场比赛,但它也许已经改写了国际象棋史。
残局阶段:计算机能力方面的较量
国际象棋比赛的最后阶段——残局,棋盘上的棋子越来越少,更容易计算出获胜的方式。然而,这个阶段仍需要缜密思考,因为所走的几十步棋必须精确无误,才能艰难地获得最终的胜利。举一个极端的例子,图9–4所示的棋局表明,不管黑棋怎么走,白棋都会赢。要走出这样的位置需要白棋准确无误地连续走262步。
人类棋手几乎不可能破解图9–4中的棋局。然而,人类有许多完成残局的实践,通常需要走10步、15步、20步,或者25步来完成。
残局对于计算机来说,是好坏参半的事。此时,几乎不需要短期战术目标,除非它能迅速结束残局,否则就容易因小失大。然而,计算机不仅有开局的数据库,也有残局的数据库。剩6个或更少棋子的棋局,理论上都能被破解。而7个棋子的残局则会复杂很多——有的解法复杂到需要走517步——但是,计算机数据库里已经存储了怎样走会赢、会输或和局的步法。
于是,这一阶段的比赛会出现某种类似黑洞的东西:当所有该和的局都和了,所有该赢的局都赢了,在“对策之树”(即所有策略的集合)的重力之外就不可避免地会出现一个点,这个点就类似于黑洞。国际象棋比赛中局的抽象目标被一些具体目标取代,比如,把自己后翼的兵派到这里你就赢了,引诱黑棋的棋子车移向其他地方就会和局。
在对阵卡斯帕罗夫的第一场比赛中,“深蓝”的系统显示当时的输局已定,但它还想继续与卡斯帕罗夫对弈,因为即使是卡斯帕罗夫这样的大师,每走75步也会犯一次严重的错误。而仅这样一步错棋就可能触动“深蓝”的传感器,进而让它找到取得平局的招数。“深蓝”计算机的处境不佳,但绝不是毫无希望。
“深蓝”非但没有退却,反而做出了一些非常奇怪的举动,至少在卡斯帕罗夫看来是这样的。在第44步棋的时候,“深蓝”把它的一个棋子车走到白方的第一行,而不是选择常规套路,将对方的军。计算机似乎是毫无目的地乱走棋。在四面楚歌的时候,看起来“深蓝”大势已去,还放卡斯帕罗夫的兵进入己方第二行,随时威胁己方的棋子后。更为奇怪的是,此后只走了一步棋,“深蓝”就认输了。
卡斯帕罗夫好奇计算机到底是怎么想的,他看惯了“深蓝”犯战略性错误——比如,愿意用棋子象和棋子车作交换——在复杂的棋局中,“深蓝”根本不能深刻地认识到每步棋带来的影响。但是,在相对简单的棋局,计算机绝对不会犯战术错误。
当晚回到广场大酒店回顾比赛的时候,卡斯帕罗夫问他的朋友、一位来自德国的象棋记者兼计算机专家弗雷德里克·弗里德尔:“计算机怎么会以这种方式自杀呢?”有些解释看上去似乎很合理,却没有一条能让卡斯帕罗夫觉得很满意。也许“深蓝”的确是“自杀”了,因为它发现无论怎么布阵走棋,这局都赢不了,索性认输,让卡斯帕罗夫摸不透自己的棋路。卡斯帕罗夫推测,难道这是一种煞费苦心的布局?也许程序员故意让“深蓝”输一局,从而使傲慢的卡斯帕罗夫过于自信进而导致失败?
卡斯帕罗夫的反应再自然不过了,他变得焦虑不安,开始研究起比赛数据来。在弗里德尔和计算机国际象棋弗里茨的帮助下,卡斯帕罗夫发现,对计算机“深蓝”而言,传统的走法——黑方的棋子车走到第六列后将白方一军——根本不是好棋,这步棋最终会给卡斯帕罗夫一次将军的机会,尽管仍需20多步棋才能实现这一
目标。
但这其中的深意是相当令人震惊的。按照弗里德尔的推断来看,唯一让计算机继续某种走法的原因就是它发现了另一种走法,这种走法会让卡斯帕罗夫走更多的棋步才能将“深蓝”一军,而原来的走法他只需要走20步就能“将军”。据弗里德尔回忆:
计算机“深蓝”其实已经算出了比赛的结局,它只是选择了损失最小的走法。卡斯帕罗夫说:“这台计算机已经算出来我再走至少20步就要将军了。”他为自己对多数计算保持正确判断而倍感欣慰。
人们曾经认为,让人类和计算机在象棋这种复杂比赛中提前算出20步棋是不可能的。卡斯帕罗夫称,他最引以为傲的时刻是1999年在荷兰参加的一场比赛,他提前算出了15步赢棋的步数。此前,人们普遍认为“深蓝”最多只能算出6~8步。而此刻,卡斯帕罗夫和弗里德尔不确定到底发生了什么事情,但是对那些漫不经心的观察家而言貌似很偶然、很莫名其妙的失误,对这两位来说则好像展现了伟大的智慧一般。
卡斯帕罗夫可能再也无法战胜“深蓝”了。
计算机战胜了人类
在第二局比赛中,“深蓝”更加咄咄逼人,丝毫不让卡斯帕罗夫有喘息的机会。第35个回合是关键环节。当时双方势均力敌:各有一个棋子后、一个棋子象、两个棋子车和7个棋子兵。但“深蓝”操纵着白子,略占优势:下一步是它先走,而且它的棋子后有足够大的回旋余地。目前的局面(图9–6)对卡斯帕罗夫并没有太大威胁,但他的劣势是:接下来的几步棋将打开局面,决定“深蓝”是否有机会赢棋或者转向平局。
“深蓝”可以走的棋路很多,它可以让棋子后走到更具敌意的位置,这是比较有谋略的走法。或者可以以兵抵兵,打开左路棋局,这会使棋局更简洁开阔,是富有战略意义的走法。
现场比赛的评论员一致认为“深蓝”会采取第一种走法,推进棋子后。这是比较明显的走法,也更符合“深蓝”的特征:计算机更喜欢计算复杂的走法。但是,经过反常的长时间“思考”后,“深蓝”选择了以兵抵兵。
顷刻间,卡斯帕罗夫释然了,因为以兵换兵能缓解他当前的压力。但是,随着对棋局评估的深入,卡斯帕罗夫越来越不安,他把头埋进臂弯,并且咬手指关节部位——一位观众说看到卡斯帕罗夫在哭泣。为什么“深蓝”没有把棋子后推向前线?的确,“深蓝”的这步棋没有明显的劣势——卡斯帕罗夫甚至可以想象换作人类对手在这种情况下也会走这步棋,比如卡斯帕罗夫长期的对手阿纳托里·卡尔波夫就会这样做。但是,计算机这么做需要有较好的战术理由——卡斯帕罗夫找不出这个理由到底是什么。除非卡斯帕罗夫的推测是正确的——“深蓝”能够提前算出至少20步棋。
卡斯帕罗夫和“深蓝”的对弈已经打了8个回合。对于观赛的记者和专家来说,胜负已见分晓,打防守的卡斯帕罗夫一开始就注定没有赢的机会,但他仍有机会打成平局。出乎观众意料的是,卡斯帕罗夫走了45步之后就认输了。卡斯帕罗夫知道计算机不会算错,若能提前算出20步的棋,计算机是不会犯错的。卡斯帕罗夫知道,“深蓝”即将赢得比赛,所以何不养精蓄锐迎战接下来的4局比赛呢?
观众席上爆发出强烈的掌声:这局比赛比第一局精彩多了。如果观众没有像卡斯帕罗夫那样想到来自“深蓝”的“将军”是不可避免的,那他们对棋局的思考肯定没有卡斯帕罗夫想得深。观众对“深蓝”其实是真心佩服的:它能像人类选手一样下棋。女子国际象棋世界冠军苏珊·波尔加向《纽约时报》称赞“深蓝”:“棋下得太漂亮了!”而乔尔·本杰明是参与“深蓝”团队技术方面的国际象棋大师,他也赞美道:“计算机‘深蓝’走出了冠军的风格,就像卡尔波夫。这不是计算机游戏,而是一场真正的象棋比赛。”
当晚,卡斯帕罗夫匆忙地离开公平中心大厦,没有接受媒体的采访,但他却将同辈大师们的评价铭记于心。或许“深蓝”就是“实实在在”的人,只是没有呈现为人形而已。或许“深蓝”就像两个世纪前的亚马逊土耳其机器人,有一位国际象棋大师偷偷摸摸地在幕后操控它的齿轮。又或许曾经和卡斯帕罗夫打过平手的国际象棋大师本杰明不仅帮助提高“深蓝”的棋艺,而且实际上还介入了比赛。
国际象棋冠军们对模型有着敏锐的嗅觉,像偏执狂一样寻找各种模型。卡斯帕罗夫在第二天召开的新闻发布会上指责IBM公司具有欺骗行为。卡斯帕罗夫认为计算机游戏就如同“马拉多纳口中的上帝之手”。1986年世界杯阿根廷对阵英格兰的那场比赛中,著名球员迭戈·马拉多纳手球得分。录像显示,马拉多纳不是用头而是违规用手将球送进球门。赛后,马拉多纳更是自称这个进球靠的“一半是马拉多纳的脑袋,一半是上帝之手”。同样的,卡斯帕罗夫认为是智囊团在帮助“深蓝”。
当然,卡斯帕罗夫关于“深蓝”运转方式的两种推测是自相矛盾的,正如埃德加·艾伦·波关于亚马逊土耳其机器人的构想一样。“深蓝”下棋下得太好,简直不像一台计算机;又或许它智力超凡,人类根本无法望其项背。
然而,第二局比赛的退出对于卡斯帕罗夫来说却是一个错误。第二天吃午餐时,卡斯帕罗夫最信赖的助手弗里德尔和尤里·多科扬对他说“深蓝”其实是险胜。弗里德尔和尤里·多科扬连夜在弗里茨程序上对该棋局进行分析,结果显示,按照某种走法,只要再走7个攻守回合就可以“将”“深蓝”的棋子王,最终就能打成平局。卡斯帕罗夫眼神空洞地望着第五大道,说:“说完了吗?这台计算机棋艺高超,我知道自己根本就没有赢的机会。”
虽然现在的比赛结果是平局,但卡斯帕罗夫的信心发生了强烈的动摇。有生以来,卡斯帕罗夫还从未输过一场国际象棋比赛,可现在却面临困境。更糟的是,他犯下了国际象棋界最严重的错误,那就是放弃原本可以平局的比赛,这是一个令人尴尬且从未有过的错误。观赛的记者和象棋大师都不记得上一次世界冠军犯这种错误是什么情形了。
卡斯帕罗夫步步紧逼的棋风帮助他赢得过世界冠军,但他认为这样的风格赢不了“深蓝”,遂决定采用非传统的方式,谨慎地诱骗“深蓝”,就像黑客套取程序漏洞一样。虽然卡斯帕罗夫第三局比赛的开局很不寻常,将“深蓝”诱骗出数据库,但这样的开局带来的最好结果就是平局。卡斯帕罗夫在第四局和第五局比赛中发挥得更加出色,似乎力道都用到了点儿上,但是仍对付不了“深蓝”强大的残局数据库,这两局比赛的结果都是平局。此时双方各胜一局,平三局,还剩一局决胜局。
决胜局当天,卡斯帕罗夫在公平中心大厦现身时面容疲倦,孤独迷茫。弗里德尔后来回忆说,从未见卡斯帕罗夫如此消沉。卡斯帕罗夫这局执黑子,他选择以卡罗–卡恩防御方案开局。人们通常认为卡罗–卡恩防御方案胜算较低——历史上黑方以这种方案开局的胜率仅为44.7%——尽管卡尔波夫这类熟知这一方案的棋手完全能够提高胜率。可是,卡斯帕罗夫并不熟悉这种开局方案,在以往的国际象棋锦标赛中他几乎没用过这种方案。走了几步棋后,卡斯帕罗夫变得很紧张,连常规的走法都要思考很长时间。在走第7步时,他犯了一个严重的错误,过早地折了一个棋子马。卡斯帕罗夫立即意识到自己的错误,重重地坐到椅子上,丝毫不掩饰内心的郁闷。仅仅走了12步后——此时开赛还不到1个小时——卡斯帕罗夫就弃赛了,随即离开了比赛现场。
“深蓝”赢了。只是它赢后没有砰然作响以示庆祝,只是发出逐渐微弱的机器运行声。卡斯帕罗夫是不是因为选择了自己并不熟悉的开局方案而倍感疲惫呢?还是如国际象棋大师帕特里克·沃尔夫所言,卡斯帕罗夫是故意输掉比赛,让“深蓝”赢得名不正言不顺?卡罗–卡恩防御方案是卡斯帕罗夫的对手卡尔波夫常用的开局手法,卡斯帕罗夫选择它开局有什么特殊意义呢?
但是,很快人们就对这些细微之处表现得没有那么关心了。人们只是关心是机器战胜了人类。就像计算机HAL 9000接管了飞船一样,人们无比兴奋。此时就像《爱将我们撕裂》这首歌第13秒的情形一样,合成音乐的声音盖过了吉他即兴演奏,摇滚乐不再那么流行。一个新的时代开始了。
所有这一切已成定局。卡斯帕罗夫已经成为人类脆弱情感的受害者,一个微不足道的软件漏洞更让这种情况雪上加霜。
国际象棋大师为何败给了“深蓝”计算机?
“深蓝”诞生于IBM的托马斯·沃森研究中心——从威彻斯特县山麓看,这个研究中心就像一座美丽的月牙形复古建筑。该中心的大厅中放置了早期“计算机”的复制品,如查尔斯·巴贝奇设计的众多机器。这座建筑外表看上去有些锈迹斑斑,但是很多科学家把家安在这些办公室中,其中包括数学家伯努瓦·曼德勃罗,他也是诺贝尔经济学奖和物理学奖的获得者。
2010年春,我去托马斯·沃森研究中心拜访了默里·坎贝尔,这位加拿大人性情温和,像个大男孩。早在卡内基梅隆大学开始“深思”这个项目时,坎贝尔就是该项目的主要工程师之一(他现在是IBM统计建模部门的主管)。坎贝尔的办公室里有一张卡斯帕罗夫的大幅海报,海报中的卡斯帕罗夫怒视棋盘,标题是:
且看计算机棋手如何马失前蹄?
卡斯帕罗夫对弈“深蓝”
1997年5月3日~1997年5月11日
但最终失利的却是卡斯帕罗夫,而非计算机“深蓝”,尽管这个结果与坎贝尔及其团队的预想大相径庭,但它却实实在在地发生了。
“深蓝”的设计初衷就是要打败卡斯帕罗夫,这个程序就是为打败卡斯帕罗夫而专门设计的。该团队试图预测卡斯帕罗夫最有可能采用的开局方式,并研究如何反攻。(卡斯帕罗夫使用以往在国际象棋锦标赛中很少使用的开局来避开他们的圈套。)在1996年与卡斯帕罗夫的对弈中,“深蓝”表现一般。另外,该程序在与思路相似的棋手博弈时,也出现了一些问题。因此,“深蓝”团队将该程序的处理能力提高了一倍,对其启发法作了进一步完善。坎贝尔知道计算机“深蓝”还需要对数据库进行更深入(且更具选择性)的搜索,才能与卡斯帕罗夫的深度战略性思维相抗衡。同时,研究人员还改进了“深蓝”对复杂棋局的适应能力,使其优势得到充分发挥。
坎贝尔告诉我:“对计算机有利的棋局通常都是棋子很多的复杂棋局,这样就会有许多设定的走法可选。我们希望遇到战术比战略更重要的棋局。这样就可以花一些心思琢磨战术了。”
如此说来,“深蓝”便是空前绝后的更“人性化”的象棋计算机了。虽然博弈论在象棋中的作用与它在信息不完整的游戏中(如纸牌)的作用程度不同,但在开局中可能却是一样的。一个稍微逊色的走子就会打乱对手的阵脚,使他数月时间的准备毁于一旦——如果对手知道如何应对的话,数月作无用功的人就是你了。但是,大多数计算机都想下出“完美的”象棋,而不是根据对手的状况调整比赛策略。“深蓝”却能像人类棋手一样比赛,并且会将局面扭转至坎贝尔眼中相对有利的局面。
1997年时,卡斯帕罗夫的棋艺实在太高超了,当时的确应当好好想想该如何设计程序,让“深蓝”赢得比赛。