ZT 李喆剖析:李世石的策略與AlphaGo的弱點

李喆剖析:李世石的策略與AlphaGo的弱點

李喆李喆

  喆理圍棋 李喆

  這必將是載入史冊的一天。

  人機圍棋巔峰大戰第一局,人類輸了。

  賽前的預測,棋界絕大多數認為李世石必勝,科技界則大約是兩派各半。

  認為李世石必勝的一方並非全都是出於傲慢無知,更多人不能相信的隻是——這麽快。科技界也有很多人了解算法之後認為AlphaGo還不足以戰勝人類

  從去年10月的五盤棋譜,到穀歌公開的論文,人們認為圍棋AI仍然存在弱點,存在不能在這麽短的時間內解決的問題,而這些問題將會導致AI在巔峰對決中失利。

  然而,

  李世石輸了。

  關於這盤棋,會有很多解讀。不止在今天,甚至在數十年之後,這盤棋還可能會被拿出來研究,從棋譜上,更從人機不同的思維上。不論未來回看這盤棋的是人類還是真正有了自我意識的AI,想必都會有與當下的我們不同的感受。而我們有義務把我們的感受和思考記錄下來,讓後人知道當時的人究竟是如何理解這盤棋,他們有哪些錯誤的認識、可笑的想法,又有哪些深刻的洞察。 

  我們來看看,今天這盤棋,究竟發生了什麽。這盤棋可能將是有史以來職業棋手最難以統一意見的對局,以下觀點是我個人見解,隻是在圍棋AI時代毫無預兆迅猛而來時,一名棋手盡可能理性的分析和思考。 

  一、李世石的針對性策略

  從棋譜來看,我認為李世石在這盤棋前後主要使用了一個試探,和兩個策略。

  1)試探:從未出現過的布局

李喆剖析:李世石的策略與AlphaGo的弱點

  李世石第7手,沒有按常規布局在上邊連片,而選擇走在右邊。李世石自己在職業比賽中從未使用過這一開局,甚至整個職業圍棋界,沒有人見過這一開局。 

  李世石不按常規布局,顯然是對電腦的一種試探。在去年10月AlphaGo對樊麾的五盤棋中,所有開局都是常規布局,雖然那五盤的開局在今天已經不是主流,但都是曾經流行一時的布局。 

  避開流行布局,甚至避開曾經流行過的已經被淘汰的布局,選擇一個從未出現過的布局。李世石在考驗AlphaGo在布局階段的應變能力。我們知道AlphaGo的深度學習基於大量已有對局的數據,那麽,麵對一個棋譜庫裏從未見過的布局,AlphaGo你將如何應對? 

  AlphaGo給出了完美的回答。

