第3章一骑绝尘去——经典人机 博弈大战 棋类游戏是人类智慧的结晶,自古以来就有着广泛的爱好者群体,也诞生了一代又一代的偶像级棋王。棋类游戏作为人工智能研究的首选对象,不仅是因为棋类游戏规则清晰,胜负判断一目了然,还因为其更容易在爱好者群体中产生共鸣,因此人工智能研究者前赴后继地投身到对不同棋类游戏的挑战中。而机器博弈的水平实际上代表了当时计算机体系架构与计算机科学的最高水平。 早在1962年,就职于IBM公司的阿瑟·塞缪尔就在内存仅为32KB的IBM 7090晶体管计算机上,开发出了西洋跳棋(Checkers)AI程序,并因其击败了当时全美最强的西洋跳棋选手之一的罗伯特·尼雷而引起了轰动。值得一提的是,塞缪尔研制的西洋跳棋程序是世界上第一个有自主学习功能的游戏程序,因此他也被后人称为“机器学习之父”。 然而,真正引起国人广泛关注的机器博弈里程碑事件是1997年IBM公司“更深的蓝”(Deeper Blue)战胜世界国际象棋棋王卡斯帕罗夫,这是基于知识规则引擎和强大的计算机硬件的人工智能系统的胜利;2011年IBM公司的问答机器人“沃森”在美国智力问答竞赛节目中大胜人类冠军,这是基于自然语言理解和知识图谱的人工智能系统的胜利;2016年谷歌公司的AlphaGo战胜了围棋世界冠军李世石,AlphaGo的升级版Master又在2017年初横扫全球60位围棋顶尖高手,这是基于蒙特卡罗树搜索和深度学习的人工智能系统的胜利。这三次人机大战都引起了公众的极大关注,并推动了人工智能技术的快速发展。下面我们就重温一下这几次精彩的人机大战,并透过比赛的喧嚣看一看大战背后机器博弈技术的进步和发展历程。 3.1西 洋 跳 棋 西洋跳棋是一种在8×8格的两色相间的棋盘上进行的技巧游戏,以吃掉或堵住对方所有棋子去路为胜利。棋子每次只能向斜对角方向移动,但如果斜对角有敌方棋子并且可以跳过去,那么就把敌方这个棋子吃掉。 3.1.1大战回顾  1956年2月24日,塞缪尔在IBM704计算机上设计的西洋跳棋程序和美国康涅狄格州的西洋跳棋冠军进行公开对抗赛,西洋跳棋程序取胜;  1959年,塞缪尔设计的西洋跳棋程序击败塞缪尔本人;  1962年6月12日,塞缪尔在IBM7090计算机上设计的西洋跳棋程序和当时全美最强的西洋跳棋选手之一罗伯特·尼雷(R.W.Nealey)对抗,并让尼雷首先选择进攻还是防御,西洋跳棋程序击败罗伯特·尼雷。 3.1.2阿瑟·塞缪尔与罗伯特·尼雷 阿瑟·塞缪尔,1901年出生于美国堪萨斯州的恩波利亚(Emporia,Kansas)。1923年大学毕业后进入麻省理工学院读研究生,1926年取得硕士学位并留校工作。两年后加入贝尔实验室,从事电子器件和雷达技术的研究。在贝尔实验室工作18年之后,塞缪尔离开贝尔实验室到伊利诺伊大学电气工程系任教,积极参与了该校研制电子计算机的工作,并开始了对机器学习的研究和下棋程序的编制。在伊利诺伊大学仅工作了3年之后,1949年塞缪尔转至IBM公司在普凯波茜的研发实验室工作,参与IBM第一台大型科学计算机701的开发。1952年塞缪尔设计的第—个下棋程序在IBM701上实现。1954年他把程序移植到IBM704上。1956年2月24日塞缪尔的下棋程序和康涅狄格州的西洋跳棋冠军进行公开对抗并取胜,比赛实况通过电视向全国转播。1962年6月12日塞缪尔的下棋程序美国最著名的西洋跳棋选手之一罗伯特·尼雷对抗,并让尼雷首先选择进攻还是防御,结果走到第32步尼雷就投子认输。赛后尼雷承认,计算机走得极其出色,甚至没有一步失误。这是他自1954以来8年中遇到的第一个击败他的“对手”。 人工智能与人机博弈第3章一骑绝尘去——经典人机博弈大战3.1.3核心技术: 自我对弈 通过自我对弈学习评价函数是西洋跳棋AI程序的核心技术,自我对弈学习评价函数的基本原理是利用两个副本进行对弈,学习线性评价函数每个特征的权重,其中一个副本使用固定的评价函数来学习特征的权重,另一个副本则是通过与使用极小极大(minimax search)算法作对比来学习特征的权重。事实上,后来的AlphaGo围棋AI程序以及深度学习领域的生成式对抗网络(GAN)都采用了类似的思想。虽然塞缪尔开发的西洋跳棋AI程序使用了大量的领域知识,并作了一些简化的假设,但塞缪尔的工作是早期人工智能的一个里程碑,是不置可否的。如今AI程序的核心算法仍然采用了塞缪尔工作中所使用的强化学习和对抗学习的思想。 1. 极大极小算法[1] 极大极小算法是最基本和最典型的穷尽搜索方法之一,它奠定了计算机博弈的理论基础。该算法的搜索策略是考虑双方对弈若干步之后,从可能的步中选一步相对好的步法来走,即在有限的搜索深度范围内进行求解。 定义一个静态估价函数f,以便对棋局的态势做出优劣评估。以MAX表示计算机方,MIN表示对手方,p表示局势,f(p)是根据当前局势做出的估计函数。则 f(p)>0表示对MAX有利的局势; f(p)<0表示对MIN有利的局势; f(p)=0表示局势均衡。 该算法的基本思想如下: (1) 轮到MIN走步时,MAX应考虑最坏的情况,也即f(p)取极小的情况; (2) 轮到MAX走步时,MAX应考虑最好的情况,也即f(p)取极大的情况; (3) 相应于两位棋手的对抗策略,不同层交替地使用(1)和(2)两种方法向上传递倒推值。 2. 算法优化: αβ剪枝算法[2] 上述的极大极小算法中有个致命的弱点,就是非常暴力地搜索,导致效率不高,特别是当搜索的深度加大时,会有明显的延迟,而αβ算法的引入可以提高运算效率。事实上,在MIN、MAX不断地倒推过程中是存在联系的,当它们满足某种关系时,后续的搜索是多余的,对一些非必要的估计值可以进行舍弃。其策略是进行深度优先搜索,当生成节点到达规定深度时,立即进行静态估计,一旦某一个非端点的节点可以确定倒推值的时候立即赋值,以节省后续其他分支拓展到节点的搜索开销。 剪枝规则如下。 (1) α剪枝,任一极小层节点的β值不大于它任一前驱极大值层节点的α值,即α(前驱层)≥β(后继层),则可以终止该极小层中这个MIN节点以下的搜索过程。这个MIN节点的倒推值确定为这个β值。 (2) β剪枝,任一极大层节点的α值不小于它任一前驱极小值层节点的β值,即β(前驱层)≤α(后继层),则可以终止该极大值层中这个MAX节点以下的搜索过程。这个MAX节点的倒推值确定为这个α值。 3.2国 际 象 棋 国际象棋起源于亚洲,后由阿拉伯人传入欧洲,成为国际通行棋种,也是一项受到广泛喜爱的智力竞技运动。据称全世界有多达3亿的国际象棋爱好者,甚至在1924年一度被列为奥林匹克运动会正式比赛项目。 国际象棋棋盘由横、纵各8格、颜色一深一浅交错排列的64个小方格组成,棋子共32个,分为黑、白两方,每方各16个。和8×8的西洋跳棋相比,国际象棋的状态复杂度(指从初始局面出发,产生的所有合法局面的总和)从1021上升到1046,博弈树复杂度(指从初始局面开始,其最小搜索树的所有叶子节点的总和)也从1031上升到10123。人工智能研究者对国际象棋的挑战持续了半个世纪(见图31)。 图31国际象棋的人机之战 3.2.1国际象棋大战回顾  1958年,名为“思考”的IBM704成为第一台能同人下国际象棋的计算机,处理速度每秒200步,但是在人类棋手面前被打得丢盔卸甲;  1973年,B. Slate和Atkin成功开发了国际象棋软件CHESS4.0,成为未来国际象棋AI程序的基础,1979年,国际象棋软件CHESS 4.9达到专家级水平;  1983年,Ken Thompson开发了国际象棋硬件BELLE,它由数百个芯片组成,造价仅为2万美元,每秒可计算18万步,达到大师级水平;  1987年,美国卡内基·梅隆大学设计的国际象棋计算机程序“深思(Deep Thought)”以75万步每秒的处理速度露面,其水平相当于拥有2450国际等级分的棋手;  1988年,“深思”击败丹麦特级国际象棋大师拉尔森;  1989年,“深思”已经有6台信息处理器,每秒处理速度达到200万步,但还是在与世界国际象棋棋王卡斯帕罗夫的人机大战中以0∶2败北;  1990年,“深思”第二代产生,使用IBM的硬件,吸引了前世界国际象棋棋王卡尔波夫与之对抗,擅长局面型弈法的卡尔波夫非赢即和棋;  1991年,由CHESSBASE公司研制的国际象棋计算机程序“弗里茨(Fretz)”问世;  1993年,“深思”二代击败了丹麦国际象棋国家队,并在与前女子世界冠军小波尔加的对抗中获胜;  1995年,“深思”更新程序,新的集成电路将其思考速度提高到每秒300万步;  1996年,“深蓝”诞生,其棋力(性能)高于“深思”数百倍,首次挑战国际象棋世界冠军卡斯帕罗夫,最终以2∶4落败;  1997年,“深蓝”的升级版“更深的蓝”开发出了更加高级的“大脑”,4名国际象棋大师参与IBM的挑战小组,为计算机与卡斯帕罗夫重战出谋划策,最终“更深的蓝”以3.5∶2.5的总比分战胜卡斯帕罗夫;  1999年,“弗里茨”升级为“更弗里茨”,在2001年,“更弗里茨”更新了程序,击败了卡斯帕罗夫、阿南德以及除了克拉姆尼克之外的所有排名世界前10位的国际象棋棋手;  2002年10月,“更弗里茨”与克拉姆尼克在巴林进行“人机大战”,思考速度为每秒600万步,双方战成4∶4平;  2003年1—2月,由两位以色列计算机专家研究出的“更年少者”与卡斯帕罗夫举行人机大战,双方3∶3战平;  2003年11月,世界排名第一的棋手卡斯帕罗夫与计算能力强大的“X3D—弗里茨”计算机战成2∶2平;  2005年1月,阿达姆斯(ADAMS)以0.5∶5.5输给Hydra。 3.2.2大战卡斯帕罗夫 加里·卡斯帕罗夫(见图32),1963年4月13日出生于阿塞拜疆首都巴库市,是著名国际象棋棋手,国际象棋特级大师,曾11次荣膺国际象棋选手的最高荣誉“奥斯卡奖”。卡斯帕罗夫6岁便开始下棋,13岁斩获图32加里·卡斯帕罗夫 全国青年赛冠军,15岁成为国际大师,16岁获世界青年赛第一名,17岁晋升国际特级大师,在22岁时成为世界上最年轻的国际象棋冠军,是第13位国际象棋世界冠军,此后又数次卫冕成功。 卡斯帕罗夫棋风犀利,进攻性强,在赛场上也经常表现得咄咄逼人,人送外号“巴库的野兽”。他具有异常敏锐的感知判断力,能够通过一些战术性的接触,出人意料地改变棋局的自然进程,甚至经常采取大胆弃子、疾进反击的策略赢得比赛。他曾在1999年7月创造了国际棋联国际等级分的历史最高纪录,等级分高达2851分。他是国际象棋史上的奇才,被誉为“棋坛巨无霸”。在多年的职业生涯中,卡斯帕罗夫保持世界排名第一的地位长达20年之久,毫无疑问,卡斯帕罗夫的棋艺代表世界最高水平,也可以代表人类棋艺的最高水平。不仅如此,在与“深蓝”对弈时,卡斯帕罗夫也正处于职业生涯的黄金时期(见图32)。 1. 首次国际象棋人机大战[3] 1995年,许峰雄研究出了“深蓝”所使用的象棋芯片;1996年,在许峰雄、莫里·坎贝尔(Murray Campbell)、乔·赫内(Joe Hoane)坚韧不拔的努力下,一台全新的超级计算机“深蓝”诞生,它以IBM的RS/6000 SP超级计算机作为主机,包括32个中央处理器,集成了研究小组设计的216个VLSI国际象棋专用处理芯片,运算速度达到每秒1亿棋步。1996年,是首台通用计算机ENIAC诞生50周年,而ENIAC是在费城附近制造出来的,因此,美国计算机协会决定于2月10—17日在费城举行一场别开生面的国际象棋比赛,一是为了纪念ENIAC诞生50周年;二是同时把这场国际象棋人机大战作为美国计算机协会成立50周年大庆的一部分。比赛在费城会议中心举行,比赛室是一间演讲厅,演讲厅内搭了一个台子,厅内安置了几台摄像机用于为观众提供现场镜头,买票的观众则在演播室内观看转播。IBM研究中心负责提供本次比赛50万美元的总奖金,其中40万美元给赢者,10万美元给输者,而“深蓝”所得的奖金则将返回IBM公司,用于资助更多的研究。 1996年2月10日第一局比赛开始,“深蓝”执白棋,加里执黑棋。面对棋王而坐的并不是计算机,而是“深蓝”研制小组的代表许峰雄,由他担任赛场操作员。本盘比赛“深蓝”以e4开局,加里则走了常规的西西里防御走法c5,“深蓝”立马以c3应对;加里第10步走了Bb4,使“深蓝”离开了开局库;“深蓝”第13步走了Nb5来进攻加里,这让加里大吃一惊,加里最后走了Qe7(见图33)。这时起,由于加里的局势每况愈下,于是他决定孤注一掷,发起了穷凶极恶的进攻。随着时间的推移,加里的攻势越来越猛,眼看加里只需要一步自由移动就可以扭转局势,然而就在这时,“深蓝”也发动了自己的进攻。到最后几步棋时,加里大势已去,在“深蓝”走出第37步后便举手认输。这是计算机第一次在与人类顶级选手的对弈中取得胜利。 图33第一局“深蓝”第13步之后的棋局 1996年2月11日进行第二局比赛,加里执白棋,“深蓝”执黑棋。第二盘的开局很简单,在第2步时,“深蓝”就离开了它的开局库;加里在18步走了Bg5,他是想让“深蓝”吃兵,以给他制造发动猛烈进攻的机会,但是“深蓝”并没有上当;加里在第19步棋时放弃了一个兵,紧接着双方开始了一系列兑子;加里局势明显占优,到残局时,棋盘上双方各有一个象和一个后,并且双方的象位于不同颜色的格子中;后来,加里精心设计了一个漫长而巧妙的部署,使其净赚到一个兵;少了一个兵后,“深蓝”大势已去,在第73步时,“深蓝”认输。 1996年2月13日进行第三局比赛,“深蓝”执白棋,加里执黑棋。前6个回合棋子的走法都与第一盘比赛一样;“深蓝”在第12步走了Ne5后,离开开局库;在第18步时,特技大师乔尔·本杰明(Joel Benjamin)以为“深蓝”会走Be5以制造一个潜在的攻势,然而“深蓝”早已意识到加里对Be5走法有老道的破解之术,它转而选择了Rfc1走法,同时也就丧失了进攻的机会;随后“深蓝”又走出几步看起来不像人类棋手走的棋后,大家意识到“深蓝”并未输,甚至局势还稍稍占优;到第39步时,双方都认为再走下去也分不出高低,同意和棋。 1996年2月14日进行第四局比赛,加里执白棋,“深蓝”执黑棋。“深蓝”开局采用斯拉夫防御;在“深蓝”第21步走了b5后,许峰雄离开座位去了洗手间;加里第22步走法思考了很长时间,在其思考期间,即便许峰雄已从洗手间回到比赛室,但仍不能回到比赛桌(这是比赛规则所定),直到加里走了f5后(见图34),许峰雄才回到比赛桌,他将加里走的f5输入到处于“屏幕保护”模式的“深蓝”,由于“深蓝”在屏幕保护模式下将f5中的f视为一个唤醒机器的字符,故“深蓝”只接收到了一个“5”,这致使“深蓝”程序崩溃,“深蓝”研究小组人员立即重启程序,重启后,“深蓝”快速地以B×c4应对,这一步使加里失去了大部分的开局优势;加里第34步走了Bc6,“深蓝”则走了c4应对,即将c列的一个弱兵推进了一格,这个兵呈现将杀之势;到了比赛残局,即使加里吃掉了“深蓝”最后一个后翼兵,“深蓝”局势仍占优,但加里也找到了最好的应对方法,用他的车换掉了“深蓝”有实力的马;到第50步时,双方同意和棋。四盘比赛后,双方各得两分,不分胜负。 图34第四局加里第22步之后的棋局 1996年2月16日进行第五局比赛,“深蓝”执白棋,加里执黑棋。许峰雄担任赛场操作员,与第一盘和第三盘一样,“深蓝”以c4开局,加里并没有采用西西里防御的常规走法,而是走了e5;接着,“深蓝”第2步走了Nf3,加里以Nf6应对,原本加里希望使用彼得罗夫防御,但“深蓝”避开了,转而进入了苏格兰四马开局;到第23步时,加里局势稍稍占优(见图35),之后,他提出了和棋;由于和棋请求需要“深蓝”小组商定,当许峰雄打电话告诉里屋其他队员加里提出和棋请求时,队员们都对这么早就提出和棋感到惊讶,而“深蓝”并不知道加里已提出和棋请求,它已经决定好了下一步要走的棋,而裁判迈克突然作出了一个裁决,要么立即接受和棋请求,要么按照“深蓝”决定好的走法走棋,这个裁决迫使“深蓝”小组立马作出了拒绝和棋的决定;随着比赛的进行,“深蓝”局势每况愈下,到第47步时,许峰雄替“深蓝”举手认输。 图35第五局加里第23步之后的棋局 1996年2月17日进行第六局比赛,加里执白棋,“深蓝”执黑棋。本盘比赛遵循的是半斯拉夫防御的一般路线;接着加里故意变换了走法,使“深蓝”离开了开局库;“深蓝”在第30步时犯了最后一个重大局面错误,它走了Bb8,即把象移到了b8,使b8的象和a8的车都陷入了困境,在加里第43步走了Rb4后,“深蓝”损失惨重,大势已去,“深蓝”认输。 在6局的人机对弈比赛中,“深蓝”并未占到什么便宜,棋王加里·卡斯帕罗夫以4∶2(3胜、2和、1负的战绩)的总比分轻松获胜,获得了40万美元的高额奖金。人战胜了计算机,首次国际象棋人机大战落下帷幕。但“深蓝”赢得了六场比赛中的一场胜利,这也是计算机第一次在与人类顶级选手的对弈中取得胜局。 “深蓝”计划源于许峰雄(见图36)在美国卡内基·梅隆大学读博士学位时的研究。1985年许峰雄博士开展了“人机博弈”的研究,图36许峰雄 研制的第一台名为“芯片测试”的计算机,在1987年美国计算机协会国际象棋锦标赛上获得了冠军。1988年他又研制另一台超级计算机“沉思”(名字源于英国科幻作家道格拉斯·亚当斯的《银河系漫游指南》),芯片工艺的线宽是3μm,这也是他设计的第一台真正的弈棋机。1989年许峰雄和他的同学莫里·坎贝尔加入了IBM公司的研究部门,他们在其他计算机科学家的帮助下继续超级计算机的研究工作,并致力于平行运算问题的研究。 1992年时任IBM超级计算机研究计划主管的谭宗仁领导研究小组开发专门用于分析国际象棋的“深蓝”超级计算机。“深蓝”的名字源自其雏形计算机“沉思”及IBM的昵称“巨蓝人(Big Blue)”,由两个名字合并而成。“深蓝”的程序运行于IBM著名的RS6000系统,使用C语言编写,运行系统为AIX,“深蓝”计算机虽然有着高速计算的优势,但是它却不能像人一样总结经验,在随机应变方面,与以国际象棋为职业的世界棋王卡斯帕罗夫相比,还是具有一定的差距。 第一次对决落败之后,IBM对“深蓝”计算机进行了升级,97型“深蓝”取名“更深的蓝”,许峰雄为“更深的蓝”设计了新款的国际象棋芯片;给国际象棋芯片增加了一个复现局面检测器;设计了一个全新的评价函数,这个评价函数提供了许多强大的新特征;同时也对王的安全的评价逻辑进行了大规模的重新设计。1996年版本的“深蓝”喜欢把它的象放在一条没有兵阻挡的斜线上(即开放的斜线),它不知道其实也可以把兵放在一条封闭的斜线上,只要开放斜线的选择权仍存在即可。在97型深蓝中,通过修改国际象棋芯片彻底解决了这一问题,这一修改改善了“深蓝”对象和车等对象的处理能力,“更深的蓝”重达1270kg,包括480块国际象棋芯片。与此同时,包括米格尔·伊列卡斯卡(Migul Illescas)、乔尔·本杰明、尼克·德菲尔米(Nick DeFirmian)、约翰·费多罗维奇(John Fedorowicz)、拉里·克里斯蒂安森(Larry Christiansen)和迈克尔·罗德(Michael Rohde)在内的多位特级大师加盟研制小组,提高“深蓝”在国际象棋知识方面的基本素养。他们运用自己的棋艺知识,帮忙调整“更深的蓝”比赛中可能用到的具体开局体系,协助调整机器的计算函数,提高它的“思维”效率和弈棋水平,还给它输入了一百多年来优秀棋手对弈的上百万个棋局,使它具有非常强的攻击能力,在平淡的局面中也善于制造进攻机会。“更深的蓝”计算能力为每秒113.8亿次浮点运算,其运算能力在当时的全球超级计算机中能排在第259位,但即使按照一盘棋平均走80步,每步棋可能的落子位置为35个计算,其状态复杂度和博弈树复杂度也远非超级计算机所能穷举。为了在合理的时间内完成走棋任务,必须要进行剪枝搜索。此外,由于“深蓝”团队丰富了国际象棋加速芯片中的国际象棋知识,使它能够识别不同的棋局,并从众多可能性中找出最佳行棋方案。“更深的蓝”每秒可检索1亿到2亿个棋局,系统能够搜寻和估算出当前局面往后的12步行棋方案,最多可达20步,而人类棋手的极限是10步。 2. 再度交锋[3] 1997年5月,IBM公司再次邀请加里·卡斯帕罗夫到美国纽约曼哈顿进行第二次人机大战,这次比赛设置总奖金110万美元,比赛冠军获得70万美元,亚军获得40万美元。比赛在纽约公平大厦(Equitable Center)举行,摄像头全程监控,数以亿计的媒体跟踪报道,观众则在与比赛举行场地相隔几层楼的地下剧场内通过电视屏幕观看比赛,六场比赛中,大约容纳500人的剧场每场都座无虚席,比赛同时在网络上全程直播,超400万人观看了这次人机大战。此次同样是6盘棋制比赛。在前5局里,卡斯帕罗夫为了避免在计算力方面用人脑与“更深的蓝”进行直接较量,他采取了独特的行棋策略来对付“更深的蓝”,即选择一些怪异的开局,尽量避免棋子过早地接触。这种下法让在场的专家们大吃一惊,不知“更深的蓝”会怎样应对。但是这个奇招并没有取得明显的效果,不论对手使出怎样奇怪的招数,“更深的蓝”总是能够凭借准确无误的局面判断和精确的计算给出最强的应手,让对手感到“望尘莫及”的绝望。比赛中,卡斯帕罗夫赢了第一局,但第二局的完败则让卡斯帕罗夫深受打击,在第三、第四、第五局连续三场和局后,卡斯帕罗夫的助手看见他坐在房间的角落里,双手捂面,仿佛已经失去了斗志。最终前五局双方2.5∶2.5打平,在决胜局中,卡斯帕罗夫失去耐心,回到了“正常”的下法,但可能心理压力过大,在第七回合就犯了一个不可挽回的低级错误后局势急转直下,在第19步就向“更深的蓝”俯首称臣,整盘比赛用时不到一个小时。下面就回顾一下这六场激动人心的比赛。 1997年5月3日第一局比赛开始,加里执白棋,“更深的蓝”执黑棋。由许峰雄担任“更深的蓝”的赛场操作员,许峰雄和加里面带着微笑相互握手后落座。走了第9步棋之后,局面处于封闭状态,进入阵地战,接着,在第10步加里走了e3这一步不同寻常的棋,即把e直线上的兵向前移动了一格,这一步棋反映了加里采取了反计算机象棋走法;在第14步之后(见图37),“更深的蓝”把直线g上黑王前面的兵前移,把直线e上的兵前移到横排5上,使得f5变成了得不到临近直线e和直线g上兵照应的弱格,虽然这个局面很糟糕,但加里在后面的10来步棋中也没有把马跳到f5格上,也没能轻易地利用f5格;“更深的蓝”第22步走了g4,致使自己直线g上的兵和加里直线h上的兵兑子;“更深的蓝”第28步f5将比赛推入关键阶段(见图38),“更深的蓝”下出了在此种局面下最好的走法,这让所有人都感到震惊,加里则选择了跟对方吃亏地兑子的走法;然而,“更深的蓝”第33步走了Qb5一步错棋,加里则走了Qf1来兑后。第36步之前双方形势已经明朗(见图39),原本“更深的蓝”如果在第36步走Ng4的话可以求和,但“更深的蓝”却在第36步走了Kf8(这与其搜索策略有关),这使得“更深的蓝”的形势急转直下,“更深的蓝”第44步走了Rd1,在加里应对之后,“更深的蓝”认输。 图37第一局第14步之后的棋局 图38第一局“更深的蓝”第28步之后的棋局 图39第一局“更深的蓝”第36步之前的棋局 1997年5月4日进行第二局比赛,“更深的蓝”执白棋,加里执黑棋。本盘比赛开始时由莫里担任赛场操作员,“更深的蓝”开局第1步走了e4,加里则没有走常规的西西里防御走法,而是走了e5,局面很快变成了路易·洛佩兹(Ruy Lopoez)开局,这样的开局使得“更深的蓝”占据了空间优势;“更深的蓝”第16步走了d5,这步棋封锁了中心,形成了加里期盼的封锁局面,现场的评论员都觉得局面对“更深的蓝”不利,“更深的蓝”很难下好;但“更深的蓝”在第24步下出了“像人类下的”Rec1(见图310),加里不得已以封锁直线c的c4应对,这一步使得加里再无机会逆转局面;“更深的蓝”第26步走了f4,为王翼开辟了第2个前线;加里第35步棋后(见图311),“更深的蓝”的赛场操作员由莫里换为许峰雄,“更深的蓝”第36步走了a×b5,这一步使加里有些措手不及,“更深的蓝”37步走了Be4,在加里接下来的几步棋之后,“更深的蓝”的局面越来越占优势,在“更深的蓝”第45步之后,加里突然举手示意认输。 图310第二局“更深的蓝”第24步之后的棋局 图311第二局“更深的蓝”第36步之前的棋局 1997年5月6日进行第三局比赛,加里执白棋,“更深的蓝”执黑棋。本盘比赛开始时由乔担任赛场操作员,加里第1步走了d3,在前几步棋时,加里试图把“更深的蓝”骗入白方的西西里防御开局,但“更深的蓝”凭借第4步的d6成功地躲避了加里的设计;加里第5步走了Nc3后,比赛局面已转回到英格兰开局,“更深的蓝”第5步以Be7应对;在“更深的蓝”第14步走了c5后,加里局面稍占优势,“更深的蓝”局面则显得非常稳固;随着“更深的蓝”第22步走了Qa5(见图312),本盘比赛来到了第一个关键时刻。加里第23步以Bd2应对,“更深的蓝”则选择本方能够赢一个兵,但加里同时却能获得很大补偿的Qa3;“更深的蓝”第26步之前的局势(见图313),当“更深的蓝”第26步走了Bh7时,本盘比赛迎来了第二个关键时刻。此步后加里的白格象在后来大部分的时间里都可以自由行动,此时的比赛局势双方基本持平;比赛中盘,“更深的蓝”的赛场操作员由乔换为许峰雄,在比赛的最后几步棋中,虽然“更深的蓝”的局面稍稍处于劣势,但由于之前已经建立了牢不可破的堡垒,而加里的走法也没有从实质上改变棋局,最后加里经过深思熟虑后提出了和棋。 图312第三局第22步之后的棋局 图313第三局“更深的蓝”第26步之前的棋局 1997年5月7日进行第四局比赛,“更深的蓝”执白棋,加里执黑棋。本盘比赛开始时由莫里担任赛场操作员,“更深的蓝”第1步走了e4,加里以c6应对;加里的第2步竟然走了d6(见图314),这让所有人费解;加里第20步之前的棋局(见图315),到第20步时,“更深的蓝”以为解决了所有开局问题正准备发起真正的进攻,然而,就在此时,加里第20步走了e5一步绝妙的好棋,这是一种弃兵走法;“更深的蓝”第26步之前的棋局是这样的(见图316),接下来,“更深的蓝”在第26步走了在人们看来非常的奇怪的一步棋b5,然而就是这步怪棋使局面开始明朗,“更深的蓝”局面继续恶化。在加里走了43步之后,“更深的蓝”进行了自我中断,需要重启程序,自我中断后,“更深的蓝”的赛场操作员由莫里换为许峰雄;加里的第43步使“更深的蓝”只有唯一的合理应棋;重启之后局面看起来好了很多,“更深的蓝”的走法正指向和棋,此时的局面是王兵残局;在“更深的蓝”走了第56步后,加里没有走棋,摊开双手示意和棋。 图314第四局加里第2步之后的棋局 图315第四局加里第20步之前的棋局 图316第四局“更深的蓝”第26步之前的棋局 1997年5月10日进行第五局比赛,加里执白棋,“更深的蓝”执黑棋。本盘比赛由莫里担任赛场操作员,加里回到了第一盘比赛中使用的基本开局,但稍微有些变化。“更深的蓝”第4步用象兑掉了加里的马,加里拥有了双象的优势,“更深的蓝”则有了更好的子力布局;“更深的蓝”第11步之前的棋局形势是这样的(见图317),“更深的蓝”第11步走了高明的一步h5,即把直线h上的兵前移两格,这步棋在向加里挑衅“如果你进行王车短易位,我就攻击你”,这一步着实让加里大吃一惊;在“更深的蓝”第22步棋后,它估计自己略占优势;然而到了第40步,它估计双方局势持平,到了残局(见图318),加里拥有一个貌似很难阻止的通路兵,但“更深的蓝”却试图要将对方将死,加里摆脱了将死的威胁后,“更深的蓝”无视通路兵,只是将王前移,加里试图将他的通路兵升变为后,但最终未能如愿,双方同意和棋。 图317第五局“更深的蓝”第11步之前的棋局 图318第五局比赛残局轮到白方行棋时的棋局 1997年5月11日进行第六局比赛,“更深的蓝”执白棋,加里执黑棋。本盘比赛由乔担任赛场操作员,与第四盘一样,本盘比赛以卡罗卡恩防御开局,而这次加里采用了主流变局,加里第7步走了h6,“更深的蓝”以N×e6应对,吃了一个兵,放弃了一个马;接下来的几步棋,双方都按开局常规走法走得非常快;“更深的蓝”在第11步Bf4时离开了开局库,它对自己局势的评价是大概占据了一个兵的优势;在“更深的蓝”放弃了一次快速取得微弱优势的机会并继续发动攻势时,加里的表情变得痛苦起来,在“更深的蓝”第19步走了c4后,它的优势变得非常明显,接着,加里很快认输(见图319)。 图319第六局比赛最后的棋局 最终卡斯帕罗夫1胜2负3平,以2.5∶3.5的总比分输给“更深的蓝”。“更深的蓝”赢得了这场备受世人瞩目的人机大战,也标志着国际象棋近2000年的发展历史走进了新时代。 “深蓝”并不是终结,卡斯帕罗夫也没有服气。1999年,“弗里茨”升级为“更弗里茨(Deep Fritz)”,并在2001年击败了卡斯帕罗夫,终于锁定了人机对抗的胜局。当今国际象棋男子等级分排名最高的选手是出生于1990年的挪威特级大师卡尔森(Magnus Carlsen),他的等级分是2863分,而至少有10款开源国际象棋引擎等级分达到了3000分以上。人与机器的国际象棋之争已胜负分明,国际象棋领域的人机博弈也画上了句号,取而代之的是2010年开始举办的机机博弈——国际象棋引擎竞赛TCEC(Thoresen Chess Engine Competition)。 3.2.3成功秘诀: 国际象棋加速芯片 “深蓝”计算机在硬件上将通用计算机处理器与象棋加速芯片相结合,采用混合决策的方法,即在通用处理器上执行运算分解任务,交给国际象棋加速芯片并行处理复杂的棋步自动推理,然后将推理得到的可能行棋方案结果返回通用处理器,最后由通用处理器决策出最终的行棋方案。97型“深蓝”与96型相比,运算速度差不多提高了两倍,国际象棋加速芯片的升级功不可没。升级后的国际象棋加速芯片能够从棋局中抽取更多的特征,并在有限的时间内计算出当前盘面往后12步甚至20步的行棋方案,从而让“深蓝”更准确地评估盘面整体局势。 3.2.4成功秘诀: 知识规则引擎 “深蓝”在软件设计上采用了超大规模知识库结合优化搜索的方法。一方面,“深蓝”存储了国际象棋100 多年来70万份国际特级大师的棋谱,能利用知识库在开局和残局阶段节省处理时间并得出更合理的行棋方案;另一方面,“深蓝”采用AlphaBeta剪枝搜索算法和基于规则的方法对棋局进行评价,通过缩小搜索空间的上界和下界提高搜索效率,同时可根据棋子的重要程度、棋子的位置、棋子对的关系等特征对棋局进行更有效的评价。 规则引擎是一种嵌入在应用程序中的组件,能够实现将业务决策从应用程序代码中分离出来,其核心是获取knowledge(知识)。此外,规则引擎使用产生式规则“IF THEN Rule”表达逻辑将知识应用到特定的数据上。 3.3智 力 问 答 “深蓝”在与卡斯帕罗夫的人机大战之后就被物理拆除,除了带动IBM公司的股价上涨之外,并没有带来直接的商业价值。在“深蓝”之后,IBM公司又选择了一个新的领域——DeepQA挑战人类极限。这一次IBM公司抱着雄心壮志,不仅把DeepQA项目看成一个问答游戏系统,还将其称为认知计算系统平台。认知计算被定义为一种全新的计算模式,它包含数据分析、自然语言处理和机器学习领域的大量技术创新,能够帮助人类从大量非结构化数据中找出有用的答案。IBM公司对其寄予厚望,并用公司创始人Thomas J.Watson的名字将这个平台命名为Watson[4]。如果说“深蓝”只是在做非常大规模的计算,是人类数学能力的体现,那么Watson就是将机器学习、大规模并行计算、语义处理等领域整合在一个体系架构下来理解人类自然语言的尝试。Watson具有以下4个能力。 (1) 理解(understanding): 与用户进行交互,根据用户问题通过自然语言理解技术分析包括结构化的和文本、音频、视频、图像等非结构化所有类型的数据,最终实现用户提出问题的有效应答。 (2) 推理(reasoning): 通过假设生成,透过数据揭示洞察、模式和关系,将散