一張圖解AlphaGo原理及弱點

聲明:本文轉載自(微信公衆號:CKDD),做者鄭宇 張鈞波,僅做學習收錄之用,不作商業目的。微信

近期AlphaGo在人機圍棋比賽中連勝李世石3局,體現了人工智能在圍棋領域的突破,做爲人工智能領域的工做者,咱們深感欣慰。其實質是深度學習網絡(CNN)跟蒙特卡羅搜索樹(MCTS)結合的勝利,是人類智慧的進步。很多所謂的「磚」家開始鼓吹機器打敗人類、甚至人類將被機器統治等無知言論,讓人實在看不下去。做爲圍棋愛好者和人工智能領域工做者,咱們以爲是時候跟你們講講AlphaGo的原理及其弱點了。
能夠很負責任的告訴你們,AlphaGo尚未徹底攻克圍棋這個難題,職業棋手也並不是沒有但願贏Go了,更不能說機器打敗了人類。AlphaGo將來須要走的路還很長。若是有中國職業棋手想挑戰AlphaGo,咱們願意爲其組建最頂尖(且懂圍棋)的人工智能專家顧問團,助其取勝AlphaGo。
雖然網上技術貼很多,但尚未一篇文章徹底講清楚AphaGo的原理,Nature上刊登的文章也缺少一張刨解全局的圖(加之用英文描述,同窗們很難理解透徹)。如下是我跟微軟亞洲研究院的張鈞波博士在屢次閱讀原文並收集了大量其餘資料後,一塊兒完成的一張圖,解釋了AlphaGo的原理,看完後你們天然知道其弱點在何處了。markdown

這裏寫圖片描述
圖一、AlphaGo的原理圖 (做者爲本圖花費大量心血,版權歸兩位做者全部,歡迎轉發,但請勿盜圖)網絡

AlphaGo整體上包含離線學習(圖1上半部分)和在線對弈(圖1下半部分)兩個過程。函數

離線學習過程分爲三個訓練階段。
• 第一階段:利用3萬多幅專業棋手對局的棋譜來訓練兩個網絡。一個是基於全局特徵和深度卷積網絡(CNN)訓練出來的策略網絡(Policy Network)。其主要做用是給定當前盤面狀態做爲輸入,輸出下一步棋在棋盤其它空地上的落子機率。另外一個是利用局部特徵和線性模型訓練出來的快速走棋策略(Rollout Policy)。策略網絡速度較慢,但精度較高;快速走棋策略反之。
• 第二階段:利用第t輪的策略網絡與先前訓練好的策略網絡互相對弈,利用加強式學習來修正第t輪的策略網絡的參數,最終獲得加強的策略網絡。這部分被不少「磚」家極大的鼓吹,但實際上應該存在理論上的瓶頸(提高能力有限)。這就比如2個6歲的小孩不斷對弈,其水平就會達到職業9段?
• 第三階段:先利用普通的策略網絡來生成棋局的前U-1步(U是一個屬於[1, 450]的隨機變量),而後利用隨機採樣來決定第U步的位置(這是爲了增長棋的多樣性,防止過擬合)。隨後,利用加強的策略網絡來完成後面的自我對弈過程,直至棋局結束分出勝負。此後,第U步的盤面做爲特徵輸入,勝負做爲label,學習一個價值網絡(Value Network),用於判斷結果的輸贏機率。價值網絡實際上是AlphaGo的一大創新,圍棋最爲困難的就是很難根據當前的局勢來判斷最後的結果,這點職業棋手也很難掌握。經過大量的自我對弈,AlphaGo產生了3000萬盤棋局,用做訓練學習價值網絡。但因爲爲其的搜索空間太大,3000萬盤棋局也不能幫AlphaGo徹底攻克這個問題。學習

在線對弈過程包括如下5個關鍵步驟:其核心思想實在蒙特卡洛搜索樹(MCTS)中嵌入了深度神經網絡來減小搜索空間。AlphaGo並無具有真正的思惟能力。
1. 根據當前盤面已經落子的狀況提取相應特徵;
2. 利用策略網絡估計出棋盤其餘空地的落子機率;
3. 根據落子機率來計算此處往下發展的權重,初始值爲落子機率自己(如0.18)。實際狀況多是一個以機率值爲輸入的函數,此處爲了理解簡便。
4. 利用價值網絡和快速走棋網絡分別判斷局勢,兩個局勢得分相加爲此處最後走棋獲勝的得分。這裏使用快速走棋策略是一個用速度來換取量的方法,從被判斷的位置出發,快速行棋至最後,每一次行棋結束後都會有個輸贏結果,而後綜合統計這個節點對應的勝率。而價值網絡只要根據當前的狀態即可直接評估出最後的結果。二者各有優缺點、互補。
5. 利用第四步計算的得分來更新以前那個走棋位置的權重(如從0.18變成了0.12);此後,從權重最大的0.15那條邊開始繼續搜索和更新。這些權重的更新過程應該是能夠並行的。當某個節點的被訪問次數超過了必定的門限值,則在蒙特卡羅樹上進一步展開下一級別的搜索(如圖2所示)。人工智能

這裏寫圖片描述
圖二、MCTS拓展下一級節點圖片

AlphaGo的弱點在哪裏?
1. 攻其策略網絡,加大搜索空間。進入中盤後,職業選手如能創建起比較複雜的局面,每一步棋都牽連不少個局部棋的命運(避免單塊、局部做戰),則AlphaGo須要搜索空間則急劇加大,短期內獲得的解的精度就會大打折扣。李世石九段的第四局棋就有這個意思。此處左右上下共5塊黑白棋都相互關聯到一塊兒,白1下後,黑棋須要考慮不少地方。不少地方都須要在MCTS上進行跟深刻的搜索。爲了在必定的時間內有結果,只能放棄搜索精度。
2. 攻其價值網絡,萬劫不復:AlphaGo的價值網絡極大的提升了以前單純依靠MCTS來作局勢判斷的精度,但離準確判斷圍棋局勢還有不小的差距。神經網絡還不能徹底避免在某些時候出現一些怪異(甚至錯誤)的判斷,更況且其訓練樣本還遠遠不足。這也是爲何有了價值網絡還仍然須要依靠快速走棋來判斷局勢。你們都曾經懷疑過AlphaGo的打劫能力,也感受到了AlphaGo有躲避打劫的跡象。實際上南京大學的周志華教授曾經撰文指出打劫會讓價值網絡崩潰的問題,原理再也不重複。總之打劫要乘早,太晚了搜索空間變小,即使價值網絡失效,還能夠靠快速走棋網絡來彌補。開劫應該以在剛剛進入中盤時期爲好(太早劫財還不夠),並切保持長時間不消劫,最好在盤面上能同時有兩處以上打劫。沒有了價值網絡的AlphaGo其實水平也就任業3段左右。深度學習

這裏寫圖片描述
圖三、李世石對AlphaGo第四盤棋棋譜it

相關文章
相關標籤/搜索