李喆剖析:李世石的策略與AlphaGo的弱點

  白8掛角正常,黑9二間高夾最為激烈。白10,這一手……非常出色。

  通常情況下,在右上白8遭遇二間高夾的時候,白10是“不存在”的一手,它不在任何定式之中。麵對黑9,白棋有諸多定式選擇,卻沒有白10這一手。

  然而,我認為白10是好手。

  白10的好處在於使黑7變成效率低下的一手,雖然在右上局部白棋稍稍虧損,但加上黑7的低效,白棋一點也不吃虧。 

  AI竟然會通盤考慮!傳統的圍棋AI,會根據已有棋譜來走定式,定式是經過長期檢驗的局部雙方可以接受的定型。然而定式的弊端就在於,不同的周圍環境,定式的適用性有所不同。從這盤棋來看,黑9夾擊之後,白棋如果選擇麵對二間高夾最常用的“妖刀”定式,即走在15位,反而將使黑7的位置成為絕對的好點,黑7的效率將會大大提升。

  實戰白棋選擇了一個定式裏沒有的、局部稍虧的、卻使得黑7這個遙遠棋子的效率變低的下法,非常清楚地證明了兩點:

  • 電腦不依靠背譜來下棋

  • 電腦的考慮基於全局而非局部。

     

  當然,第一點其實在對樊麾的棋譜中已經可以看出來。在對樊麾的常規開局中,AI出現了數次不同於“譜著”的下法。其中有一盤出現“大雪崩”定式,電腦選擇的次序是定式和棋譜裏沒有的,而且是從邏輯上不如譜著的。注意,這裏強調是邏輯上不如譜著,而不是在經驗上。即,AI當時的次序是“絕對弱於”譜著,隻可能虧沒可能便宜,雖然選點是正確的,但在我們看來是“次序錯誤”。這體現出,AlphaGo不依賴於定式和譜著,但也暴露出AI在邏輯上的不足,反應在棋盤上就可能會出現次序錯誤。這一點,也是棋手普遍不看好AI能戰勝李世石的一個原因。

  但這一問題在這盤棋我們並沒有看到。起碼,沒有非常明顯地顯現出來(後麵會提到一個細微的類似問題)。

  而第二點則是這盤棋AI開局給我們秀出的能力。他輕易擺脫了李世石設下的定式圈套,以全局的視野作出了定式中不存在的選擇。

  如果說第一點是我們在AlphaGo對樊麾時已經能夠看到的情況,那麽第二點則是這局棋在布局階段對人類試探的完美答複。如果隻依靠大量棋譜堆砌出來的局部圖像識別,AI做不出這樣的選擇。

  2)策略一:開放式複雜局麵

  李世石第一次試探得到了AI的完美答複,然後李世石使用了他的一個重要策略。從局後來看,正是這一策略導致了李世石局麵的被動,但在賽前,我們並未想到這一點。

  我們不知道李世石在賽前有沒有接受人工智能領域專家對Alphago算法的分析,但從李世石采取的策略來看,他顯然有非常強的針對性。

  我們知道,深度學習在圍棋盤上的主要作用是大量剪枝,通過價值網絡和策略網絡,將搜索的空間大幅減小,形成“棋感”。在這個基礎上,再輔以傳統的蒙特卡洛算法做搜索計算,最終確定落子的選擇。圍棋中存在一些封閉的計算空間,比如局部的“死活題”,對於AI而言可以通過窮舉來遍曆每一個選點,從而完成計算,得出落子點。但圍棋中更難的部分是開放式的複雜局麵,每一處的不同選擇都會波及到其它地方,所謂“牽一發而動全身”。而這種局麵頭緒繁多,可供思考的選點很多,不同選點之後變化的深度和廣度都很大,並且往往一個細微的計算失誤會導致整局棋的徹底失敗。對於職業棋手而言,這種局麵正是最難把握的局麵之一。

  賽前有人猜測,AlphaGo的剪枝麵對開放性複雜局麵的效用將會降低,而搜索的深度廣度和準確度要求又使得AI不能依靠蒙特卡洛算法達到精確,因此這很可能是基於深度學習和蒙特卡洛的圍棋AI的一個弱點。

  不論李世石是否了解到這些,總之他使用了一個策略:迅速導入開放式複雜局麵。

李喆剖析:李世石的策略與AlphaGo的弱點

  這裏不做過於具體的技術分析。李世石第23手靠,和第27手擋,將局麵導向了開放式複雜局麵。原本李世石有更為柔和的選擇,但他選擇了最為強硬的下法。我們看到,AI的白24、26、28是非常敏銳的戰鬥嗅覺,完全沒有避戰。

  從我的經驗來看,這個戰鬥是由黑方挑起的,而黑方挑起戰鬥的時機並不成熟。在勢均力敵的對局中,我們往往會試圖在認為有超過50%成功率的時機選擇戰鬥,隻是棋手有力戰派和穩健派的分別,力戰派對於戰鬥的判斷會更為樂觀一些。

  李世石是偏力戰的棋手。但在本局中,這一開戰時機仍然是過早了,可以說是立足未穩時衝向了敵營。我相信在對手是人的情況下李世石通常不會如此選擇,他會尋找一個更合適的時機展開戰鬥,而且他本身就是一個極為擅長尋找戰機的大師。

  但是他選擇了不等布局結束,直接開戰。

李喆剖析:李世石的策略與AlphaGo的弱點

  至此,形成了六七塊棋互相糾纏的局麵,頭緒非常之多。這是典型的開放式複雜局麵。仔細觀察可以看到,AI是有機會避開這種局麵的。

