李翊
如果圍棋世界是有層級的,以窮盡圍棋的所有可能得到最優(yōu)解為天,以懂得圍棋基本規(guī)則為地,AlphaGo在四盤棋里表現(xiàn)出的棋力和弱點(diǎn),讓人類第一次有了伙伴和參照物,知道在天地之間,自己對圍棋的理解處于怎樣的位置。
和AlphaGo的第一局開局,李世石劍走偏鋒:在他的職業(yè)比賽中從未使用過這一開局,甚至整個圍棋界,沒有人見過這一開局。避開流行布局,甚至避開曾經(jīng)流行過的已經(jīng)被淘汰的布局,李世石在考驗(yàn)AlphaGo在布局階段的應(yīng)變能力。然而,在新浪講棋的俞斌認(rèn)為李世石的下法勉強(qiáng)。“他在試探AlphaGo,但實(shí)際上效果并不好?!倍F(xiàn)在回顧比賽,李世石對第一局的看法是:“即使重頭來下,我也覺得沒法贏。我從一開始錯誤估計(jì)了它的實(shí)力?!?/p>
李世石對AlphaGo實(shí)力的了解,或許更多來自之前樊麾和AlphaGo下的五盤棋。如果僅從這五盤棋所表現(xiàn)出的內(nèi)容看,“AlphaGo大概在職業(yè)初段的水平”。這是俞斌、古力等職業(yè)棋手比較一致的評價(jià)。俞斌說,雖然知道5個月的時(shí)間里,圍棋AI(人工智能)的水平經(jīng)過深度學(xué)習(xí)一直在提高,但是能提高到現(xiàn)在這樣的水平,誰都沒有預(yù)料到。
第一局下完,中國圍棋界議論紛紛,圍棋人各種挑錯,各種不服氣,俞斌覺得李世石一開始太冒進(jìn),不好。兩局戰(zhàn)罷,俞斌所有的感受只有兩個字形容:“服氣!”
中國棋手李喆六段
“原來覺得,開放型復(fù)雜局面的對殺,電腦的計(jì)算力可能沒那么準(zhǔn)確,結(jié)果第一局AlphaGo居然扛住了。第二局從后半盤看,AlphaGo或許不能做到百分百的計(jì)算正確,但在殘局的計(jì)算能力上已經(jīng)遠(yuǎn)超人類,這不是單個人類可以抵擋的。就這兩點(diǎn)可以確認(rèn),如果AlphaGo還會打劫,那么人類就沒辦法贏它了?!?/p>
在李世石以比較大的差距輸?shù)舻诙P比賽后,職業(yè)棋手九段羅洗河對李世石回避劫爭的行為提出了質(zhì)疑:“李世石是否和谷歌簽了保密協(xié)議有不準(zhǔn)打劫這一條?”這成為幾乎所有人猜測的話題。李世石的棋風(fēng)被人稱為“僵尸流”,棋入中盤,他常常因出招過分而導(dǎo)致死大龍,在職業(yè)高手看來,這樣一邊倒的局面已可終局,尤其是對于老派的只研究前半盤的中日職業(yè)棋手而言。然而,絕境之中的李世石常常能爆發(fā)出驚人的力量,他一次次地如同僵尸復(fù)活一樣滿血?dú)w來,并且總能在最后一刻撞線?!斑@一局,有兩次機(jī)會打劫,而且是在李世石輸定的情況下,不打劫必輸;打劫,按照人腦的計(jì)算,如果是人跟人下,有可能贏,因?yàn)槿藭稿e。但是跟機(jī)器下,它如果會處理,人還是可能輸。第二局在形勢明顯落后的情況下,以李世石的性格和棋風(fēng),他應(yīng)該反擊。然而,兩次打劫的機(jī)會李世石都放棄了,這可能是大家懷疑他的原因之一?!庇岜笳f,“棋手特別瞧不起那些輸多了還麻木不仁的棋手。我們比較崇敬的,是那些在輸定的情況下還孤注一擲的,這叫勝負(fù)心。我們崇敬有勝負(fù)心的人。所以,李世石在失敗的情況下沒有選擇相對危險(xiǎn)但是有勝機(jī)的打劫,我們奇怪。但是看視頻,我覺得他當(dāng)時(shí)并沒有判斷清楚局勢,他應(yīng)該是對勝負(fù)有疑惑,選擇了一條相對穩(wěn)妥的路?!?/p>
“第二局AlphaGo有一個打劫的機(jī)會,但是很長時(shí)間都沒提回來。當(dāng)然不提沒關(guān)系,提一下,絕對的先手。但AlphaGo一直不走這一步,這也是懷疑的原因之一。”俞斌進(jìn)一步解釋說,“但這并不能成為AlphaGo害怕打劫的根據(jù)。因?yàn)檫@個劫很輕,也就是價(jià)值很小,跟別的棋子都沒關(guān)系,所以它沒必要去提。”
圍棋界有句俗語,臭棋怕打劫。劫爭會是AlphaGo的阿喀琉斯之踵嗎?從俞斌過往和計(jì)算機(jī)打交道的經(jīng)驗(yàn)來看,完全有可能。
打劫,也叫“劫爭”,是指黑白雙方都把對方的棋子圍住,這種局面下,如果輪白下,可以吃掉一個黑子;如果輪黑下,同樣可以吃掉一個白子。因?yàn)槿绱送鶑?fù)就形成循環(huán)無解,所以圍棋禁止“同形重復(fù)”。根據(jù)規(guī)則“提”一子后,對方在可以回提的情況下不能馬上回提,要先在別處下一著,待對方應(yīng)一手之后再回“提”。顧名思義“劫材”就是“打劫”的材料。但是并非所有的劫材都會導(dǎo)致對方應(yīng)一手,在價(jià)值判斷取舍的情況下,對方也可能不應(yīng)劫而解消劫爭,“劫勝”也叫“消劫”。因?yàn)檫@里涉及找劫材及消劫的價(jià)值判斷,是比較復(fù)雜的技術(shù)。
大概6年前,李喆曾經(jīng)找了一些職業(yè)棋手做過研究,認(rèn)為人能做到七路棋盤的最優(yōu)解,計(jì)算機(jī)如果速度快,也能窮盡七路盤的計(jì)算。但是升級到九路盤的時(shí)候,電腦靠蠻力窮盡不了,就會出現(xiàn)一些問題,比如明知沒棋的地方也要補(bǔ)一手?!拔腋娔X下九路棋的時(shí)候,電腦在領(lǐng)先很多的情況下,自填一眼的事情也干過?!庇岜笳f,當(dāng)時(shí)最好的對弈軟件,Bug(漏洞)就是劫?!拔覀儑尻?duì)的棋手跟這個電腦下的時(shí)候,即使我方形勢不好,只要出現(xiàn)這個Bug,我們就知道贏了。”
AI面對復(fù)雜劫爭時(shí)的糟糕表現(xiàn),是蒙特卡洛算法固有的頑疾。去年在北京奪冠的來自韓國的圍棋AI“石子旋風(fēng)”,在對陣世界冠軍連笑時(shí)甚至不能理解循環(huán)劫,不停地找劫來回提,使局面一塌糊涂。“這是因?yàn)?,基于概率,循環(huán)劫也總有打贏的可能。如果基于邏輯,會明白這是不可能的事情?!崩顔凑f,“AlphaGo的算法缺乏邏輯能力,這一點(diǎn)實(shí)際在去年10月對陣樊麾時(shí)已經(jīng)有所體現(xiàn)。蒙特卡洛算法使它并不是根據(jù)‘邏輯上A優(yōu)于B來做選擇,而是根據(jù)AB各自的勝率來做出決策。但在準(zhǔn)確性上,概率不如邏輯。”
AlphaGo顯然不是一般的圍棋AI。在和李世石對陣的第三局,它表現(xiàn)出了打劫的能力,雖然這個劫相對封閉,應(yīng)對并不復(fù)雜。“AlphaGo基本上就打會影響勝率的劫。當(dāng)不打比打的勝率更低時(shí),就會打劫。但它對打劫的勝率評估會偏低,因?yàn)榭赡苄愿啵运@得會回避劫?!边B著的三局棋,李喆一直站在AlphaGo的角度在觀察它,其間會和Facebook人工智能研究院智能圍棋項(xiàng)目負(fù)責(zé)人田淵棟博士聯(lián)系。田博士負(fù)責(zé)開發(fā)的圍棋AI“Dark Forest”和AlphaGo一樣使用了深度學(xué)習(xí)和蒙特卡洛搜索算法,但仍然無法避免打劫這一Bug。
“AlphaGo不害怕簡單的劫,但在復(fù)雜階段,如連環(huán)劫、循環(huán)劫,很多處劫爭變化,它還會不會做出正確的選擇,目前沒有看到?!庇岜笳f,像連環(huán)劫這樣復(fù)雜的劫爭并不是刻意能為之,一百盤里能出現(xiàn)一盤就不錯了。
在知道谷歌要在《Nature》發(fā)表關(guān)于AlphaGo論文的晚上,李喆和田淵棟有過簡單交流,雖然李喆知道“黑暗森林”與傳統(tǒng)的圍棋AI水平持平甚至更好,但是對于谷歌能做到什么程度,誰都不清楚。
“樊麾的棋譜出來后,我們做了個評估。如果說之前的AI,是職業(yè)棋手讓5子的水平,即普通人通過學(xué)習(xí)訓(xùn)練能達(dá)到,那么AlphaGo展現(xiàn)出的是讓2子,這是普通人需要經(jīng)過專業(yè)訓(xùn)練才能達(dá)到的。相對于以前的AI,這是個飛躍?!崩顔凑f,當(dāng)時(shí)棋界一片哀嚎,因?yàn)槟芸吹降钠遄V只有5盤,出于某種自尊,也出于對棋譜的解讀,棋界大致認(rèn)為樊麾發(fā)揮太差,AlphaGo不足以威脅到職業(yè)棋手。“奇怪的是,現(xiàn)在也在質(zhì)疑李世石的水平。”
圍棋里有個詞語,手談。圍棋是人與人的競技比賽,是人就會有情緒,多數(shù)時(shí)候,會在肢體語言上表現(xiàn)出來。日本古代有個著名的公案,“耳赤之一手”,說的是“本因坊”秀策比賽時(shí)下了一子,大家認(rèn)為他形勢不好。而在一旁觀戰(zhàn)的一個不懂圍棋的醫(yī)生卻認(rèn)為這是步好棋,因?yàn)樗吹綄κ值亩浼t了?!跋缕宓臅r(shí)候需要對對方的應(yīng)對有預(yù)估,然后做出判斷和選擇。這種預(yù)估一方面基于經(jīng)驗(yàn),一方面基于對對方的了解。然而,機(jī)器是沒有情緒的,你甚至看不見它。用樊麾的話說,它就是一個虛無,但是它又無處不在?!崩顔凑f,“我曾試著設(shè)身處地體會李世石的感受,坐在棋盤邊上,有人在你的對面擺棋,水平不高。你不知道對手,它沒表情,沒動作,緊隨你的落子是唯一的反饋。我們低估了人在面對機(jī)器時(shí)的感受。換一個人,未必能比李世石做得更好?!?/p>
大部分人認(rèn)為,以人類的思維去下就好了,李世石不同,他有大量試探,試圖理解AlphaGo行棋的棋理。
AlphaGo經(jīng)常會下出一些讓人無法理解的棋,有人認(rèn)為這是電腦失誤。然而,人類定義的失誤在AI的思維里卻未必是失誤。“在AlphaGo與人類下棋之前,我們認(rèn)為人能贏的一個原因是覺得電腦不像人會創(chuàng)新。事實(shí)上,它表現(xiàn)得比人類更不依賴定式,更會創(chuàng)新?!?/p>
第一盤棋,李世石用了個不在棋譜庫里的開局,結(jié)果AlphaGo給出了“不存在”的一手。“它不在任何定式之中,然而,我認(rèn)為這是好手。好處在于使右中下角的黑子變成效率低下的一手,雖然在右上局部白棋稍稍虧損,但加上右中下黑子的低效,白棋一點(diǎn)也不吃虧。”
傳統(tǒng)的圍棋AI,會根據(jù)已有棋譜來走定式,定式是經(jīng)過長期檢驗(yàn)的局部可以接受的定型。然而定式的弊端就在于,不同的周圍環(huán)境,定式的適用性有所不同。實(shí)戰(zhàn)白棋選擇了一個定式里沒有的、局部稍虧的,卻使得另一個遙遠(yuǎn)黑子的效率變低的下法,非常清楚地證明了兩點(diǎn):電腦不依靠背譜來下棋;電腦的考慮基于全局而非局部。
“人類對失誤的認(rèn)識有幾種,一種是開放性布局的情況下,一地虧損,從大局看,經(jīng)驗(yàn)告訴我們擺了十手還是虧,那么人類不會下。第一局AlphaGo在左下角的那一子,人類基于經(jīng)驗(yàn)判斷會虧損,不能保證是絕對正確的一招;第二種是不能給出明確虧與不虧,也看不出最后是否有問題的下法。但是AlphaGo這么下,從結(jié)果導(dǎo)向——贏棋來看沒問題。這種情況下,除非它被人類擊敗,才能證明這是失誤。第三種,從邏輯上能嚴(yán)格證明的失誤。在第一盤AlphaGo出現(xiàn)過兩次,右上和右下,在封閉情況下,分別虧了一目棋,可通過計(jì)算判斷有失誤。之所以AlphaGo還會這么下,我認(rèn)為它已經(jīng)判斷贏定了,即使有兩個失誤對勝率也不會有影響,甚至可能其他選擇未必像這個選擇能產(chǎn)生目前的結(jié)果?!?/p>
AlphaGo最石破天驚的一招是第二局的黑37尖沖。這一子落下,棋手們紛紛驚嘆:“它想干嗎?”有人說是臭棋,但這個下法卻讓人想起金庸在《天龍八部》里詳述的“珍瓏”棋局:這個“珍瓏”的秘奧,正是要白棋先擠死了自己一大塊,以后的妙招方能源源而生。任何人所想的,總是如何脫困求生,從來沒人故意往死路上去想。若不是虛竹閉上眼睛、隨手瞎擺而下出這著大笨棋來,只怕再過一千年,這個“珍瓏”也沒人能解得開。
“這雖然不是決定勝負(fù)關(guān)鍵的一子,但是用人類語言來說,卻是基于對全局虛實(shí)的掌握,在子力的相互關(guān)系中找到的最為均衡的選點(diǎn)。”李喆說,在人類看來,300多個點(diǎn)里,根據(jù)已有經(jīng)驗(yàn)知識看來這個點(diǎn)是會虧損而立即排除的一點(diǎn)。然而,從結(jié)果上看,這個棋沒虧?!霸谶@個局面下,我也會下這里,但我想不到。”
李喆嘗試從AlphaGo的角度去理解。“同樣一步棋,人類的思維是用道理的形式,辯證(勢、地、厚薄、動靜)來理解棋。而機(jī)器是以數(shù)據(jù)的方式求得勝率最高解而非最優(yōu)解。類似這樣的招法,AlphaGo其實(shí)是基于全局特定的情況的選擇,而人會有常識性的下法,其實(shí)是局部性的判斷?!?/p>
AlphaGo還有更讓人目瞪口呆的出手。第二局李世石執(zhí)白選擇了最普通的布局應(yīng)對,下到第12手,李世石心里或許還有一點(diǎn)興奮:這個布局我是見得多了,白棋總是不虧的。然后,看到對方在右下角落下黑13。右下先虎之后脫先中國流,這又是職業(yè)棋譜中從未出現(xiàn)過的布局。通俗的解釋就是:人類棋手認(rèn)為交換一步棋后一定要拆一個,定式才完。如果你不拆反而在別的地方下了,這就脫先了?!耙郧皩W(xué)棋的時(shí)候,定式不走完就相當(dāng)于故事沒講完,老師會罵的?!笨吹竭@一步,李世石站起來,出去抽了根煙。
抽完煙回來的李世石沒有在黑棋脫先的地方下,而是當(dāng)右下黑棋沒交換那一下跟著下了?!叭绻钍朗歉讼拢运男愿窈推屣L(fēng),你敢脫先,我氣勢上一定追究你,會在脫先的地方下,這叫針鋒相對,這叫氣勢??墒菍I來說,氣勢是什么?血性是什么?勝負(fù)感是什么?AI只看勝率是什么?!崩顔凑f,所以李世石沒有反擊,跟著下了?!敖?jīng)過昨天的試探,AI不會背譜,人類整體的經(jīng)驗(yàn)可能是最有力的,李世石要盡可能將局面導(dǎo)回到熟悉的套路中去。即使輸了棋,他也值得所有人尊重,他一直在有針對性地調(diào)整策略,盡力讓人們了解AlphaGo?!?
吳清源曾經(jīng)說過:不要記定式。但是,對于初學(xué)者而言,這是學(xué)棋必經(jīng)的一個過程。張三豐說:“記了招式,再忘掉?!盇lphaGo以其超出人類經(jīng)驗(yàn)的下法表示,它做到了。
就AlphaGo秀完莫測高深的棋力讓人類悲觀地以為李世石將被其以5∶0的比分零封時(shí),戲劇性的一幕出現(xiàn)了。AlphaGo竟然在第四局局面占優(yōu)的情況下突然崩潰了。
比賽開局階段,李世石始終落后于AlphaGo,一直在被吊打。然而,第78手的時(shí)候,局勢峰回路轉(zhuǎn),李世石下出了關(guān)鍵的一步,一招極其冷門的妙手。對于這一步棋,視頻觀戰(zhàn)的職業(yè)棋手古力評價(jià)為“神之一手”。
隨后,AlphaGo一連串的差手讓棋面局勢利好于李世石。在第97手,AlphaGo再次出現(xiàn)低級失誤,棋盤左下角落白子被李世石果斷吃掉。最終經(jīng)過長達(dá)4個多小時(shí)的鏖戰(zhàn)之后,AlphaGo中盤認(rèn)輸。李世石終于在這場人機(jī)大戰(zhàn)中贏回“尊嚴(yán)”之戰(zhàn)。
俞斌說,李世石這一步棋,是妙手,給敵人造成很大麻煩,但并非無解?!癆lphaGo至少有兩個變化可以抵擋,然后它依然還能保持優(yōu)勢??墒撬尤粵]有抓住?!?/p>
AlphaGo在迅速做出應(yīng)對后,開始出現(xiàn)一連串業(yè)余棋手也不會犯的低級錯誤,導(dǎo)致棋面局勢利好于李世石??吹竭@里,李喆不解地說:“AlphaGo瘋了!”他想不明白為什么?!霸谖铱磥?,不是電腦沒算到這步棋,有可能是因?yàn)檫@步棋產(chǎn)生更多分支變化,接下來可能涉及劫爭,又或者AlphaGo漏算了某一步關(guān)鍵的棋?”
反而是俞斌見怪不怪?!霸瓉砦液陀?jì)算機(jī)下的時(shí)候,計(jì)算機(jī)在形勢特別不好的時(shí)候也會走一步特別可笑的棋。如果下在別的地方勝率接近0,而其他地方有1%,那么計(jì)算機(jī)會應(yīng)在有1%的地方,1%的勝率總強(qiáng)過0。這說明AlphaGo在面對復(fù)雜對殺需要精確計(jì)算時(shí)可能出現(xiàn)問題?!?/p>
AlphaGo原論文作者之一德米斯·哈薩比斯(Demis Hassabis)在賽后的總結(jié)說:“李世石下出白78后,AlphaGo自我感覺良好,在程序的‘價(jià)值網(wǎng)絡(luò)(用于評估電腦勝率)中,誤以為勝率達(dá)到70%,直到第87步才反應(yīng)過來。短短幾個子的時(shí)間,勝率陡降至40%以下。發(fā)現(xiàn)時(shí)為時(shí)已晚?!?/p>
“出門問問”的CTO、原谷歌研究院領(lǐng)導(dǎo)開發(fā)谷歌基于深度神經(jīng)網(wǎng)絡(luò)的離線語音識別系統(tǒng)的人工智能專家雷欣稱,這其中的原因很可能是由于AlphaGo在復(fù)雜情況下的判斷還是不夠客觀,碰到?jīng)]見過的下法(如李世石的白78挖)會犯錯誤,而且在犯錯誤的時(shí)候不能夠及時(shí)發(fā)現(xiàn),會接連出低級錯誤。“對人類來說,如果犯了大錯,應(yīng)該很快就會發(fā)現(xiàn)并且糾正,但是機(jī)器的反應(yīng)都是連續(xù)的,不能及時(shí)做出調(diào)整,這也許是AlphaGo的一個致命弱點(diǎn)?!?/p>
從專業(yè)技術(shù)的角度看,“出門問問”NLP工程師李理認(rèn)為,如果一定要猜測,可能是開局主要靠“價(jià)值網(wǎng)絡(luò)”,因?yàn)樗阉骺臻g太大,有可能在某些特殊的局面下出現(xiàn)非常差的結(jié)果。就像之前神經(jīng)網(wǎng)絡(luò)識別圖片時(shí)也出現(xiàn)過很詭異的錯誤,還有人研究怎么構(gòu)造讓它識別出錯的例子。
這和李世石賽后的實(shí)戰(zhàn)分析頗為吻合。賽后李世石談到AlphaGo的弱點(diǎn)時(shí)說:“AlphaGo覺得當(dāng)它用黑棋時(shí)更難贏而不是白棋。當(dāng)它遇到出其不意的招數(shù)時(shí),有可能會導(dǎo)致失誤。我發(fā)現(xiàn)AlphaGo執(zhí)黑棋時(shí)似乎掙扎比較多。”李喆分析:“執(zhí)黑先行要主動選擇搜索路徑,黑棋下第一步的勝率低。此外,按照中國規(guī)則,黑棋要貼7目半,即三又四分之三子?!?/p>
“從谷歌的角度來說,這盤棋幫助他們找到了AlphaGo的一個弱點(diǎn),以后可以更有針對性地去解決這個問題。如果不是李世石這種頂尖棋手,也許很久也發(fā)現(xiàn)不了這個弱點(diǎn),因?yàn)樗讲罹嗵蟾緵]有機(jī)會逼得AlphaGo犯錯。從李世石的角度來看,這也是一個巨大的勝利,證明至少目前人類選手對戰(zhàn)人工智能還是有機(jī)會的。人工智能雖然計(jì)算能力強(qiáng)大,但還是會犯錯誤,并且是很低級的錯誤。這樣,人類棋手不會把人工智能神話,以后對戰(zhàn)的心態(tài)會更好?!崩仔勒f。