專題 | 漫長的對決

稿源:南方人物周刊 | 作者: 特約撰稿 潘超豪 日期: 2018-01-03

1968年,第一個圍棋程序問世。今天,阿爾法幾度戰(zhàn)勝了人類的頂尖棋手。這場人機對決,漫長,而沒有終點

3月13日,首爾。當李世乭九段步入新聞發(fā)布會場之時,全場觀眾齊呼“李世乭”,一如兩千年前的羅馬市民迎接凱旋的將軍。李世乭在職業(yè)生涯中曾贏得冠軍無數(shù),但受到如此祝賀是頭一回。李世乭說,只是贏了一盤棋,不需要這樣隆重祝賀的。不過,從他嘴角掩藏不住的笑容可以窺見,他的內(nèi)心或許比現(xiàn)場的觀眾更為喜悅。

這是一場在三尺紋枰上“人類”與“人工智能”的巔峰對決。坐在棋盤兩邊的,一方是李世乭九段,人類最優(yōu)秀的圍棋手之一;另一方是圍棋程序AlphaGo(以下稱“阿爾法”),由谷歌旗下DeepMind公司開發(fā)。

圍棋界在賽前一致看好李世乭橫掃阿爾法。然而,比賽的進程卻出乎所有人的意料。前三局比賽,李世乭不但全部落敗,而且甚至沒有尋覓到明顯的勝機。

在李世乭提前輸?shù)粝盗匈愔?,棋界輿論風向調(diào)轉(zhuǎn)。韓國頂尖棋手金志錫九段稱要受讓二子才能和阿爾法一戰(zhàn),中國的古力九段則在解說中開始稱阿爾法“老師”。此時,幾乎沒有人認為在余下的兩局棋中,李世乭還有機會贏一局。

在此背景下,李世乭的絕地反擊才顯得彌足珍貴。

這一盤棋,李世乭在黑方阿爾法的大陣中撒豆成兵,這正是他的成名絕技“僵尸流”。阿爾法一步步落入李世乭的圈套,卻毫無察覺。就在黑棋即將合圍大陣,將白棋一網(wǎng)打盡之時,李世乭祭出驚天一“挖”,正中黑棋的軟肋。阿爾法的招法開始變得凌亂。數(shù)個回合之后,阿爾法接連犯下低級錯誤。李世乭此后安全運轉(zhuǎn),守住了勝利果實。數(shù)據(jù)顯示,阿爾法似乎沒有預見到李世乭的妙手,以至于形勢急轉(zhuǎn)直下。對此,李世乭說:“我的眼里只有那一手棋,沒有任何其他選擇,我必須走那里。我只能謙卑地感謝神明,我這些天的祈禱換來了這樣的閃光?!?/p>

令人稍感意外的是,研究計算機圍棋的工程師們在賽前也并不看好阿爾法獲勝。從計算機圍棋幾十年的發(fā)展歷史來看,他們做出如此推斷是相當客觀的。

1968年,第一個圍棋程序問世。此后的二十多年間,計算機圍棋發(fā)展緩慢。

1991年,中山大學教授陳志行退休后開始研發(fā)名為“手談”的圍棋程序。其后,“手談”在8年間九獲計算機圍棋世界冠軍,并接連受讓15子、13子、11子戰(zhàn)勝青年業(yè)余高手。陳志行自己也是業(yè)余圍棋高手,曾多次參加全國業(yè)余圍棋大賽,并取得不俗成績。陳志行曾經(jīng)設(shè)想“手談”能夠在讓九子對局中戰(zhàn)勝自己。

圍棋盤縱橫19道,其上均勻分布著9個黑色的圓點,稱“星位”。讓9子對局,就是白方讓黑方先占據(jù)棋盤上的9個星位,才開始對局。部分棋手認為,能夠受讓9子戰(zhàn)勝業(yè)余高手,才算是“會下圍棋”。