李喆剖析:李世石的策略與AlphaGo的弱點

  白42手可以選擇在1位這裏貼吃,選擇吃掉中間兩子,棄掉上邊三子形成轉換,如此便會避免複雜的戰鬥局麵,形勢也並不落後。

  但實戰白棋選擇把上邊三子跳出,形成混戰局麵。這是更強的下法。 

  那麽,在進入開放性複雜局麵之後,AlphaGo的表現如何呢? 

  答案是,非常好。

李喆剖析:李世石的策略與AlphaGo的弱點

  下午我在新浪和俞斌老師一起做現場直播時,同步進行至此,俞老表示擔心白棋上邊二路立一個先行搜刮,趁黑立足未穩先賺取利益。話音未落我們就看到AlphaGo下出了這一步。

李喆剖析:李世石的策略與AlphaGo的弱點

  這步靠,本身似乎是“不成立”的,因為黑棋可以輕易地征吃白棋。這一步是業餘棋手絕難想到的下法,因為白棋右上自身正處於防守狀態,順著往下貼是本能下法。然而AI下出這一步,在防守時反手一擊,包含了棄子整形、試問應手等諸多人類理解的含義。

李喆剖析:李世石的策略與AlphaGo的弱點

  誠然,黑棋可以很輕易地吃掉白棋靠出來的這個棋子,但代價是黑1的俗手打吃和白4的先手便宜。職業棋手能夠很容易地看出白棋送一個子整形是有所便宜的,但AI也能輕鬆地做出這一判斷,並且在防守時有此“意識”,真的很神奇。

  當然,對於跨斷送吃這步棋究竟是否“好”,棋界並不能給出十分確定的統一答案。但是AI下出這步棋,仍然是對其能力的展現,起碼認為AI不會主動棄子、不會防守反擊的論斷可以休矣。

李喆剖析:李世石的策略與AlphaGo的弱點

  棋局至此,其間的進程在這裏不做技術細節上的評論。簡而言之,麵對開放式複雜局麵,白棋處理得井然有序,該棄的棄,該取的取。李世石的第一策略宣告失敗。

  這證明了,基於深度學習和蒙特卡洛的圍棋AI麵對“開放性複雜局麵”時的能力並未如設想般下降,反而應對得法,在李世石挑起不利戰鬥的情況下取得了局麵的領先。

  李世石或許意識到了這一策略並未奏效,於是迅速調整,進入了第二策略。 

  3)策略二:膠著的細棋局麵

  事實證明AlphaGo並不懼怕複雜的戰鬥格局,於是李世石選擇及時收手,試圖將局麵導向細棋。

  細棋局麵下,要求雙方在每一處細小的地域爭奪上都盡量做到極致,一兩處的失誤雖然不會造成大片傷亡,但常常足以致負。 

李喆剖析:李世石的策略與AlphaGo的弱點

  第77手,這是李世石第二策略的開始。這手棋宣告停戰,進入膠著的細棋狀態,比拚後半盤的功力。如果不選擇停戰,李世石可以考慮直接在左下掛角,引誘白中腹兩子逃出,進而繼續戰鬥。

  但李世石認為第一策略的試探已經完畢,沒有奏效,因此選擇了第二策略。 

  接下來的棋局,我們轉換一下視角,從AlphaGo的角度來探究。 

  二、AlphaGo的爭議著法

  關於AlphaGo在此局的表現,棋界比較一致的觀點是從布局到中盤的激戰白棋下得很好,分歧點主要在對AlphaGo在後半盤的表現。

  1)  緩手?

李喆剖析:李世石的策略與AlphaGo的弱點

  第一個焦點是第80手。上一手黑棋剛在下邊掛角,白棋正常的下法是在左邊跟著守一步。但實戰白棋選擇脫先,在左上補了一手。

李喆剖析:李世石的策略與AlphaGo的弱點

  黑棋上一步沒有選擇在左上馬上行動,是認為這樣直接作戰並沒有把握。實戰先在下邊掛角,穩住實地,再作圖謀。

李喆剖析:李世石的策略與AlphaGo的弱點

  麵對左下掛角,局部跟著應一個是最常見的下法。但黑棋在確保了下邊的地域之後,左上可能會選擇現在2位迂回,如果白棋毫不退讓,那麽6位再戰出相當嚴厲。如果白棋退讓,黑棋可以得到左上的角地。這裏具體的定型變化並不容易得出結論,存在不少分支。

