論人類圍棋水平的極限
第一節、圍棋人工智慧對於人類已經是異次元的存在。
遙想幾年前,聶衛平大病初癒,接受圍棋TV採訪。記者問:「最近這些年圍棋有沒有出現什麼新技術?」老聶說:「新技術?那沒有。」
老聶說的是實情。幾年前的圍棋棋壇和八十年代六超時代大不一樣了。八十年代有武宮正樹的宇宙流,有趙治勳和小林光一極度注重實地的風格,有韓國棋手擅長亂戰的風格,也有李昌鎬官子決勝的風格。現在的職業棋手從小接受道場正規訓練,技術很全面。要想出成績,不能有明顯短板。由於互聯網的普及,棋手之間信息交流也更迅速。棋手之間的風格差異越來越小,似乎在棋界的共同努力下,大家正在朝著那個圍棋上帝快速收斂。
打破這歲月靜好的,是一篇Nature論文《Mastering the game of Go with deep neural networks and tree search》。
此物一出天下反。AlphaGo Lee以4比1的戰績打敗了李世石九段。古力在直播解說第四盤之前,回顧前三盤棋,說:「李世石九段在前三盤一個勝機都沒有。在這個世界上能這樣完勝李世石的棋手應該還沒有出生。」
越來越多的人開始接受圍棋人工智慧水平超過人類這樣的設定。在圍棋棋盤上,如果雙方水平有差距,可以讓子,來讓結果存在懸念。順理成章的,人們開始討論圍棋AI能對頂尖人類棋手讓几子。
早在幾年前《圍棋天地》雜誌中有一欄目以36問採訪各位職業棋手,其中有個問題是「如果有一個圍棋上帝,你覺得你和他的差距有多大?」感覺上大家認為3子差距的居多,也有少數職業棋手認為圍棋上帝讓不動自己兩子。當然,這也是沒法驗證的,因為我們沒辦法真的把上帝請來下一盤。
上帝我們是請不來,而人工智慧是能得到的。人類頂尖棋手和圍棋人工智慧的差距究竟多大呢?有人說讓先,有人說讓先倒貼,有人說讓兩子或者更多。
記得當時和朋友討論,朋友說肯定讓不動兩子的,畢竟人類研究圍棋已經幾千年了。我當時講:「肯定是讓得動的。天上一日地下千年。阿老師的一天就是我們的一千年。我上小學時候和同學下棋,總是贏,後來就不再下了。現在回想起來可能有業餘初段的水平,但是很長一段時間內覺得世界上沒有人能讓我四子,直到多年後遇到了一個業五教我做人。一百年前中國人也覺得自己厲害的不行,被日本人打到讓兩個讓三個。以弱者為尺,衡量不出強者的高度。今天我們面對阿老師也是一樣。」現在又過去了兩年,Master粉碎了人類分先一爭勝負的任何念想,而絕藝指導A讓兩子貼6.5目的高勝率已經說明了讓子也不是人工智慧的禁區。我個人認為這還遠不是終點。人工智慧的水平還將繼續提高。
第二節、圍棋人工智慧幫助人類提高水平。
先看看隔壁國際象棋界。在人工智慧強大了之後,很多老的變化被淘汰:西西里開局中國龍式變例、拉脫維亞棄兵、王翼印度進攻對付卡羅康、現代開局膽小鬼變例(感謝 @白小天 的答案白小天:深藍獲勝之後,象棋理論有很大的提升嗎?)。下棋下不過人工智慧,向人工智慧學習也就是順理成章的事情了。
圍棋界正在發生類似的事情。目前實力達到職業水平的人工智慧程序兩隻手數不過來。人工智慧的招法也被職業棋手大量採用:五路尖沖、碰無憂角、尖沖無憂角、碰小目大飛角,更不要說點三三。有些老的定式被人工智慧程序強烈否定,出鏡率越來越低。現在的圍棋直播員不開著一個人工智慧程序,不對照AlphaGo Teach都不好意思出來說話。
第三節、棋類水平存在理論上限,然而人類對此遙不可及。
在中國圍棋規則下,黑棋或者白棋必有一方存在必勝策略。具體分析見 @不會功夫的潘達 的回答必勝策略,圍棋之道。
這個圍棋的道,就是完美的下法。圍棋存在理論上完美的下法,這是和大多數運動有這本質的不同。
世界上最強大的國際象棋殘局資料庫是莫斯科大學研發的Lomonosov Endgame Tablebases,包含所有小於等於7個子的國際象棋殘局的結果的最優解法。也就是說,當棋盤上的棋子小於等於7時,人在和上帝下棋。
哈薩比斯在一次演講中說到:現在的國際象棋人工智慧程序的水平超過人類,因為在不同的局面下有不同的走法,而人類是不能完全記住幾十億種不同情況的。這是超越人類腦力極限的事情。
第四節、人類具有狀態壓縮能力。
人類具有一種總結和歸納的能力,如果用計算機的術語來說,相當於狀態壓縮的能力。這裡以國際象棋單車殺單王為例。
在計算機的資料庫中,單車對單王的情況下有兩個王一個車,一共三枚棋子。棋盤狀態總數大約為64^3約等於3*10^5。普通的人腦是不可能記住三十萬種棋盤狀態的。是不是人類就只能對此止步不前了?當然不是。事實上是任何一個接觸過國際象棋一天的初學者,都能簡單掌握單車殺單王的方法。
具體方法打開任何一本國際象棋入門就可以知道:
- 首先用車鎖住對方的王,使得對方的王盡量靠近邊線。
- 製造對王的條件。
- 對王的時候,用車將軍,將對方的王向著最邊上驅趕。
- 重複2,3,直到對方的王已經在最邊線,將死。
方法的精華就是把三十萬種情況綜合成一種情況來考慮,用一種演算法能解決所有的情況,並且使得這種演算法足夠簡單,對人腦足夠友好,讓人能記住。
第五節、人類追求運動極限時是在戴著鐐銬跳舞。
這是一種在人腦極限以內對目標的妥協。因為這樣的殺法,雖然能將死,但並不是步數最少的殺法,並不是最佳的走法。
把這種現象推而廣之,在其他運動項目上,人類所學的知識和動作要領,也是在人類生理極限下盡最大可能發揮人類潛力的方法。比如、跑步時候要吃香蕉,因為可以提供能量和鉀。不吃也能跑,但是成績上不去,因為人類離不開生理上腿部肌肉的限制。打斯諾克,要把頭擺正,下巴放在球杆上,因為這樣球杆是放在兩眼正中間。不這麼打,就打不準,因為人類離不開眼睛位置的限制。學打羽毛球時候,教練會教「為了強調擊球瞬間擊中發力,可以嘗試在擊球瞬間有一個制動的動作」。不這麼打,力量發不上,球速不快,對對方威脅小,因為人類離不開上肢結構和力量的限制。所有球類裡面,速度最高的是羽毛球。目前最高紀錄是李宗偉的408千米每小時。隨著球員力量和球拍技術的進步,這一記錄也許還會不斷刷新。李宗偉可以打408千米每小時,他當然想打508、608、1008,只是生理上目前無法完成。
無論是腦力和體力的運動,只要是人類參與,運動本身都不能脫離人類生理而存在,所以運動成績也存在著極限。
我的百米成績大約是14秒,國家級運動員可以跑到11秒,蘇炳添可以跑進10秒,博爾特可以跑9秒58。過去世界紀錄還很慢的時候,人們曾經認為10秒是人類的極限。而後隨著運動員身體素質的提高,訓練方法的強化和跑鞋技術的進步,記錄被不斷刷新,以至於到了今天的9秒58。但是,這種提高,再更高的高度看來,實在微不足道。博爾特的速度和我的速度差距大約只有50%。無論再過多少年,人類都不可能跑到1秒內,0.1秒內,人類速度都不可能達到0.99c。
圍棋作為一項運動,也存在著人類極限。
數千年來,人類在圍棋上發展出許多狀態壓縮的技術,比如:
- 局部死活:在一個局部先計算出死活狀態,再由死活狀態判斷全局優劣。這是一種針對人腦的優化。
- 殺氣:棋諺有云:「平氣先動手,長氣殺短氣。有眼殺無眼,大眼殺小眼。」實際上以數氣的結果判斷殺氣的結果,在計算機上就是把「階乘複雜度」變成「線性複雜度」,這也是一種針對人腦的優化。
- 官子:在官子階段很多官子互相是沒有聯繫的,可以分開計算。這在計算機上叫做「分治」。計算機並不容易判斷兩個局部之間有沒有聯繫。人腦可以相對容易判斷。這也是一種針對人腦的優化。
- 布局、定式套路:對應在計算機上就是開局庫,或者哈希表。把動態計算的結果儲存為靜態,直接提取使用。
- 棋諺、棋決:比如「二子頭必扳」、「遇劫先提」、「中心開花三十目」、「打一個不虧」等等。依照這些口訣,可以減輕人腦思維負擔。一方面在某些階段對提高棋力有幫助,但在另一方面對人腦也是禁錮。
縱然如此,也並不是所有狀態都能被壓縮的。舉例來說:下圍棋的人,對虛的地方的判斷特別考驗水平,因為很難講清虛的地方的一個棋子到底有多大的用處。這時候的選擇通常是展現一個棋手風格的時候。再比如圍棋上有一個名詞叫做「試應手」,顧名思義,就是試探對方的應手。這是一種無法全面計算清楚情況下的權宜之計。如果都算清了就不用試探了,對方也不會被人試探出什麼了。圍棋的複雜性決定了人類圍棋可以進步,但是終究有極限。就好比也許將來人類百米能跑進9秒,但絕對跑不進1秒。
第六節、理論極限、人工智慧極限和人類極限的比較。
第三節提到圍棋水平存在著一個理論極限,那是上帝的水平,受限於圍棋的有限的變化數;第五節提到了圍棋水平存在著一個人類極限,受限於人類腦力的生理極限。顯然人類極限低於理論極限。
那麼今天圍棋人工智慧的位置又在哪裡呢?在Master之後,棋界對於人工智慧超越人類不再有大的爭論。我認為,人類今後水平還會不斷進步,柯潔朴廷桓不是人類的終點。但無論怎樣,要讓將來的人類棋手戰勝頂級人工智慧程序,可能性非常小。Master、符合預期和絕藝指導A清楚地揭示了其中巨大的差距(布局階段一手棋以上)。也許在偶然情況下贏一盤,也並不改變大的結論。那就是
理論極限 > 人工智慧極限 > 現階段頂級人工智慧 > 人類極限
第七節、新時代圍棋規則的討論。
有了剛才的結論,再回想起對圍棋求道,理解就會有所不同了。既然人工智慧極限距離理論極限比人類極限要近,追趕圍棋上帝理應是人工智慧的責任,不是人類棋手的責任。圍棋求道,或者說數學上解決圍棋問題,等同於得到最佳貼目值。這個問題的最終求解,最可能是通過計算機硬體和軟體的進步得到解決,而非職業棋手在棋盤前的推演。在將來的某一天,Tromp-Taylor規則下貼X點(X為整數)情形下,黑白雙方完美應對,結果是和棋。那時候圍棋就被數學上解決了。
我平時和朋友常說:我們業餘棋手和職業棋手玩得不是同一種遊戲。這句話的意思是,雖然我們下的也是圍棋,職業棋手下的也是圍棋。但由於水平上的巨大差距,對圍棋的理解上有著天壤之別。今天有了圍棋人工智慧的參照,實際上即使是柯潔對朴廷桓的對局,也和Master的50盤自戰不是同一種遊戲。
我們業餘棋手下圍棋,是為了在業餘生活中得到快樂。職業棋手下圍棋,是為了在比賽中一爭勝負,這是一份工作。儘可能多贏棋是職業棋手的責任。人工智慧下圍棋,是為了驗證計算機技術(Deepmind),或者是為了在遙遠的將來能夠在數學上解決圍棋。目的是有根本的不同的。
那麼,在圍棋規則的制定上,能夠看出來人類圍棋規則和人工智慧圍棋規則是有結構性的矛盾的。如果人工智慧是為了在數學上解決圍棋,那麼最終的結局必然是和棋,這樣就要求貼目數必須是整數;如果人類棋手是為了贏棋,自然就盡量要減少和棋出現的次數,這樣就要求貼目數不能是整數。實際上在以前的時代是沒有貼目的,但是在今天商業化的環境下,主辦方和觀眾需要某些時候一局定勝負,如果出現和棋那麼對多方都是很大的成本,也就有了今天的圍棋規則貼6目半或者3又四分之三子。
那麼,圍棋規則一定要統一嗎?我認為不需要。追趕圍棋上帝,是電腦的事、是數學家的事、是計算機科學家的事,就讓他們去研究X值的大小好了。人類棋手,無論職業或業餘,利用他們的研究成果來提高自己的棋力,同時也幫助他們提高電腦的水平。在發展上可以相互促進,但在規則上無需統一。因為對人類來說,那裡已經是異次元的世界。
第八節、總結。
前一陣在騰訊圍棋絕藝冠亞軍挑戰賽,柯潔給大家帶來了精彩解說。期間他說:「以前考慮人類尊嚴什麼的,其實都是想多了。」
在烏鎮峰會的時候,柯潔曾經說這是和人工智慧下的最後三盤棋。我當時就立下flag,覺得柯潔不可能做得到。果然他現在又重新開始和人工智慧對弈了。隔壁國際象棋圈的發展已經清楚的告訴我們職業棋手藉助人工智慧是大趨勢。柯潔不會看不到這點。雖然勝機渺茫,但只要是拼盡全力了,我仍舊會關注他,為他鼓掌。
有人說圍棋人工智慧超過人類很正常,就像汽車比人跑的快很正常一樣。這邏輯我並不認同。因為人從原始社會以來,就知道自己不是世界上跑的最快的物種。人類都同意獅子老虎跑得都比人快。不認可這一點的人類基因已經涼涼了。然而圍棋不同,自從圍棋誕生的那一刻起,全宇宙的圍棋之王就只能是人類,結果突然來了這麼個玩意兒,職業棋手不適應是很正常的。更何況在中國,圍棋還承載著那麼多的文化意義。圍棋,別名「手談」。現在你和電腦談勝率嗎?
對於圍棋人工智慧的出現,對業餘棋手是無所謂的,只是又一次稍微有點特殊的江山易主。但是職業棋手的心態轉變畢竟需要時間。可喜的是在短短兩年內,職業棋手已經從AlphaGo Lee橫空出世的震驚和懷疑變成了虛心向人工智慧學習。著實令人欽佩。
向人工智慧學習,理解人類所能理解的部分,卸下求道的包袱,下好人類的棋。
推薦閱讀: