如何評價第四局比賽 AlphaGo 輸給李世乭?
本題已收錄至知乎圓桌 ? 對弈人工智慧,更多關於李世石對戰人工智慧的解讀歡迎關注討論。
人類戰勝AlphaGo的戰略在此!
李世石為什麼能戰勝AlphaGo?原理就在陳經的計算中
李世石為什麼能戰勝AlphaGo?原理就在陳經的計算中
陳經
【@中科大胡不歸 按:2016年3月12日,李世石對AlphaGo連負三局後,輿論對人類棋手充滿悲觀的空氣,普遍認為人類再也鬥不過電腦了。中國科學技術大學科技與戰略風雲學會研究員陳經對圍棋和計算機科學都素有研究,經過徹夜思考後,在3月13日凌晨寫出此文,原標題為《機器完勝後分析AlphaGo演算法巨大的優勢與可能的缺陷》。3月13日上午9:55,在第四局比賽開始前發表在觀察者網:陳經:在AlphaGo完勝後繼續分析其演算法巨大優勢與可能的缺陷。
第四局比賽,李世石在大勢落後的情況下,在激烈的戰鬥中下出絕妙的白78手挖,被古力盛讚為「神之一手」。此後AlphaGo突然好像不會下棋了,初學者水平的無理手連發,損之又損,最終認輸。李世石取勝的戰略是什麼?為什麼電腦會犯傻?答案就在此文中:大局觀要頂得住,不能早早被它控制住了。局部手段小心,不要中招。頂住以後,在開放式的接觸戰中等它自己犯昏。或者在局部定型中看它自己虧目。在接觸戰中,要利用它「不喜歡打劫」的特性,利用一些劫爭的分枝虛張聲勢逼它讓步,但又不能太過分把它逼入對人類不利的劫爭中。
向人類的理性致敬!向人類的意志力致敬!向人類的創造力致敬!在我們面前,是一個更廣闊的世界!】
2016年3月12日人機大戰第三局,AlphaGo執白176手中盤勝李世石,以3:0的比分提前取得了對人類的勝利。
這一局李世石敗得最慘,早早就被AlphaGo妙手擊潰,整盤毫無機會。最後李世石悲壯地造劫,在AlphaGo脫先之後終於造出了緊劫。但AlphaGo只靠本身劫就贏得了劫爭,粉碎了AlphaGo不會打劫的猜想。這一局AlphaGo表現出的水平是三局中最高的,幾乎沒有一手棋能被人置疑的,全是好招。三局過去,AlphaGo到底實力高到什麼程度,人們反而更不清楚了。
看完這三局,棋界終於差不多絕望了,原以為5:0的,都倒向0:5了。有些職業棋手在盤算讓先、讓二子是否頂得住。整個歷程可以和科幻小說《三體》中的黑暗戰役類比,人類開始對戰勝三體人信心滿滿,一心想旁觀5:0的大勝。一場戰鬥下來人類艦隊全滅,全體陷入了0:5的悲觀失望情緒中。
我也是糾結了一陣子,看著人類在圍棋上被機器碾壓的心情確實不好。但是承認機器的優勢後,迅速完成了心理建設,又開心地看待圍棋了。其實挺容易的,國際象棋界早就有這樣的事了。這個可以等五盤棋過後寫。
現在我的感覺是,棋界整體還是對AlphaGo的演算法以及風格很不適應。一開始輕視,一輸再輸,姿態越來越低,三盤過後已經降到一個很低迷沉鬱的心理狀態了。這也可以理解,我一個圍棋迷都抑鬱了一會,何況是視棋如生命的職業棋手。但是不管如何,還是應該從技術的角度平心靜氣地搞清楚,AlphaGo到底是怎麼下棋的,優勢到底在哪些,是不是就沒有一點弱點了?
現在有了三盤高水平的棋譜,質量遠高於之前和樊麾的五盤棋譜。還有谷歌2016年1月28號發表在《自然》上的論文,介紹了很多技術細節,還有一些流傳的消息,其實相關的信息並不少,可以作出一些技術分析了。
之前一篇文章提到,從研發的角度看,谷歌團隊把15-20個專家湊在了一起,又提供了巨量的高性能計算資源,建立起了整個AlphaGo演算法研究的「流水線」。這樣谷歌團隊就從改程序代碼的麻煩工作中解放出來,變成指揮機器幹活,開動流水線不斷學習進步,改善策略網路價值網路的係數。而且這個研發架構似乎沒有什麼嚴重的瓶頸,可以持續不斷地自我提升,有小瓶頸也可以想辦法再改訓練方法。就算它終於遇到了瓶頸,可能水平也遠遠超過人類了。
這些複雜而不斷變動的神經網路係數是AlphaGo的獨門絕技,要訓練這些網路,需要比分散式版本對局時1200多個CPU多得多的計算資源。AlphaGo演算法里還是有一些模塊代碼是需要人去寫的,這些代碼可不是機器訓練出來的,再怎麼訓練也改不了,谷歌團隊還不可能做到這麼厲害。例如蒙特卡洛搜索(MCTS)整個框架的代碼,例如快速走子網路的代碼。這裡其實有兩位論文共同第一作者David Silver和Aja Huang多年積累的貢獻。這些人寫的代碼,就會有內在的缺陷,不太可能是完美無缺的。這些缺陷不是「流水線」不眠不休瘋狂訓練能解決的,是AlphaGo真正的內在缺陷,是深度學習、self-play、進化、強化學習這些高級名詞解決不了的。谷歌再能堆硬體,也解決不了,還得人去改代碼。
第一局開賽前,谷歌就說其實還在忙著換版本,最新版本不穩定,所以就用上一個固定版本了。這種開發工作,有可能就是人工改代碼補消除bug的,可能測試沒完,不敢用。
總之,象AlphaGo這麼大一個軟體,從演算法角度看存在bug是非常可能的。在行棋時表現出來就是,它突然下出一些不好的招數,而且不是因為策略網路價值網路水平不夠高,而是MCTS框架相關的搜索代碼運行的結果。如果要找AlphaGo潛在的bug,需要去仔細研究它的「搜索 」。這可能是它唯一的命門所在,而且不好改進。
那麼MCTS的好處壞處到底是什麼?幸運的是,Zen和CrazyStone等上一代程序,以及facebook田淵棟博士開發的Darkforest都用了MCTS。它們和AlphaGo雖然棋力相差很遠,但是行棋思想其實很相似,相通之處遠比我們想像的高得多。
這是田淵棟貼的Darkforest對前兩局的局勢評分。可以看出,這個評分和棋局走向高度一致,完全說得通。而且谷歌也透露了AlphaGo對局勢的評分,雖然一直領先,但第二局也有接近的時候,能夠相互印證。如果到網上下載一個Zen,輸入AlphaGo和李世石的對局,選擇一個局面進行分析,也會有象模象樣的評分出來。這究竟是怎麼回事?
從技術上來說,所謂的局勢評分,就是程序的MCTS模塊,對模擬的合理局面的勝率估計。連AlphaGo也是這樣做的,所以幾個程序才能對同樣一個局面聊到一塊去。所有程序的MCTS,都是從當前局面,選擇一些分支節點搜索,一直分支下去到某層的「葉子」節點,比如深入20步。這個分支策略,AlphaGo和Darkforest用的是「策略網路」提供的選點,選概率大的先試,又鼓勵沒試過的走走。到了葉子節點後,就改用一個「快速走子策略」一直下完,不分支了,你一步我一步往下推進,比如再下200步下完數子定出勝負。這個走子策略必須是快速的,谷歌論文中說AlphaGo的快速走子策略比策略網路快1000倍。如果用策略網路來走子,那就沒有時間下完了,和李世石對局時的2小時會遠遠不夠用。下完以後,將結果一路返回,作一些標記。最後統計所有合理的最終局面,看雙方勝利的各佔多少,就有一個勝率報出來,作為局勢的評分。一般到80%這類的勝率就沒意義了,必勝了,機器看自己低於20%就中盤認輸了。AlphaGo的創新是有價值網路,評估葉子節點時不是只看下完的結果,而是一半一半,也考慮價值網路直接對葉子節點預測的勝負結果。走子選擇就簡單了,選獲勝概率最大的那個分支。機器也會隨機下,因為有時幾個分支勝率一樣。
MCTS這個框架對棋力最大的意義,我認為就是「大局觀」好。無論局部如何激烈戰鬥,所有的模擬都永遠下完,全盤運算元的個數。這樣對於自己有多少佔地盤的潛力,就比毛估估要清楚多了。再以前的程序,就不下到終局,用一些棋塊形狀幅射之類的來算自己影響的地盤,估得很差,因為一些棋塊死沒死都不清楚。MCTS就不錯,下到終局死沒死一清二楚。MCTS也不會只盯著局部得失,而是整個盤面都去劃清楚邊界。這個特點讓幾個AI對局勢的評估經常很相似,大局觀都不錯。MCTS對於雙方交界的地方,以及虛虛實實的陣勢,通過打入之類的模擬,大致有個評估。當然這不是棋力的關鍵,大局觀再好,局部被對手殺死也沒有用,可能幾手下來,局勢評估就發生了突變。
AlphaGo的大局觀還特別好,特別準確,主要是它模擬的次數最多,模擬的質量最好。而且這個大局觀從原理上就超過了人類!比如人看到一塊陣勢,如果不是基本封閉的實空,到底價值多少評估起來其實是非常粗的。高手點目時經常這樣,先把能點的目算清楚,有一些小陣勢如無憂角就給個經驗目數,然後加上貼目算雙方精確目數的差值,然後說某方的某片陣勢能不能補回這個差值,需要扣除對方打入成的目數,孤棋薄棋減目數。這類估算有很多不精確的因素。AlphaGo就不一樣了,它會真的打入到陣勢里,來回模擬個幾十萬次,每一次都是精確的!人絕對沒有能力象AlphaGo這麼想問題,一定是利用經驗去估算陣勢的價值,誤差就可能很大。極端情況下,一塊空有沒有棋,職業棋手根本判斷不清,AlphaGo卻可以通過實踐模擬清楚,沒棋和有棋相比,目數差別太大了。AlphaGo雖然不是嚴格證明,但通過概率性地多次打入模擬,能夠接近理論情況,比人類憑經驗要強太多了。我可以肯定,AlphaGo的大局觀會遠遠超過職業高手,算目也要准得多,所以布局好、中後盤收束也很強大。甚至Zen之類的程序大局觀都可能超過職業高手。
例如第二局這個局面:
李世石左下佔了便宜,本來局勢還可以。但是他70和72手吃了一子落了後手,被AlphaGo走到73,大局一下就落後了。這個在前面Darkforest對局勢的評估圖中都非常清楚,是局勢的轉折點。李世石要是手頭有個Zen輔助,試著下兩下都可能會知道70手不要去吃一子了。大局觀不太好的職業高手,比如李世石就是個典型,大局觀不如Zen真不一定是笑話。李世石比Zen強的是接觸戰全局戰的手段,要強太多了。MCTS實事求是不怕麻煩下完再運算元的風格,比起人類棋手對於陣勢價值的粗放估算,是思維上先天的優勢。
AlphaGo比其它程序強,甚至比職業高手還強的,是近身搏殺時的小手段。
第三局,李世石29和31是失著。29湊白30雙,雖然獲得了H17的先手,但是中間的頭更為重要。當黑31手飛出後,白32象步飛可以說直接將黑擊斃了。在盤面的左上中間焦點處,AlphaGo的快速走子網路會有一個7*7之類的小窗口,對這裡進行窮舉一樣的搜索,用人手寫的代碼加上策略網路。32這步妙招可能就是這樣找出來的,李世石肯定沒有算到。但是AlphaGo是不怕麻煩的,就一直對著這裡算,比人更容易看到黑三子的可憐結局。這個計算對人有些複雜,只有實力很強的才能想到算清楚,對AlphaGo就是小菜。李世石一招不慎就被技術性擊倒了。AlphaGo對這種封閉局部的計算,是它超過人類的強項。
但是AlphaGo的搜索是不是就天衣無縫了?並不是。來看第二局這個局面:
AlphaGo黑41手尖沖,43手接出作戰。最後下成這樣,這是三局中AlphaGo被眾多職業棋手一致認為最明顯的一次虧損失誤,如果它還有失誤的話。我們猜想它為什麼會失誤。關鍵在於,這裡是一個開放式的接觸戰,棋塊會發展到很遠的地方去。AlphaGo的小窗口封閉窮舉搜索就不管用了,就只有靠MCTS在那概率性地試。這裡分支很多,甚至有一個複雜的到達右上角的回頭征。我認為AlphaGo這裡就失去了可靠的技術手段,終於在這個人類一目了然的局面中迷失了。它是沒有概念推理的,不知道什麼叫「憑空生出一塊孤棋」。也不確定人會在50位斷然反擊,可能花了大量時間在算人妥協的美好局面。
再來看AlphaGo一個明確的虧損。第一局白AlphaGo第136手吃掉三子。這裡是一個封閉局面,是可以完全算清楚的。可以絕對地證明,136手吃在T15更好,這裡白虧了一目。但是為什麼AlphaGo下錯了?因為它沒有「虧一目」的這種概念。只有最終模擬收完數子,白是179還是180這種概念,它根本搞不清楚差的一個子,是因為哪一手下得不同產生的,反正都是勝,它不在乎勝多少。除非是176與177子的區別,一個勝一個負,那136就在勝率上劣於T15了,它可能就改下T15了。這個局面白已經勝定了所以無所謂。但是我們可以推想,如果在對局早期,局部發生了白要吃子的選擇,一種是A位吃,一種是B位吃,有目數差別,選哪種吃法?這就說不清了。AlphaGo的小窗口窮舉,是為了保證對殺的勝利,不殺就輸了。但是都能吃的情況下,這種一兩目的區別,它還真不好編程說明。說不定就會下錯虧目了。
經過以上的分析,AlphaGo相對人類的優勢和潛在缺陷就清楚多了。它的大局觀天生比人強得多,因為有強大的計算資源保證模擬的終局數量足夠,策略網路和價值網路剪枝又保證了模擬的質量。它在封閉局部的對殺會用一個小窗口去窮舉,絕對不會輸,還能找到妙手。它布局好,中盤戰鬥控制力強,都是大局觀好的表現。它中後盤收束差不多都是封閉局面了,基本是窮舉了,算目非常精確,幾百萬次模擬下來什麼都算清了。想要收官中撈點目回去不是問題,它勝了就行。但是想收官逆轉是不可能的,影響了勝率它立刻就窮舉把你堵回去。
但是封閉式局面的小手段中,AlphaGo可能存在不精確虧目的可能性,不知道怎麼推理。在開放式接觸戰中,如果戰鬥會搞到很遠去,它也可能手數太多算不清,露出破綻。但不會是崩潰性的破綻,要崩潰了它就肯定能知道這裡虧了,不崩吃點暗虧它就可能糊塗著。目前來看,就是這麼兩個小毛病。
另外還有打劫的問題。如果是終局打劫,那是沒有用的,它就窮舉了,你沒有辦法。如果是在開局或者中局封閉式局部有了劫爭,由於要找劫,等於強制變成了殺到全盤的開放度最大的開放式局面了。這是AlphaGo不喜歡的,它的小窗口搜索就用不上了。而用MCTS搜索,打劫步數過多,就會超過它的葉子節點擴展深度,比如20步就不行了,必須「快速走子」收完了。這時它就胡亂終局了,不知道如何處理劫爭,模擬質量迅速下降。所以,這三局中,AlphaGo都顯得「不喜歡打劫」。但是,這不是說它不會打劫,真要逼得它不打劫必輸了,那它也就被MCTS逼得去打了。如果劫爭發生在早中期手數很多,在打劫過程中它就可能發生失誤。當然這只是一個猜想。它利用強大的大局觀與局部手段,可以做到「我不喜歡打劫,打劫的變化我繞過」,想吃就給你,我到別的地方撈回來。當然如果對手足夠強大,是可以逼得它走上打劫的道路的,它就只好打了,說不定對手就有機會了。第三局李世石就逼得它打起了劫,但是變化簡單它不怕,只用本身劫就打爆了對手。
如果要戰勝AlphaGo,根據本文的分析,應該用這樣的策略:大局觀要頂得住,不能早早被它控制住了。局部手段小心,不要中招。頂住以後,在開放式的接觸戰中等它自己犯昏。或者在局部定型中看它自己虧目。在接觸戰中,要利用它「不喜歡打劫」的特性,利用一些劫爭的分枝虛張聲勢逼它讓步,但又不能太過分把它逼入對人類不利的劫爭中。這麼看,這個難度還真挺高的。但也不是不可想像了,柯潔大局觀好,比較合適。李世石大局觀差,不是好的人類代表。
本文進行了大膽的猜測,可能是一家之言。但我也是有根據的,並不是狂想。如果這篇文章能幫助人類消除對AlphaGo的恐懼,那就起到了作用。
作者簡介:筆名陳經,香港科技大學計算機科學碩士,中國科學技術大學科技與戰略風雲學會研究員,棋力新浪圍棋6D。21世紀初開始有獨特原創性的經濟研究。2003年的《經濟版圖中的發展中國家》預言中國將不斷產業升級,挑戰發達國家。2006年著有《中國的「官辦經濟」》。
致謝:感謝中國科學技術大學科技與戰略風雲學會會長袁嵐峰博士(微博@中科大胡不歸 )與其他會員的寶貴意見。
就第四局的具體情況多解釋幾句。有人說電腦輸是給人留面子放水,這當然是笑話。真正的原因是,在李世石78手挖後的複雜局面中,最強變化是打劫,而電腦由於不喜歡打劫,模擬中引發了bug。後面的無理手連發,是基於MCTS的圍棋軟體落後時典型的攪局行為,是電腦想偷得一點可憐的勝率。一旦電腦算出自己的勝率不高,就會寄希望於人類犯低級錯誤,於是下出各種損之又損的無理手。AlphaGo的表現說明,它正是一個典型的以MCTS為基礎的圍棋程序,雖然比ZEN強大非常多,仍然有著一樣的看上去可笑的bug。如果想消除這種可笑招數,需要電腦提高認輸的概率值。但這樣就更容易出bug,說不定有希望時就認輸了。
圍棋,我懂得不多,只能勉強看懂一點。
AlphaGo的論文我也沒讀完,也說不上什麼。
唯一感觸很深的是李世石先生,我想知乎國士之風那道題下面應該有新答案了。
作為一個已經0:3輸掉系列賽的職業棋手,前三局還被吊打,其生理,心理上的壓力甚至受到的折磨,不可謂不大。甚至今天開局,也因為壓力而有技術變形,能夠頑強地頂住壓力,下出關鍵的神之一手,真是了不起。
最了解你的往往是你的對手,古力當時是這樣說的:二十一世紀最偉大的勝負師之一。
國士之風!國士之風!國士之風!
--------------------------------------------------------------------------------------
還是說點正題吧,我很高興李世石先生贏下了一局,作為在大部分人認為AlphaGo九段將要橫掃李世石先生的時候仍然不多的相信李九段能贏的人,我也很驚喜。
第一局的失利對他而言壓力實在太大。唯一可惜是我無比希望,這盤棋是在第三局,那麼李世石先生在戰勝一局後,很可能連勝,心理作用實在太可怕。
昨天古力他們也有分析,在電腦自認為劣勢的情況下,會下出攪局的無理手。那麼想想第二局的五路沖尖,大家是不是很可惜,事後傳出AlphaGo九段認為當時幾個下法的概率是30+%對20+%,所以下了五路尖沖這一步。實際上李九段假如沒有任何負擔,正常布局,不敢說一定,至少贏棋的概率將會高很多吧。當然,這裡只是惋惜,正如李喆六段說的「易地而處,沒人能比李世石下的更好」。
而李世石九段也終於完成了測試員的使命,挖出了bug,只是這個bug是基於蒙特卡羅的缺陷,究竟怎麼補,我的水平暫時沒有看出來,感覺是需要重新學習甚至都不一定能修復的bug。現在想一想,第二局一直在裝逼的余教授至少有一點說的不錯:有了策略網路後,AlphaGo的小範圍拼殺現在也許是他的短板。所以暫時我們還可以很樂觀的說,AlphaGo的水平,是沒有超過人類一流棋手至少是太多的。
————————————————————————————
再說另一點令我動容的,假如換個位置,既然發現了bug,為了提高自己的勝率,我肯定會照著今天的思路,猛攻bug。然而,李九段在新聞發布會上主動要求下一局執黑,以尋求更多的突破。昨天我看了太多什麼運算力就是棋道的說法,然而今天我要說這個才是棋道:謙虛而頑強,並且永不滿足。我真的希望回國以後去看一場李世石先生的比賽,我會執弟子禮去見他。
————————————————————————————
其實我也是小學開始學的圍棋,只是只能在1/4小棋盤上贏,上了大棋盤就要跪,所以後來逐漸放棄了。我想今後,我還是會把圍棋撿起來,實在太有意思了,就算鍛煉思維能力也是不錯的選擇。同樣的,我想這次比賽對於圍棋的發展是有里程碑意義的,尤其是歐美,這場比賽受到了史無前例的關注,可以預見,圍棋界可能要來一場東學西漸了。別的不敢說,黑白子的魅力在極客圈裡應該是不下於萬智牌的。
我在學校的國際學生中心工作,建議我的主管舉行一場圍棋活動,並且在我給她看完相關報道後已經獲得了批准。
而且在這之後,能不能引入AI教學?AI挑戰賽?甚至類似足球門線技術一樣,推出電腦點目技術,縮短棋手在這上面花無謂的時間,給出更高質量的比賽,我想這些都是可以討論的。
————————————————————————————
最後再說一些令人不愉快的事情,知乎曾是我十分喜歡的網站,現在也是,否則我不會在這上面浪費我那麼多時間,然而太多的抖機靈實在令我討厭甚至噁心。
散布AI威脅論的,譏諷李世石先生的,說谷歌放水的,不一而足。
這些人里有多少是經過認真思考給出的結果,還是腦袋一拍就想要搞個大新聞?或者是隨大流?鬧好玩?
有多少人曾經學過圍棋?有多少人了解蒙特卡羅究竟是什麼?哪怕只是去看一眼,有一些粗淺的了解。阻礙文明的只有愚蠢!阻礙文明的只有愚蠢!阻礙文明的只有愚蠢!
李世石的表現無愧於人類棋手的代表。我兩天前的評價:
最後評價一句:李世石的表現無愧於職業棋手,無愧於曾經的世界最強。被alphago完敗是他的不幸,甚至一蹶不振;和alphago對戰也是他的幸運,以這樣一種方式載入史冊。
柯潔的職業素養實在厲害,推薦直播直播講解一同食用。
第二局結束:我不明白李世石為什麼迴避打劫,不知道是不是簽了什麼保密協議。
第三局結束:李世石拼了,但也不是這種拼法,而是要引入複雜局勢,中局開劫。
第四局局中:李世石要贏了。局末:alphago可能在迴避打劫,他也不是不可戰勝的。
——————————————分割線——————————————
本局的勝負手:
強行開劫。直接導致阿狗崩潰,惡手頻頻。
真的是佩服李世石,在大家都已經喪失希望的時候還在苦苦堅持,3局下來嘗試了無數的手段。終於在第四局用完全部盤中時間,讀秒階段逆轉翻盤。
如果不是李世石的堅持,甚至雙方對局時間少那麼一點點(阿狗此時用時領先小李1h),恐怕早已崩盤。是李世石的不斷努力,不斷嘗試,逼出了阿狗的bug。
雙方都很強,互相逼出了對方的缺點,不斷突破自己的極限。作為一個業餘半吊子棋迷,幸福感爆棚。
————————————分割線————————————
勝負的關鍵在於局勢複雜度和中盤開劫。
其弱點可能還是在於劫財的處理,特別是「連環劫」這種無限循環的可能對於蒙特卡洛方法來說可能是一個盲點,至少在劫財的價值判定和計算用時上來說對於計算機來說還是存在一些問題。也許保密協議中真的有「不能打劫」之類的規定,可能是一個「阿奇琉斯之踵」。
第三局局後我的評價:
打循環劫是最後的希望,也破滅了。
現在看來,打劫確實是阿狗的死穴。只是開劫和複雜度兩者,缺一不可。
為什麼阿狗不會打劫?這是蒙特卡洛方法的內在缺陷。
蒙特卡洛方法是阿狗的核心。根據模擬運算的結果決定現在的選擇,如果沒有確定的結果,阿狗的選擇就無從談起。電腦現在還不能直接算到中盤,所以他引入了快速搜索和中盤評估,比如說假設計算到25步之後比賽結束,直接計輸贏,這個計算量電腦還是算的過來的,電腦從中選擇勝率最大的走法。人類比如說只能計算到一、兩種變化的15-20步,局勢判斷(點目)還沒電腦快,差距還是挺大的,廣度(落子選擇的數量)和深度(算到選擇後的幾步)都遠不如電腦。
但是開劫對於電腦來說非常被動,因為打劫就是重複,你提我、我提你,大量的時間和資源被耗費在重複計算上,相同的時間只能計算到變化的5-10步,時間就不夠了,這種判斷下,簡直瞬間退回到業餘棋手的水平。所以引申出一個推論:阿狗的時間分配還有提升空間。這局78手時阿狗領先小李時間1個多小時,考慮應劫的時間卻和其他步數一樣只有1-2分鐘,之後局勢一敗塗地,人類早就覺得沒什麼好考慮的了還要浪費時間直至最後認輸。相比較而言,李世石的用時簡直狗屎運一樣的完美,盤中時間全部用完,讀秒階段勝負已定,沒什麼複雜變化了。
所以目前阿狗可能還不能準確判斷劫材的價值,判斷的水平還不如業餘棋手。但是一定要局勢複雜,而不是第二局尾盤那樣,阿狗把劫舍掉都躺贏,那就沒意義了。google的策略可能是盡一切可能避免打劫,特別是複雜情況的打劫。第四局中,阿狗寧可「亂下」,也不應78手開劫。最後認輸了都不敢開劫,真的是沒有其他解釋了。
再重複一遍勝負的關鍵:打劫價值難以判定(可能是最強手),計算時間有限,局勢複雜還有其他次優選擇,阿狗選擇次優。比如如果打劫阿狗勝率60%,但是1-2分鐘內阿狗不能評估,緩手勝率45-49%,阿狗選擇49%的走法。人類就從中佔了大便宜,簡直是發現了阿狗的「禁手」!
這可能是阿狗唯一的缺點,是其演算法決定的內在缺陷,恐怕一兩天之內調整幾個參數就能解決的。改變打劫時行棋的時間(比如讓阿狗多考慮5分鐘)可能會有幫助,但是感覺幫助不大,因為每多一步變化的複雜是指數增長的,時間增加只是線性的。如果李世石能在第五局巧妙的做劫,很有可能複製今天的勝利。
————————————分割線————————————
對於圍棋的意義
每一個超一流選手的出現,都會加深我們對圍棋的理解。阿狗亦如是。
圍棋原來是馬太效應如此強烈的遊戲,一著不慎,滿盤皆輸。在高手眼中,鞏固優勢隨便怎麼下都行,翻盤是幾乎不可能的。
第二盤的阿狗尖沖五路,第三局小李強行開戰(敗著),第四局78挖,勝負一手的感覺實在是撲面而來。這還是人類能看懂的部分,可能在阿狗或者更高級別的「圍棋之神」眼中,勝負已定,甚至之前早已確定,之後翻盤的嘗試都是徒勞和可笑的。你以為你想拼個魚死網破,實際上是在套緊自己脖子上的枷鎖。
以前沒有這種理解,是因為人類太弱,簡直是菜雞互啄,大家都看不懂,都計算不清,誰也不比誰高多少,有點優勢也會自己還給對手。一旦算的清楚,或者像阿狗一樣認為人類算得清。局勢只能是一面倒。比如阿狗從勝率48%和46%的兩手中選擇了48%的那手,人類可能根本算不出46正確應手,正好48的變化簡單,正確回應進一步把阿狗的勝率打到了46,惡性循環直至再難翻盤。就好像本局一旦開劫,小李也不見得會下,至少在讀秒階段時間緊張,很可能一個大勺就直接崩盤了。
一著不慎、滿盤皆輸。
————————————分割線—————————————
李世石的勝利閃耀著人類的光輝,堅韌、拼搏、理智、智慧,你可以堆疊一切的讚美,小李可以當之無愧的接受。
但是人工智慧的勝利,並未因此受到半點的染塵。
1996年,深藍第一次卡斯帕羅夫,2:4告負。
1997年,深藍捲土重來,前六局2勝3平1負,第七局卡斯帕羅夫19手棄子投降。
何況,3:2,alphago又沒輸。
首先,向李世石致敬,不愧是大勝負師,能在絕境中弈出妙手擊中AlphaGo軟肋,獲得彌足珍貴的一勝。無論是棋手、棋迷還是賽事舉辦方,無不歡欣鼓舞,這是一場沒有失敗者的比賽。
雖然李世石經過無數大勝負,但這一戰的殘酷程度依然前所未有。他不僅要在億萬同類的注視下承擔「人類代表」的壓力,其對手也是空前強大(連最不服氣的柯潔都承認:「阿爾法圍棋確實是有史以來我見過最強大的對手」)。在三次失利一次比一次絕望的逆境之下,李世石憑著強大的意志和天才的直覺,終於擊中對手的阿喀琉斯之踵,不僅贏得其作為人類和頂級棋手的尊嚴之戰,也圓滿完成了他第三個身份——Google測試工程師的任務。這一局勝利的意義,用他本人賽後一句話來說便是:「我不會拿它跟任何東西交換」。
人類是情緒化的動物。棋手如此,棋迷亦是。賽前除AI專家外的絕大多數人(包括李本人)對AI有輕視之心,結果人類連敗三局之後,幾乎都陷入絕望(包括本人在內)。現在扳回一局,「機器也不過如此」之類的說法又甚囂塵上。
平心而論,這次李世石的勝利既有一定的必然性,也有一定的偶然性。
所謂必然性,除開他有著堅強的意志力和賴以成名的敏銳棋感以外,很重要的一點是:他在總結三次失利的教訓後在策略上更有針對性。據說李相勛給李世石提過建議:「把大模樣讓給AlphaGo,然後中心爆破」,此法果然奏效。這也側面回答了許多職業棋手的疑問:為什麼盤中李處處退讓,當斷不斷(此處「斷」非決斷之「斷」,乃圍棋術語),是不是被整得沒有脾氣、喪失血性了?現在看來,李很可能有意把棋走紮實,耐心等待對手可能露出的破綻,故而採取「先撈後洗」的策略,考驗對手攻殺的本事。因為「從計算的意義上,攻殺比治孤更難」(出自李喆: 寫在第五局之前)。另一方面,AlphaGo是一款軟體,而軟體(何況是如此複雜的軟體)不可能沒有bug,尤其沒有經過頂尖棋手的測試,其可靠性必然存疑。事實上,這也是Deepmind舉辦這次比賽的主要原因之一。給頂級棋手充分的時間,他們找到bug幾乎是必然的事情。
偶然性在於,李世石在短時間真的觸碰到AlphaGo的一個bug。今天(3月15日)Deepmind創始人Demis Hassabis在推特上說:
Taken a quick look at the logs: AlphaGo gave a probability of &<1 in 10000 for Lee"s brilliant move 78, so AG found this move very surprising
This meant that all the prior searching #AlphaGo had done was rendered useless, and for a while it misevaluated the highly complex position
這說明李世石那步妙手(78手)被AlphaGo認為出現的概率小於萬分之一,故未深算。本來沒有算到此步也不至於崩盤,包括柯潔在內的職業棋手認為機器若應對得當,依然有微弱的優勢。糟就糟在,AlphaGo的value network出了問題,認為自己的勝率仍在70%以上,直到87手才意識到自己的錯誤。
Mistake was on move 79, but #AlphaGo only came to that realisation on around move 87(Hassabis語)
可惜為時已晚,這時AlphaGo終於暴露出機器的本來面目,接連弈出連業餘棋手都看不下去的「弱智棋」,從而敗北。從這個意義上說,李世石也確實很幸運,或許會成為戰勝AlphaGo(或其同類)的最後一位人類。這是事實描述,毫無抹煞李作出巨大努力之意。事實上,沒有超一流的實力和勝負心,人類也是逼不出機器的失誤的。
從必然性中我們看到人類的希望和可貴之處,從偶然性中我們看到機器雖非不可戰勝,但早晚會在越來越多的場合遠超人類。其實「戰勝機器」與「戰勝自然」一樣是偽命題——機器本就是人類的產品,而人類則是自然的產物。此次大戰意義深遠,請人類放下固有的傲慢之心,拋開無恥的陰謀論和無聊的段子,從中獲得的應該比自己想像的還要多得多。
1.電腦的估值演算法並非完美,仍有弱點
2.電腦未能判斷宏觀形勢,來決定是否「長考」。這應該是下一步改進方向。
3.李世石未被壓力擊垮,體現強者風範。
這尼瑪都第四局了?3.10
送給知乎一句貼吧上的名言:相信陰謀論,智商自動減一半。
另:敬佩李世石,他守住了棋界尊嚴,輸得光榮,贏得磊落。不說了,看圖。
[圖片未上傳成功]
來源Twitter。
他做到了,是英雄
說明alphago還不是最終形態,尚有提升空間。說不定betago就能橫掃人類了..
其實對比象棋就很好理解,象棋的另外一個分支叫排局,也可稱之為江湖殘局。排局中的某些招法,就符合「神之一手」的情況,這種神招,在通常的對局下是基本不會(出現概率非常小)出現的。第78招,白棋放入三個黑子當中,就可理解為這種情況,alphago的估值函數對此招估值太少,沒引起重視而忽略。
alphago以後只需不斷增加對此種神招的判斷,就可以不輸給人類了。
不必大驚小怪,人類棋類對弈的精彩就在於此。alphago自己對下,很難遇到這種排局類的「神招」。
在確實了邊界規則的棋類,人類是完敗給電腦。
假裝通不過圖靈測試的機器人?接下來是不是人類審判日的劇情啊。
先看看2015年10月左右AlphaGo的水平,當時它大概是職業5段水準。
圖中綠色是就是歐洲圍棋冠軍Fan Hui了,另外幾項也都是圍棋AI。當時AlphaGo的單機版與FanHui接近。再看當時與FanHui的10場比賽。
FanHui在非正式比賽中也曾贏過兩盤。所謂非正式,即限制AlphaGo的運算時間的情況下進行的比賽。此時的AlphaGo的棋力已經有職業選手水準,根據Deepmind測算,大約是職業5段水準。
而在這幾個月的時間裡,AlphaGo的核心思想與代碼不太可能有什麼大的改動,我們可以從Nature上的這篇論文尋找李世石第四局比賽的取勝原因。
為了簡潔明了的說明這個問題,我們直接以AlphaGo與FanHui的比賽為例,來大致了解一下AlphaGo的決策方法。
這張圖展現的是AlphaGo與Fan Hui的一局比賽中的某一步決策過程。AlphaGo執黑,FanHui執白。我們可以看到,AlphaGo在一步決策過程中使用了兩種不同的方法(結合了蒙特卡洛方法跟神經網路分析)來確定下一落子可能的勝率(b-c,藍色代表棋子的可能位置,數字表示勝率)。
兩種方法所確定的落子位置勝率有所區別,勝率最大的位置並不一定一致。這樣AlphaGo的選點就有多種可能,其可能的下法跟出現的概率如e圖(所以想著只要贏一局照著來下就可以贏的可以洗洗睡了)。勝率是通過大量的對局(至少千萬量級)加上蒙特卡洛方法估計出來的,這裡難有文章可做。而為了簡化運算,DeepMind團隊僅對「經驗」上可能出現落子的位置進行了計算和估計。
雖然這種估計已經參考了大量職業選手的對局,比如f圖中FanHui在黑棋落子後的白棋1,但顯然並不能包含所有可能的落子位置,比如今天李世石的78手,堪稱「神之一手」的這一步,很可能就不在AI的經驗之內,使得AI的估計發生偏差,導致後半盤的不可收拾。
除此之外,我們從b,c圖中也可以看出,AI在開局對於形勢的判斷並沒有我們預料的那麼精準,因為此時各落子位置的勝率相差不大,這也是因為圍棋後半段變化太多的緣故。又因為AI對於勝率相對較高的位置都有選擇的可能,這就導致AI在開局可能下到職業選手認為不佳的位置,而這只是AI的正常表現,絕非什麼坑!而在後半段,由於選擇的餘地已經不多,AI的強勢才逐漸顯示出來,此時即使是頂尖的職業棋手,都不能在AI手中佔到便宜了。
由此可見,另一種戰勝AI可能的方法就是在前半段盡量分散布局,增加AI「犯錯」的概率,逐漸積累優勢,從而使AI在後半段無力挽回局面。
今天的對局,李世石應該贏在了第一點。同時也表明在現階段,AlphaGo並非不可戰勝。
PS:其實限制時間是對李世石的不公平。顯然測試AlphaGo並非是主要目的,主要為了什麼,看看谷歌最近幾天的股價就知道了。推薦閱讀:
※DeepMind 研發的圍棋 AI AlphaGo 是如何下棋的?
※如何看待人機大戰第四局李世石戰勝 AlphaGo?
※如何評價 AlphaGo 自我對弈 50 盤棋?
※類似AlphaGo一樣的人工智慧什麼時候才可以擊敗RTS(如星際)頂級選手?