李喆剖析:李世石的策略與AlphaGo的弱點

  實戰白棋選擇了脫先補左上,左下黑棋得到“雙飛燕”作為補償。至此,對棋局的判斷出現分歧。做直播的棋手中,有一些認為此時已經是黑棋優勢,白棋上一步補棋是大緩手。也有人認為白上一步雖然緩,但形勢還是白棋不錯。 

  上一步究竟是不是緩手?我們這裏先不做結論,往下看。

  2)  惡手?

  下一個焦點在第86手。

李喆剖析:李世石的策略與AlphaGo的弱點

  白86斷,又是棋譜裏沒有的下法。不過對局至此,我們對此已經並不驚訝。這步斷的意圖對人而言很好理解,由於黑棋右邊很厚,白棋想通過棄子整形,使黑棋的厚勢變得重複、效率低下。從人的角度來看,這是白棋最明顯的意圖。

李喆剖析:李世石的策略與AlphaGo的弱點

  實戰結果,棋手普遍認為左下白棋虧損,並且是嚴重虧損。這是因為,黑棋圍住了一大塊空,白棋實地受損。 

李喆剖析:李世石的策略與AlphaGo的弱點

  普遍推薦的變化是這樣,白棋在確保自身安全的同時盡可能縮小黑棋的地域。有人認為,這樣的進行白棋比實戰“便宜一個貼目”,也就是六七目。如果是這樣,實戰白棋的選擇虧損嚴重。

  但是,這個圖存在一定的風險,關於這個風險我們留到後麵來說。

  三、載入史冊的一手!

  左下定型結束,人類棋手普遍產生樂觀情緒:李世石優勢,AI也不過如此嘛。

  然而,接下來的AlphaGo的一步棋成為了此局最為閃耀的明星。

李喆剖析:李世石的策略與AlphaGo的弱點

  白102,右邊三路點!

  這一手必將載入圍棋的史冊,與古今諸多妙手共同譜寫燦爛的篇章!

  在未來的AI棋譜中,必將留下非常多震撼人心的妙手:它們或許比這一手更加精妙,或許比這一手更加深奧,但它們都無法取代這一手在圍棋曆史中的位置! 

  此手完全出乎了李世石的預料,他麵對這一手,進行了全局唯一一次長考,仍然遭受重創。

  在直播時,也有職業高手在白棋下出這一步之前已經預測到這一手。但是,對於人而言這裏有一件非常有趣又苦惱的事情:對局者對於對方這種著法的預計往往不如觀戰者。

  這是因為,觀戰者可以很輕鬆地站在雙方的立場來思考棋局,為雙方尋找最強的著法;而對局者更多時候是在思考自己的著法,相較而言會容易忽略對方隱蔽的強手。李世石如果預料到這一手,或許會在之前找機會刺一下作為防備。但作為對局者很難有如此周密的行為,尤其在麵對AI的時候,更難想到電腦會有如此強的手段。 

  更有趣的是,這一手包含了相當大的計算量,有不少需要計算的分支,如果是人來下,即使能想到這一步,離真正算清楚並下出來還有不小的距離。也就是說,即使人類看到這一步,也要通過大量時間的計算來驗證這一步是否成立。然而,電腦下出這一步,並不比其他的著法用時更長,相反比後麵一些人類看來簡單甚至必然的著法用時更短。

  我們不禁要問:AI真的都算清楚了嗎?

  AI、真、的、都、算、清、楚、了、嗎??

李喆剖析:李世石的策略與AlphaGo的弱點

  實戰的結果是這樣,白棋右邊先手割下黑棋三子,回到左上守角。順便提一句,這裏守角的手法值得注意,大量棋譜以及多數棋手的第一感都會走在旁邊一路,但隻要仔細看一下就會發現,此局麵下實戰AlphaGo的選點更好。 

  棋局至此,我認為已經是白棋稍優的局麵,但也有人認為仍是細棋。

