觀棋錄
本文不代表我的雇主。
一、
很多人都注意到,AlphaGo 的棋風(fēng)有個(gè)有意思的特點(diǎn):它很少下出「好棋」,也就是兇狠的殺招,并且還時(shí)不時(shí)似乎下出緩手。它局面從未大幅領(lǐng)先過(guò),永遠(yuǎn)只贏一點(diǎn)點(diǎn)。
為什么呢?
要訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò),需要定義一個(gè)反饋函數(shù),即告訴這個(gè)神經(jīng)網(wǎng)絡(luò)怎樣的決策是好的。在 AlphaGo 的設(shè)計(jì)中有個(gè)重要的細(xì)節(jié):訓(xùn)練 AlphaGo 的神經(jīng)網(wǎng)絡(luò)時(shí)所采用的反饋函數(shù)只依賴于輸贏,而同輸贏的幅度無(wú)關(guān)。換言之,對(duì) AlphaGo 而言,贏一目的棋和贏十目的棋一樣好,它追求的只是單純的勝負(fù)而已。
但單純追求勝率實(shí)際上就意味著放棄追求大勝。因?yàn)樵诙嘣獌?yōu)化問(wèn)題中靠近邊緣的地方,不同的優(yōu)化目標(biāo)之間幾乎總是彼此矛盾的。比方說(shuō),如果一個(gè)局面需要考慮三手可能的棋,第一手可以贏十目,有 70% 的勝率,第二手可以贏一目,有 80% 的勝率。第三手可以贏二目,有 90% 的勝率。首先第二手棋顯然全面劣于第三手棋,不應(yīng)該列入考慮。而值得比較的第一和第三手棋之間,勝率高的選擇一定是勝利幅度較低的那一個(gè)。——很顯然,這就是典型的帕雷托優(yōu)化問(wèn)題。第二手棋不是帕雷托最優(yōu)的,或者說(shuō)不夠接近優(yōu)化的邊緣。而在邊緣處的第一手和第三手,兩個(gè)指標(biāo)的優(yōu)劣一定彼此相反。
(這當(dāng)然不是說(shuō),圍棋中追求勝率和追求領(lǐng)先幅度是兩件矛盾的事。事實(shí)上,在絕大多數(shù)情況下,它們的指向都是相同的,一手導(dǎo)致領(lǐng)先幅度大幅下降的棋一般來(lái)說(shuō)也會(huì)導(dǎo)致勝率大幅下降,但它根本就不會(huì)被列入權(quán)衡,也就不會(huì)被注意到。值得權(quán)衡的選擇之間一定是彼此兩難的,并且對(duì)手愈強(qiáng),這兩個(gè)優(yōu)化目標(biāo)之間的分歧就越大。)
因此,AlphaGo 以單純勝負(fù)作為反饋函數(shù)的結(jié)果,就是 AlphaGo 總是選擇那些相對(duì)而言更保證勝率而勝出幅度較小的棋。只贏一點(diǎn)點(diǎn)就夠了。
為什么人類(lèi)棋手(至少絕大多數(shù))不這么下棋呢?
因?yàn)檫@和人的思維方式不符。AlphaGo 可以這么做的前提是極端精細(xì)的計(jì)算能力,從而得以控制微小而穩(wěn)定的盤(pán)面優(yōu)勢(shì)。像是貼著水面飛行的鳥(niǎo),最危險(xiǎn)但也最省力。但人無(wú)法永遠(yuǎn)做出精確的計(jì)算,所以需要一次次努力擴(kuò)大領(lǐng)先的幅度以維持一個(gè)安全的距離,防止一著不慎勝負(fù)翻盤(pán)。所以 AlphaGo 會(huì)顯得遇強(qiáng)則強(qiáng),但也很少下出「好看」的棋。甚至可能因?yàn)檫^(guò)于追求全局取勝幾率,下出在人類(lèi)的視角看來(lái)局部并非最優(yōu)的招式。反過(guò)來(lái),通過(guò)一番搏殺來(lái)取得局部勝利在人類(lèi)看來(lái)總是一件好事,而在 AlphaGo 看來(lái),這也許只是毫無(wú)必要地增加不確定性而已。
于是我忍不住設(shè)想,如果 AlphaGo 在訓(xùn)練時(shí)采用不同的反饋函數(shù)會(huì)是什么結(jié)果。不妨假設(shè)存在一個(gè) BetaGo,一切都和 AlphaGo 設(shè)定相同,只是反饋函數(shù)定義為盤(pán)面領(lǐng)先的目數(shù)。(換言之,從一個(gè)正負(fù)之間的階梯函數(shù)變成線性函數(shù)。)可以猜測(cè) BetaGo 的「棋風(fēng)」應(yīng)該比 AlphaGo 兇狠許多,更追求殺著,更希望大贏。如果讓 BetaGo 和 AlphaGo 反復(fù)對(duì)戰(zhàn),AlphaGo 贏的次數(shù)會(huì)更多,但平均而言 BetaGo 贏的幅度會(huì)更大。
(或者更極端一點(diǎn),干脆采用盤(pán)面領(lǐng)先程度的平方乃至指數(shù)函數(shù)作為反饋,那會(huì)培養(yǎng)出什么暴躁瘋狂的算法呢?)
AlphaGo 采用目前的設(shè)計(jì)是很好理解的,因?yàn)槭紫茸非蟮哪繕?biāo)還是證明 AI 能夠戰(zhàn)勝人腦。但是從目前的情況來(lái)看,AlphaGo 似乎已經(jīng)遙遙領(lǐng)先,那即使 BetaGo 勝率稍差,假以時(shí)日應(yīng)該也可以超過(guò)人類(lèi)。而它的棋應(yīng)該會(huì)好看很多。
好可惜和李世乭對(duì)戰(zhàn)的不是 BetaGo 啊??
二、
AlphaGo 是否會(huì)打劫終于不成為爭(zhēng)議了。
但它其實(shí)根本就不是一件應(yīng)當(dāng)被爭(zhēng)議的事。打劫只是圍棋中「不得全局同形再現(xiàn)」這一條規(guī)則的推論,而這條規(guī)則對(duì) AI 來(lái)說(shuō)實(shí)現(xiàn)起來(lái)再簡(jiǎn)單不過(guò):只要在搜索決策樹(shù)的時(shí)候,跳過(guò)所有已經(jīng)出現(xiàn)過(guò)的局面就好了。
這當(dāng)然不是說(shuō),AlphaGo 的實(shí)現(xiàn)細(xì)節(jié)中一定沒(méi)有任何針對(duì)劫的專(zhuān)門(mén)邏輯存在。一些特定的優(yōu)化也許是有意義的。但是以為 AlphaGo 和人一樣,有必要去辨認(rèn)劫的特性,選擇和保存劫材,在多個(gè)劫同時(shí)存在的局面下做復(fù)雜的戰(zhàn)略決策,只不過(guò)是把人的思維方式錯(cuò)誤地套用在遵循完全不同邏輯的神經(jīng)網(wǎng)絡(luò)上而已。神經(jīng)網(wǎng)絡(luò)自我學(xué)習(xí)的特性保證了只要讓它遵循圍棋的基本規(guī)則,它完全可以「顯得」像是懂得復(fù)雜的圍棋概念,但這絕不意味著它真的「在乎」這些概念。AlphaGo 的主要作者中的兩位 Chris Maddison 和 Aja Huang 在他們 2015 年發(fā)表過(guò)的一篇論文 Move Evaluation in Go Using Deep Convolutional Neural Networks 中寫(xiě)過(guò)這樣一段話(原文為英文,以下是我的翻譯):
很明顯,神經(jīng)網(wǎng)絡(luò)內(nèi)在地理解了圍棋的許多深?yuàn)W的層面,包括好形,布局,定式,手筋,劫爭(zhēng),實(shí)地,虛空。令人驚異的是這樣一個(gè)單獨(dú)、統(tǒng)一、直接的架構(gòu)就能把圍棋的元素掌握到這個(gè)程度,而不需要任何明確的先導(dǎo)。
歸根結(jié)底,劫是一個(gè)完全人為構(gòu)造的概念。人們用它來(lái)描述自己的戰(zhàn)略,建構(gòu)自己的思考模式,就像別的圍棋術(shù)語(yǔ)一樣。但它只是刻畫(huà),并非本質(zhì)。如果 AlphaGo 有意識(shí),它也許會(huì)在面對(duì)人類(lèi)的詢問(wèn)時(shí)說(shuō):噢,原來(lái)你把我走的這一步叫做打劫啊。
但這是人類(lèi)的缺陷么?我們是否是在把一個(gè)本來(lái)應(yīng)該用純粹的計(jì)算解決的問(wèn)題毫無(wú)必要地歸納于概念,然后又讓自己的思維囿于這些概念而作繭自縛呢?
恰恰相反。能夠迅速建立起高級(jí)抽象的概念,然后用它來(lái)簡(jiǎn)化和指引決策,這是人類(lèi)在千百萬(wàn)年間進(jìn)化出的偉大能力,今天的人工智能還遠(yuǎn)遠(yuǎn)不能望其項(xiàng)背。借助這些抽象觀念,人們得以把全局問(wèn)題分解為一系列局部的可以簡(jiǎn)明描述和推理的子問(wèn)題,做出也許未必在數(shù)值上嚴(yán)格最優(yōu)但是相當(dāng)接近最優(yōu)的判斷,從而取代人工智能需要耗費(fèi)海量計(jì)算才能作出的決策。更重要的是,這些抽象觀念可以讓一個(gè)人從極少數(shù)樣本中辨認(rèn)本質(zhì),總結(jié)經(jīng)驗(yàn),汲取教訓(xùn),獲得成長(zhǎng)。一個(gè)棋手從觀摩一盤(pán)棋中得到的教益,可以多于 AlphaGo 千萬(wàn)盤(pán)自我對(duì)局。AlphaGo 的神經(jīng)網(wǎng)絡(luò)自我反饋訓(xùn)練雖然有效,但是盲目。而人們知道自己要學(xué)的是什么。
?這是人類(lèi)智能最耀眼的優(yōu)勢(shì)之一。
這引出了下面進(jìn)一步的問(wèn)題:這兩種思維方式是否有可能對(duì)接?能不能讓 AlphaGo 把自己的決策過(guò)程翻譯為人類(lèi)可以理解的概念和語(yǔ)言呢?
這件事在應(yīng)用上的潛力顯而易見(jiàn)(用人工智能來(lái)輔助教學(xué),當(dāng)然不限于圍棋),但更重要的是它在理論上的挑戰(zhàn)。AlphaGo 的決策過(guò)程是個(gè)黑箱,我們能夠提煉出它用來(lái)提取棋局特征的元素,但無(wú)法直接理解它們意味著什么。我們不知道它們?nèi)绾螌?duì)應(yīng)于人所熟悉的概念,或者在那里是否存在人們尚未總結(jié)出的新知識(shí)。我們當(dāng)然可以看到它最終的結(jié)論,例如一步棋是好是壞,可是僅有結(jié)論并沒(méi)有太多用處。
但這里仍然有做文章的余地。AlphaGo 可以看做是一個(gè)記錄了自己每一次神經(jīng)脈沖細(xì)節(jié)的人工大腦,而機(jī)器學(xué)習(xí)的原理也可以應(yīng)用在這些海量的記錄數(shù)據(jù)本身之上。不難設(shè)想,也許可以訓(xùn)練出另一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別出這些數(shù)據(jù)中對(duì)應(yīng)于人類(lèi)高級(jí)概念的特征,從而設(shè)法把 AlphaGo 的決策過(guò)程拆解和翻譯為人類(lèi)熟悉的觀念模塊。如果可以實(shí)現(xiàn)這一點(diǎn),人類(lèi)就可以更直觀地理解 AlphaGo。
我不知道這能否實(shí)現(xiàn),但我希望可以。那將是一個(gè)重大的飛躍。
到那時(shí),我們也許就可以看到人類(lèi)棋手和 AlphaGo 在真正的意義上「復(fù)盤(pán)」了。
三、
我們離圍棋之神還有多遠(yuǎn)?
關(guān)于 AlphaGo 最大的未知數(shù)之一,是它自我對(duì)局訓(xùn)練的效率。按照目前公開(kāi)的訊息,它的棋力一直在隨著時(shí)間穩(wěn)定上升,直到不久之前剛剛超越了人類(lèi)頂尖棋手的水準(zhǔn)??雌饋?lái)假以時(shí)日,它的棋力還會(huì)進(jìn)一步成長(zhǎng)。
但這個(gè)預(yù)計(jì)完全在未定之天。事實(shí)上,過(guò)去這段時(shí)間以來(lái)它的棋力增長(zhǎng)本身是個(gè)奇跡,而非必然。通過(guò)自我對(duì)局的輸贏反饋來(lái)提升能力,最大的問(wèn)題在于容易陷入機(jī)器學(xué)習(xí)中所謂「過(guò)擬合」的狀態(tài)。簡(jiǎn)單地說(shuō),就是因?yàn)樽约旱膶?duì)手也是自己,從而陷入一個(gè)自洽的邏輯圈無(wú)法自拔。其結(jié)果是缺陷變成了優(yōu)勢(shì),盲點(diǎn)變成了禁區(qū)。初始經(jīng)驗(yàn)中的噪音,逐漸固化成了金科玉律。實(shí)際上并不存在的界限,因?yàn)閺膩?lái)沒(méi)有試圖跨越,結(jié)果變成了真的限制。最后「自以為」自己下得很好,而且越下越好,其實(shí)只是越來(lái)越適應(yīng)自己而已。
DeepMind 的團(tuán)隊(duì)當(dāng)然想到了這個(gè)問(wèn)題。他們的解決方案是不僅僅讓 AlphaGo 自我對(duì)弈,也不斷讓不同等級(jí)的 AlphaGo 之間互相越級(jí)對(duì)弈作為校準(zhǔn),以避免出現(xiàn)隨著不斷進(jìn)化,客觀棋力反而萎縮的現(xiàn)象。問(wèn)題在于,這種校準(zhǔn)終究是在 AlphaGo 的「家族」內(nèi)部進(jìn)行的,因?yàn)檫@世界上暫時(shí)還不存在可以和它媲美的第二家對(duì)弈系統(tǒng),可以進(jìn)行大規(guī)模的互相檢驗(yàn)。自己近親繁殖的結(jié)果是有些 bug 永遠(yuǎn)都無(wú)法被自己意識(shí)到,只有在和棋風(fēng)棋路截然不同的對(duì)手的對(duì)弈中才有可能暴露出來(lái)。
譬如人類(lèi)這個(gè)對(duì)手。AlphaGo 和李世乭的對(duì)弈,可以看做是它第一次遇到和自己旗鼓相當(dāng)而截然不同的異類(lèi)。于是它果然崩潰了一次。
其實(shí)和人類(lèi)棋手相比,AlphaGo 也并非完全是天外來(lái)客。它最初的訓(xùn)練來(lái)自大量人類(lèi)棋手的網(wǎng)絡(luò)圍棋對(duì)局,血液里保存著人類(lèi)棋手的基因。正因?yàn)槿绱?,DeepMind 公司已經(jīng)宣布,將在接下來(lái)的幾個(gè)月里重新來(lái)過(guò),在不依賴人類(lèi)對(duì)局?jǐn)?shù)據(jù)的基礎(chǔ)上,從零開(kāi)始訓(xùn)練新的圍棋程序,以探索不落現(xiàn)有圍棋觀念窠臼的新道路。
但即便如此,它仍然無(wú)法避免有一天終究會(huì)落入過(guò)擬合的陷阱。要逐漸接近圍棋之神的境界,可能需要不止一個(gè)競(jìng)爭(zhēng)者出現(xiàn),彼此切磋訓(xùn)練才有可能做到。甚至可以想象,人們最終會(huì)找到隨機(jī)生成新的圍棋算法的方法,海量生成大量競(jìng)爭(zhēng)者。但要做到這一點(diǎn),需要人們對(duì)圍棋和人工智能有遠(yuǎn)比今日更深刻的理解才行。
長(zhǎng)遠(yuǎn)來(lái)看,探索圍棋的規(guī)律,和探索圍棋算法的規(guī)律,在宏觀的時(shí)間尺度下本來(lái)不就是一回事么?
從某種意義上說(shuō),在遇到 AlphaGo 之前的人類(lèi)圍棋,整體上也是一個(gè)自我繁殖而逐步陷入過(guò)擬合的家族。雖然江山代有才人出,但是作為一個(gè)集體,始終在繼承著相似的傳統(tǒng),遵循著統(tǒng)一的范式。現(xiàn)成的定式和規(guī)律已經(jīng)被研究地如此透徹,以至于任何新穎的想法都會(huì)因?yàn)槌跎鷷r(shí)的弱小而曇花一現(xiàn)。在千年圍棋史上,也許只有本因坊道策和吳清源曾經(jīng)以一人之力掀起過(guò)整個(gè)圍棋觀念的革命。絕大多數(shù)情況下,后來(lái)者只是在通過(guò)自己的努力進(jìn)一步強(qiáng)化既有的棋理而已。
直到 AlphaGo 的出現(xiàn)。
于是我們看到一個(gè)強(qiáng)大的傳統(tǒng)遇到了新奇而健壯的挑戰(zhàn)者。從一開(kāi)始不屑的訕笑,變成了敬畏的崇拜,直到最終勇敢的接納。這并非一朝一夕之功,當(dāng)然總是會(huì)有抗拒和懷疑,會(huì)有恐懼、憤怒和絕望。更坎坷的部分也許還在后面。但是這一步一旦走出,就無(wú)法再后退了。
歸根結(jié)底,這是避免一個(gè)自我封閉的系統(tǒng)陷入衰敗的唯一途徑。固步自封,夜郎自大,筑起墻來(lái)抵御想象中的危險(xiǎn),把自我適應(yīng)的沉渣視為不可動(dòng)搖的根本,絕無(wú)可能生生不息欣欣向榮,而只會(huì)在自我滿足的道路上越走越遠(yuǎn)。
當(dāng)然不止下棋是這樣。
四、
有趣的是,人類(lèi)對(duì)人工智能發(fā)展速度的預(yù)期,常常既極端低估,又極端高估。在 AlphaGo 挑戰(zhàn)李世乭之前,大多數(shù)人本能地拒絕相信人工智能可以達(dá)到這樣的高度,認(rèn)為圍棋中某些普遍被認(rèn)為是屬于人類(lèi)的強(qiáng)項(xiàng),例如大局觀、直覺(jué)、平衡感、洞察力,是人工智能不可逾越的高峰。甚至有些人在看到對(duì)局結(jié)果之后,還是固執(zhí)堅(jiān)信人工智能只是以暴力和統(tǒng)計(jì)學(xué)堆疊出勝利,并沒(méi)有真正展現(xiàn)出人類(lèi)大腦特有的能力。但另一方面,很多人又在一夜之間開(kāi)始擔(dān)憂人工智能統(tǒng)治人類(lèi)的未來(lái),似乎人工智能從學(xué)會(huì)下圍棋到征服世界,只有一步之遙。
而事實(shí)是,人工智能早就開(kāi)始在許多關(guān)于直覺(jué)和美的領(lǐng)域里展現(xiàn)出創(chuàng)造性。三十年前,Harold Cohen 已經(jīng)開(kāi)始能夠讓電腦自動(dòng)畫(huà)出人們誤以為來(lái)自人類(lèi)畫(huà)家的畫(huà)作。二十年前,David Cope 編寫(xiě)的程序?qū)懗龅男ぐ铒L(fēng)格的馬祖卡舞曲已經(jīng)傳神到即使音樂(lè)專(zhuān)業(yè)的聽(tīng)眾也難辨真?zhèn)?。歸根結(jié)底,人的大腦在功能性的層面上只是一架精密的機(jī)器而已。既然是機(jī)器,就有被數(shù)值計(jì)算模擬和逼近的可能性。AlphaGo 所展現(xiàn)出的圍棋開(kāi)局時(shí)良好的「棋感」,再好不過(guò)地說(shuō)明了所謂的直覺(jué)并非無(wú)法量化,只是無(wú)法被我們自己量化而已。
但這是人類(lèi)的失敗么?
從茹毛飲血的穴居時(shí)代到游弋太陽(yáng)系的今天,人類(lèi)的進(jìn)步從來(lái)就不體現(xiàn)為本身生物能力的優(yōu)越,而體現(xiàn)于不斷創(chuàng)造出工具成為自我的延伸。我們制作出的機(jī)器跑得更快,飛得更高,算得更準(zhǔn),想得更深。但是歸根結(jié)底,定義人性的并不是我們的能力,而是我們的弱點(diǎn),以及我們?yōu)榱丝朔陨砣毕莺屯卣刮粗倪吔缢鞒龅钠D苦卓絕的努力。在這個(gè)過(guò)程中,在一次又一次失敗里,我們砥礪心靈、認(rèn)識(shí)自我、戰(zhàn)勝蒙昧和愚蠢,然后成長(zhǎng)。
我曾經(jīng)和朋友談及有哪些人工智能還做不到的事情。朋友說(shuō):人工智能至少無(wú)法設(shè)計(jì)出 LIGO 這樣的科研工程來(lái)探測(cè)引力波。我說(shuō):我不相信。LIGO 當(dāng)然是人類(lèi)智慧的結(jié)晶,但是考慮到人類(lèi)所能掌握的資源的有限可能性,讓人工智能設(shè)計(jì)出整套方案并非不可能。
我真正覺(jué)得人工智能無(wú)法做到的,是「想要探測(cè)引力波」這件事。
所以機(jī)器的發(fā)明從不曾阻止我們?cè)诮∩矸坷飺]汗如雨,或者尋求素?cái)?shù)定理的一個(gè)又一個(gè)新的證明。印刷術(shù)沒(méi)有取代書(shū)法,數(shù)字音樂(lè)的普及也無(wú)法消滅演唱會(huì)現(xiàn)場(chǎng)的淚水和歡呼。在圍棋三尺天地的手談之中,在須臾之間寸爭(zhēng)勝敗的纖毫境界里,人們所付出的長(zhǎng)久凝視和堅(jiān)忍血汗,所尋找到的對(duì)世界和彼此的理解,絕不會(huì)因?yàn)?AlphaGo 的出現(xiàn)而煙消云散。
它是我們的進(jìn)步的一部分。
紋枰對(duì)坐,從容談兵。
研究棋藝,推陳出新。
棋雖小道,品德最尊。
中國(guó)絕技,源遠(yuǎn)根深。
繼承發(fā)揚(yáng),專(zhuān)賴后昆。
敬待能者,奪取冠軍。
——陳毅《題<圍棋名譜精選>》
是為結(jié)束。
[原文鏈接] http://imaginary.farmostwood.net/597.html 知識(shí)共享 3.0 許可協(xié)議