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