李喆剖析:李世石的策略與AlphaGo的弱點

  實戰黑棋123手以下明顯虧損,如圖尖頂活角優於實戰。但此圖究竟誰勝,還需要深入的仔細研究。我個人的意見是,白棋稍優,並且我猜測AlphaGo也認為能贏。 

  黑123以下在目數上虧損了接近一個貼目,使得棋局直接失去了懸念。最終雙方盤麵接近,李世石無法貼目,投子認負。

  我們驚異於AlphaGo的表現,驚歎於李世石的敗北。對於接下來的比賽,很關鍵的一個問題是,AlphaGo究竟有沒有失誤?

  四、AlphaGo的“失誤”

  這盤棋AlphaGo有沒有失誤?

  令人欣慰,從人的眼光來看,我們可以找到AlphaGo的明顯失誤。這種失誤不是指那種基於人類經驗而認為的失誤(經驗有可能會騙人),而是可以通過邏輯分析來確認的失誤。

  1)“失誤”一:

李喆剖析:李世石的策略與AlphaGo的弱點

  白136手吃。對於職業棋手而言很容易判斷,應該吃在一路,比實戰便宜大約1目。

  2)“失誤”二:

李喆剖析:李世石的策略與AlphaGo的弱點

  白142手擋,對於職業棋手而言,這也是一個很容易確認的明顯虧損。

李喆剖析:李世石的策略與AlphaGo的弱點

  白棋正確的下法是1位跳,這樣將來留下了5、7、9吃兩子救回三子的下法,從目數上分析明顯優於實戰(大約1-2目)。即使白棋不在5位扳,走8位先手粘掉也優於實戰一點點。

  這兩處“失誤”都是在局部,沒有任何與外界的關聯性,屬於封閉式的失誤,其虧損可以用邏輯推理的方式證明。相較於AI展示出來的水平,似乎這兩個失誤是“不應該”的。

  基於此,又有棋手表示:“這都看不到,AI不過如此啊”。

  前麵“惡手”裏講到的左下角白棋的問題,也有人看做是第三個失誤。但那個失誤的性質與這兩個不同,我們對那個失誤的認定在很大程度上還是基於經驗的,雖然也包含了邏輯推理,但並不完全。在我看來,按照笛卡爾的理論,對這那失誤的認定是可懷疑的。

  但這兩個失誤卻不可懷疑。既然如此,我為什麽要在標題裏給“失誤”打引號呢?

  這引出了一個非常有趣的話題:在棋盤上,失誤的定義是什麽?

  3)不同的“失誤”定義

  對於我們棋手而言,什麽是棋盤上的失誤?假如我們把基於經驗認定的失誤都排除在外,隻留下基於邏輯推理認定的失誤,那麽失誤意味著:A在邏輯上優於B,而我選擇了B。

  在這個意義上,隻要我們找到了“可確認的更優下法”,就認為我們出現了失誤。

  但是,對於AI而言,失誤是否意味著相同的事情?我們怎麽理解AI出現了在我們看來低於其水準的失誤?

  這就涉及到AI的算法問題。假如AI有一天窮盡了圍棋,那麽隻要它有一步不踏在最優解集合裏,就是失誤。但是,現在的AI還遠無法窮盡圍棋。

  AlphaGo的算法運用了神經網絡加蒙特卡洛,蒙特卡洛算法的一個特點是:不求最優。

  蒙特卡洛算法給出搜索之後的勝率評估,然後AI會根據這個勝率來選擇落子點。也就是說,AlphaGo本來就不追求最強最優的下法,它隻是追求在它看來勝率最高的下法。

  那麽,回到前麵那兩個“失誤”,之所以打上引號,是因為在AlphaGo看來,或許這根本不是失誤!

  雖然在我們人類看來,邏輯上明顯A優於B,但AI在那時認為兩者的勝率相似,從獲勝的角度來說,兩者沒有區別!甚至A之後的犯錯概率高於B,從而導致它認為B的勝率高於A!

  如果兩條路同樣能通往勝利,在AI的意義上,你還能說它是失誤嗎? 

  或許能!

  但是前提條件是人類利用這種“失誤”擊敗了它!否則,在AI的意義上我們無法指責那是它的失誤。

  再回過頭看前麵,白棋左上的補棋和左下損目搶得先手,真的是可以確認的壞棋嗎?

  左上的補棋,證明AI認為補棋的勝率優於走左下,這一判斷很可能是建立在AI對右邊那手點的認識之上。甚至大家公認的左下白棋虧損,也可能是基於對右邊那手點的認識,希望在左下搶一個先手,並且在勝率上認為這是沒有問題的。

  而李世石對形勢的判斷顯然是基於沒注意右邊那手點。 

  五、AlphaGo的“弱點”

  這麽說,難道AlphaGo真的就不可戰勝了?不一定。從這盤棋中,我們可以看出AlphaGo的弱點。問題在於,這幾個弱點是否足以影響人機對決的勝負?

  1)  邏輯缺失

  雖然上一章我認為對AI失誤的認定需要謹慎,但在另一個層麵上,這還是說明了AlphaGO的弱點。

  深度學習加蒙特卡洛,AlphaGo在剪枝和搜索這兩方麵的能力在這盤棋中已經得到證明,人類下棋同樣依靠剪枝和搜索,並不能在這兩點占得上風。

  但是,AlphaGo的算法缺乏邏輯能力。這一點實際上在10月對陣樊麾時已經有所體現,在這一局的兩處“失誤”則體現更為明顯。

  蒙特卡洛算法使它並不是根據“邏輯上A優於B”來做選擇,而是根據AB各自的勝率來做決策。

  在準確性上,概率不如邏輯。

  AI基於邏輯缺失而導致的“失誤”,是否可能成為人類棋手的突破口? 

  2)  逃避劫爭?

  AI麵對複雜劫爭時的糟糕表現,是蒙特卡洛時期固有的頑疾。去年在北京奪冠的圍棋AI,在對陣連笑時甚至不能理解循環劫,不停地找劫來回提,使局麵一塌糊塗。這是因為,基於概率,循環劫也總有打贏的可能。這也是第一個弱點的延伸,如果基於邏輯,會明白這是不可能的事情。

  使用的深度學習的AI能否避免這個問題?目前我還沒有看到。不過,似乎AI有刻意逃避劫爭的傾向。