世紀之交,國際象棋的程序在與人類頂尖棋手的對抗中已經(jīng)穩(wěn)穩(wěn)占據(jù)上風,而圍棋的程序則在“會下圍棋”和“不會下圍棋”的邊緣徘徊。據(jù)此,有職業(yè)棋手推斷,幾十年之內(nèi)都不會有圍棋程序戰(zhàn)勝人類頂尖棋手,或許永遠都不會。

1997年,美國IBM公司的“深藍”超級計算機以2勝1負3平戰(zhàn)勝了當時世界排名第一的國際象棋大師卡斯帕羅夫。“深藍”的運算能力當時在全球超級計算機中居第259位,每秒可運算2億步

圍棋人的自信并非無源之水。圍棋和國際象棋都是兩人對戰(zhàn)的完全信息游戲,而人類棋手在棋盤上的決策過程也差異不大:首先搜尋當前局面下看上去所有可行的下一步,然后對其中每一步棋產(chǎn)生變化之后的局面進行評估,最后通過比較,選擇對自己最有利的一步棋。

理論上來說,計算機程序只需要解決“搜尋”和“評估”這兩個問題,就可以達到很高的水平?!吧钏{”正是這樣做的。

“深藍”在搜尋方面近乎“窮舉”。雖然效率不如人類,但能夠比人類算得更深一層。至于評估,“深藍”采用和人類相似的辦法,給不同的棋子賦予相應的權(quán)重?!吧钏{”之后的國際象棋程序,原理上大同小異,卻已經(jīng)將人類棋手遠遠甩在身后。

然而, 圍棋程序不可能采取相同的辦法。一方面,圍棋變化的深度和廣度都遠超國際象棋,這使得“深藍”的暴力搜索算法沒有可行性。另一方面,評估一個局面孰優(yōu)孰劣,在圍棋上也并非易事。

職業(yè)圍棋手判斷形勢的方法,由于具有很大模糊性,很難被程序模仿。于是,包括“手談”在內(nèi),與“深藍”同時代的圍棋程序幾乎都是在試圖模仿人類棋手的招法。

工程師們竭盡全力讓程序理解“征子”、“雙活”、“愚形”、“小飛”等人類初學者在一個月之內(nèi)就能掌握的概念,然而效果卻并不理想。也有開發(fā)者給程序輸入開局庫,使得程序在遇到常見布局時能夠復制職業(yè)棋手的招數(shù)。不過,一旦對手變招,程序便無所適從。陳志行等人苦心經(jīng)營十余年,也未能讓“手談”突破頂尖業(yè)余棋手的9子大關(guān)。

就在大部分同行還在努力給程序打補丁之時,2006年,法國工程師Remi Coulom取得了突破。他將蒙特卡洛搜索法應用到他的圍棋程序CrazyStone中,并在當年的計算機圍棋世界奧林匹克9路棋盤項目上奪魁。

蒙特卡洛法的主要優(yōu)勢在于其獨辟蹊徑的局面評估方法。對于某一個特定的選擇,程序用近乎隨機落子的方式快速完成一盤棋,并判定勝負。

重復此過程多次,比如說10萬次之后,黑方在其中獲勝4萬局。那么程序就認為最初的那步棋勝率是40%。這種判斷方式,與人類的“數(shù)目法”,即估計雙方領(lǐng)地大小的差距,有本質(zhì)不同。

如果說之前的圍棋程序都只是拙劣地模仿人類的圍棋知識,那么采用蒙特卡洛法的程序則擁有了自己的“思維方式”。

此后兩年,采用蒙特卡洛法的程序如雨后春筍般出現(xiàn)。2008年,程序MoGo首次在受讓9子的對局中戰(zhàn)勝職業(yè)棋手。同年,CrazyStone接連突破職業(yè)棋手的8子和7子關(guān)。2012年,程序Zen在僅受讓4子的一局棋中,戰(zhàn)勝久負盛名的日本職業(yè)棋手武宮正樹九段。Zen的這一成就意味著它達到了業(yè)余5段的水平,躋身業(yè)余好手之列。這段時間,計算機圍棋的發(fā)展速度讓業(yè)內(nèi)人士預測,十年之內(nèi)將有程序達到職業(yè)水平。

技術(shù)的進步并非總是一帆風順。2012年之后,采用蒙特卡洛法的程序幾無寸進。Zen、CrazyStone等少數(shù)程序在計算機圍棋賽中輪流坐莊,絕對實力卻未見提升。蒙特卡洛法似乎遇到了瓶頸。幸運的是,2015年前后,深度學習技術(shù)飛速發(fā)展,研究計算機圍棋的工程師也從中找到了新的靈感。阿爾法由此橫空出世。

阿爾法的開發(fā)團隊由22名優(yōu)秀的工程師組成。其中,來自臺灣的黃士杰(Aja Huang)扮演重要角色。黃士杰是臺灣的業(yè)余6段棋手,他開發(fā)的程序Erica曾擊敗Zen,奪得2010年計算機圍棋奧賽冠軍。雖然阿爾法的開發(fā)時間并不很長,但其中的關(guān)鍵部分與黃士杰等人的多年積累密不可分,可謂十年磨一劍。

阿爾法主要由走棋網(wǎng)絡、估值網(wǎng)絡和蒙特卡洛法三部分組成。

走棋網(wǎng)絡和估值網(wǎng)絡均基于“深度卷積神經(jīng)網(wǎng)絡”技術(shù)。該技術(shù)的靈感與人類大腦的結(jié)構(gòu)密切相關(guān)。走棋網(wǎng)絡和估值網(wǎng)絡就好比阿爾法的“左腦”和“右腦”,走棋網(wǎng)絡負責選擇招法,而估值網(wǎng)絡負責評估局面,然后由蒙特卡洛法將它們連結(jié)成一個完整的大腦,最后輸出招法。

走棋網(wǎng)絡通過學習職業(yè)(或業(yè)余高手)棋譜和大量自我對局訓練而成。經(jīng)過訓練,走棋網(wǎng)絡對于一個特定的局面,能夠快速給盤面上所有可能的選擇給出評分。

走棋網(wǎng)絡的判斷賦予了阿爾法如同人類棋手一樣的特殊“棋感”,即對特殊棋形做瞬時判斷的直覺。對于人類棋手,通常需要多年的訓練才能建立這樣的“棋感”。這種棋感,曾被認為是人工智能難以模仿的。無論是手談還是Zen,它們在類似功能的實現(xiàn)上,基本只是對工程師輸入知識的直接反饋。一旦遇到知識庫里不存在的棋形,它們就可能一臉茫然。

阿爾法則不同?!吧疃染矸e神經(jīng)網(wǎng)絡”讓阿爾法能夠在輸入知識的基礎(chǔ)上舉一反三。不僅如此,阿爾法還通過自我對局進一步提升判斷的準確度,這使得阿爾法擁有了超越人類“棋感”的潛力。

“棋感”足以讓阿爾法成為一名業(yè)余好手,但離職業(yè)棋手還很遠。僅憑直覺做出的選擇仍然包含著大量的錯誤。與人類棋手一樣,阿爾法也需要判斷形勢。人類的形勢判斷算法大致是估計對局雙方地盤大小的差值。阿爾法的估值網(wǎng)絡則計算特定局面下雙方的獲勝概率。

與走棋網(wǎng)絡類似,阿爾法同樣進行大量(三千萬局)自我對局獲得樣本。一局棋中如果是黑方獲勝,那么阿爾法就對相似局面下黑棋優(yōu)勢的判斷更有信心。

另外,阿爾法還有名為“快速走子”的技術(shù)輔助判斷。

“快速走子”,顧名思義就是以比走棋網(wǎng)絡更快的速度落子。雖然這樣走出的招法質(zhì)量稍遜,但速度比走棋網(wǎng)絡快一千倍。更重要的是,通過“快速走子”代替?zhèn)鹘y(tǒng)蒙特卡洛法中的隨機落子,使得阿爾法對勝率的估計更為準確。

將“快速走子”與估值網(wǎng)絡結(jié)合,阿爾法能夠相當準確地判斷絕大多數(shù)局面的勝率。這種形勢判斷的方法不同于人類棋手的思路。從阿爾法與李世石對戰(zhàn)的結(jié)果看,阿爾法的判斷在大多數(shù)時候甚至強于李世石,令職業(yè)棋手們高山仰止。

盡管深度學習技術(shù)幫助阿爾法完成了飛躍,蒙特卡洛法仍然是阿爾法不可或缺的一部分。蒙特卡洛法把走棋網(wǎng)絡的選擇和估值網(wǎng)絡的形勢判斷結(jié)合在一起,通過邏輯判斷輸出最優(yōu)的招法。

阿爾法的三個組成部分分工明確,配合默契,完整地實現(xiàn)了類似于人類棋手的思考過程,且擁有超越人類思考能力的潛力。

阿爾法的進步速度,遠遠超出業(yè)內(nèi)人士的想象,甚至可能也超出了阿爾法開發(fā)團隊的期望。

2015年10月,阿爾法擊敗樊麾之時,開發(fā)者估計阿爾法世界排名約為250名左右。2016年1月末,在新聞發(fā)布會上,阿爾法團隊聲稱對抗李世乭“有五成把握”。

前三局棋,阿爾法幾乎沒有給李世乭什么機會。若不是李世乭在逆境下的靈光一現(xiàn),人類或許就要認為阿爾法是無懈可擊的了。所幸李世石九段奮力一擊,暴露了阿爾法的問題所在。

阿爾法在第四局中的低級錯誤,大致是在面對帶有劫爭的復雜變化時誤判,因而在開劫之前耗盡劫材。前一代以蒙特卡洛法為主算法的程序多數(shù)出現(xiàn)過相同問題。在賽前,就有業(yè)內(nèi)人士懷疑阿爾法是否已經(jīng)解決了此問題,從結(jié)果來看似乎并沒有。這是一個有十年歷史的“頑疾”,不一定能夠在短期內(nèi)得到解決。

然而,無論如何,能夠戰(zhàn)勝李世乭,證明阿爾法和計算機圍棋的前方是一條康莊大道。采用類似技術(shù)的其它圍棋程序也已取得不俗成績。

由田淵棟博士開發(fā)的Facebook旗下程序Darkforest,短短幾個月就達到了業(yè)余4段的水平;新一代的Zen在結(jié)合了深度卷積神經(jīng)網(wǎng)絡之后,也提升到了強業(yè)余5段的水平。幾年之內(nèi),擁有職業(yè)水平的圍棋軟件就將飛入尋常百姓家。

阿爾法的“思維方式”和人類棋手大相徑庭,卻達到了人類的頂尖水平。她的未來沒有極限。

阿爾法的勝利是幾代工程師智慧的結(jié)晶,是人工智能技術(shù)進步的里程碑;而李世乭的“神之一手”是人類棋力登峰造極的濃縮,是四千年圍棋藝術(shù)的冰山一角。這一場挑戰(zhàn)賽,沒有輸家。古老的圍棋和新興的人工智能都還有很長的路要走,希望它們在未來能夠擦出更耀眼的火花。

網(wǎng)友評論

用戶名:
你的評論:

   
南方人物周刊 2024 第810期 總第810期
出版時間:2024年10月21日
 
?2004-2022 廣東南方數(shù)媒工場科技有限責任公司 版權(quán)所有
粵ICP備13019428號-3
地址:廣東省廣州市廣州大道中289號南方報業(yè)傳媒集團南方人物周刊雜志社
聯(lián)系:南方人物周刊新媒體部