李喆剖析:李世石的策略與AlphaGo的弱點

  回到有爭議的左下角,棋手普遍認為白棋如圖是最強的下法,但是AlphaGo可能擔心劫爭: 

李喆剖析:李世石的策略與AlphaGo的弱點

  黑6開劫是最強的下法,在右邊點一手找劫,接下來可能形成轉換,白棋是否肯定便宜?粗粗一看,不能確定。 

  另一處有趣的是最後的官子:

李喆剖析:李世石的策略與AlphaGo的弱點

  此時白棋勝勢已定,在做最後的定型。黑棋左下先手搜刮,白棋需要做活。

李喆剖析:李世石的策略與AlphaGo的弱點

  實戰白棋選擇的是1、3做活,並非最強手。

李喆剖析:李世石的策略與AlphaGo的弱點

  最強手是白1,成連環劫活,目數優於實戰。

  但是,無論是出於不考慮最強手,還是出於對劫爭的逃避,實戰白棋沒有這樣選擇。

  這麽看來,起碼AlphaGo還沒有顯示出它有應對複雜劫爭的能力。

  那麽,劫爭是否會是AlphaGo的一個命門呢?

  在我目前看來,AlphaGo最可能的弱點隻有這兩個。

  六、人類可能的策略 

  基於對AlphaGo弱點的分析,我認為李世石接下來可選擇的策略並不是很多。

  1,我最期待的策略是,李世石按照人類研究很深的套路開局,因為AI並不會背套路。即使不能憑此占優勢,也要盡可能保持局麵的均勢。在這個條件下,AI或許會在一些簡單的局部因邏輯缺失而有所虧損,人類牢牢把握住這些微小的利益,最終取得小勝。不過,這似乎並不是李世石常用的風格。

  2,另一個策略是在局麵選擇中盡可能製造劫爭,即製造對方不開劫就不利的局麵。當然,AlphaGo目前沒展現出複雜劫爭的能力並不能證明它沒有這種能力,因此這種策略是存在風險的,太過刻意是不行的,還要考慮局麵的自然和均衡。

  七、結語

  如果我們隻用人類思考圍棋的方式來理解AlphaGo,或許我們將永遠都不知道是怎麽輸的。

請您先登陸,再發跟帖!