AlphaGo論文的譯文,用深度神經網絡和樹搜索征服圍棋:Mastering the game of Go with deep neural networks and tree search

轉載請聲明 http://blog.csdn.net/u013390476/article/details/50925347

前言:

圍棋的英文是 the game of Go,標題翻譯爲:《用深度神經網絡和樹搜索征服圍棋》。譯者簡介:大三,211,計算機科學與技術專業,平均分92分,專業第一。爲了更好地翻譯此文,譯者查看了很多資料。譯者翻譯此論文已盡全力,不足之處希望讀者指出。

AlphaGo的影響之下,全社會對人工智能的關注進一步提升。3月12日,AlphaGo 第三次擊敗李世石。在3月15日總比分定格爲4:1,隨後AlphaGo的圍棋排名世界來到第二。

論文的英文原文點擊這裏拜讀

編者按:2014年5月,人們認爲至少需要十年電腦才能擊敗職業選手。筆者在翻譯的時候忠實於原文,很少加入自己的理解(本人不敢說有啥深入理解可言)。最終翻譯結果可能不好。但是對於本人而言,翻譯這篇文論的過程大於結果:一篇一萬字的中文翻譯,背後是十萬中英文資料的閱讀。


譯文

標題:用深度神經網絡和樹搜索征服圍棋

作者:David Silver 1 , Aja Huang 1 , Chris J. Maddison 1 , Arthur Guez 1 , Laurent Sifre 1 , George van den Driessche 1 , Julian Schrittwieser 1 , Ioannis Antonoglou 1 , Veda Panneershelvam 1 , Marc Lanctot 1 , Sander Dieleman 1 , Dominik Grewe 1 , John Nham 2 , Nal Kalchbrenner 1 , Ilya Sutskever 2 , Timothy Lillicrap 1 , Madeleine Leach 1 , Koray Kavukcuoglu 1 , Thore Graepel 1 , Demis Hassabis 1
他們來自 Google DeepMind 英國團隊(用1表示), Google 總部(用2表示)
David Silver , Aja Huang是並列第一作者

摘要:人們長久以來認爲:圍棋對於人工智能來說是最具有挑戰性的經典博弈遊戲,因爲它的巨大的搜索空間,評估棋局和評估落子地點的難度。我們給電腦圍棋程序引入一種新的方法,這個方法使用估值網絡來評估棋局,以及使用策略網絡來選擇如何落子。這些深度神經網絡被一種新的組合來訓練:使用了人類專業比賽數據的監督學習,以及自我對弈的強化學習。沒有使用任何預測搜索的方法,神經網絡下圍棋達到了最先進的蒙特卡洛樹搜索程序的水準,這程序模擬了數以千計的自我對弈的隨機博弈。我們同時也引入了一種新的搜索算法,這算法把蒙特卡洛模擬和估值、策略網絡結合在一起。運用了這個搜索算法,我們的程序AlphaGo在和其它圍棋程序的對弈中達到了99.8%的勝率,並且以5:0的比分擊敗了歐洲冠軍,這是史上第一次計算機程序在全尺寸圍棋中擊敗一個人類職業棋手。在此之前,人們認爲需要至少十年纔會達成這個壯舉。


引言

所有完全信息博弈都有一個最優估值函數v(s)  ,它在判斷了每個棋局或狀態 s 之後的博弈結果的優劣(在所有對手完美髮揮的情況下)。解決這些博弈可以通過在搜索樹中遞歸調用最優估值函數,這個搜索樹包含大約bd  種可能的下棋序列,其中 b 是博弈的廣度(每一次下棋時候的合法落子個數),d 是的深度(博弈的步數長度)。在大型博弈中,比如國際象棋(b35,d80 ),和特別是圍棋(b250,d150 ),窮舉搜索是不可行的的,但是有效的搜索空間可以通過兩種通用的原則減少。第一,搜索的深度可以通過棋局評估降低:在狀態 s 時對搜索樹進行剪枝,然後用一個近似估值函數v(s)v(s)  取代狀態 s 下面的子樹,這個近似估值函數預測狀態 s 之後的對弈結果。這種方法已經在國際象棋,國際跳棋,黑白棋中得到了超越人類的下棋能力,但是人們認爲這種方法在圍棋中是難以處理的,因爲圍棋的巨大的複雜度。第二,搜索的廣度可以通過來自策略 p(as)  的採樣動作來降低,這個策略是一個在位置 s 的可能下棋走子a 概率分佈。比如蒙特卡洛走子方法搜索到最大深度時候根本不使用分歧界定法,它從一個策略 p 中採集雙方棋手的一系列下棋走法。計算這些走子的平均數可以產生一個有效的棋局評估,在西洋雙陸棋戲和拼字遊戲中獲得了超出人類的性能表現,並且在圍棋中達到了業餘低段水平。

蒙特卡洛樹搜索使用蒙特卡洛走子方法,評估搜索樹中每一個狀態的估值。隨着執行越來越多的模擬,這個搜索樹成長越來越大,而且相關估值愈發精確。用來選擇下棋動作的策略在搜索的過程中也會隨着時間的推移而改進,通過選擇擁有更高估值的子樹。漸近的,這個策略收斂到一個最優下法,然後評估收斂到最優估值函數。目前最強的圍棋程序是基於蒙特卡洛樹搜索的,並且受到了策略的增強,這個策略被人訓練用來預測專家棋手的下法。這些策略用來縮窄搜索空間到一束高可能性下棋動作,和用來在走子中採集下法動作。這個方法已經達到了業餘高手的級別。然而,先前的工作已經受到了膚淺策略的限制或基於輸入的線性組合的估值函數的限制。

最近,深度卷積神經網絡已經在計算機視覺中達到了空前的性能:比如圖像分類,人臉識別,和玩雅達利的遊戲。它們使用很多層的神經網絡,層與層之間像瓦片重疊排列在一起,用來構建圖片的愈發抽象的局部代表。我們爲圍棋程序部署了類似的體系架構。我們給程序傳入了一個19*19大小棋局的圖片,然後使用卷積神經網絡來構建一個位置的代表。我們使用這些神經網絡來降低搜索樹的有效的深度和廣度:通過估值網絡來評估棋局,和使用策略網絡來博弈取樣。

我們使用一個包含多個不同階段的機器學習方法的管道來訓練神經網絡。我們開始使用一個監督學習(SL)策略網絡 pδ  ,它直接來自人類專家的下棋。這提供了快速高效的學習更新,擁有快速的反饋和高質量的梯度。和向前的工作類似,我們同時也訓練了一個可以迅速從走子中取樣的快速策略 pπ  。其次,我們訓練了一個強化學習(RL)策略網絡,pp ,它通過優化自我對弈的最終結局來提升 SL策略網絡。這調整策略網絡朝向贏棋的正確目標發展,而不是最大化提高預測精度。最後,我們訓練了一個估值網絡vθ  ,它預測博弈的贏者,通過和RL策略網絡和自己對弈。我們的AlphaGo程序有效的把策略網絡、估值網絡,和蒙特卡洛搜索樹結合在一起。


1 策略網絡的監督學習

在訓練管道的第一階段,我們在先前工作的基礎上,使用了監督學習來預測人類專家下圍棋。監督學習(SL)策略網絡pδ(as)  在重量δ 的卷積層和非線性的整流器中替換。策略網絡的輸入 s 是一個棋局狀態的簡單代表(如擴展數據表2)。策略網絡使用了隨機取樣狀態-動作對(s,a),使用了隨機梯度遞增來最大化人類在狀態 s 選擇下棋走子 a 的可能性。
公式1
我們用KGS圍棋服務器的3千萬個棋局,訓練了13層的策略網絡(我們稱之爲SL 策略網絡)。在輸入留存測試數據的所受特徵的時候,這個網絡預測人類專家下棋的精準的達到了57%,而且在僅僅使用原始棋局和下棋記錄的時候,精度達到了55.7%。與之相比,截至到本篇文論提交(2015年),其他研究團隊的最先進的精度是44.4%(全部結果在擴展數據表3)。在精確度方面的小提升會引起下棋能力的很大提升(圖片2,a);更大的神經網絡擁有更高的精確度,但是在搜索過程中評估速度更慢。我們也訓練了一個更快的但是精確度更低的走子策略pπ(as)  ,它使用了一個權重爲π  的小型模式特徵的線性softmax。它達到了24.2%的精確度,每選擇下一步棋只用2微秒,與之相比,策略網絡需要3毫秒。

figure 1
圖1:神經網絡訓練管道和體系結構a:在一個棋局數據集合中,訓練一個快速走子策略pπ  和監督學習(SL)策略網絡pδ  用來預測人類專家下棋。一個強化學習(RL)策略網絡pρ  由SL策略網絡初始化,然後由策略梯度學習進行提高。和先前版本的策略網絡相比,最大化結局(比如贏更多的博弈)。一個新的數據集合產生了,通過自我對弈結合RL策略網絡。最終通過迴歸訓練,產生一個估值網絡vθ  ,用來在自我對弈的數據集合中預測期待的結局(比如當前棋手是否能贏)。b:AlphaGo使用的神經網絡體系架構的原理圖代表。策略網絡把棋局狀態 s 當作輸入的代表,策略網絡把 s 傳輸通過很多卷積層(這些卷積層是參數爲δ  的SL策略網絡或者參數爲ρ  的RL策略網絡),然後輸出一個關於下棋動作 a 的概率分佈 pδ(as) or pρ(as)  ,用一個棋盤的概率地圖來表示。估值網絡類似的使用了很多參數θ  的卷積層,但是輸出一個標量值vθ(s)  用來預測棋局狀態 s 後的結局。

圖片2
圖2:策略網絡和估值網絡的能力和精確度。a圖顯示了策略網絡的下棋能力隨着它們的訓練精確度的函數。擁有128,192,256,384卷積過濾每層的策略網絡在訓練過程中得到週期性的評估;這個圖顯示了AlphaGo使用不同策略網絡的贏棋概率隨着的不同精確度版本的AlphaGo的變化。b:估值網絡和不同策略網絡的評估對比。棋局和結局是從人類專家博弈對局中採樣的。每一個棋局都是由一個單獨的向前傳遞的估值網絡vθ  評估的,或者100個走子的平均值,這些走子是由統一隨機走子,或快速走子策略pπ  ,或 SL 策略網絡pδ  ,或 RL 策略網絡pρ  。圖中,預測估值和博弈實際結局之間的平均方差隨着博弈的進行階段(博弈總共下了多少步)的變化而變化。


2 策略網絡的強化學習

訓練管道第二階段的目標是通過策略梯度強化學習(RL)來提高策略網絡。強化學習策略網絡pρ  在結構上和 SL策略網絡是一樣的,權重ρ  初始值也是一樣的,ρ=δ  。我們在當前的策略網絡和隨機選擇某先前一次迭代的策略網絡之間博弈。從一個對手的候選池中隨機選擇,可以穩定訓練過程,防止過度擬合於當前的策略。我們使用一個獎勵函數 r(s),對於所有非終端的步驟 t < T,它的值等於零。從當前棋手在步驟 t 的角度來講,結果 zt=±r(sT)  是在博弈結束時候的終端獎勵,如果贏棋,結果等於 +1,如果輸棋,結果等於 -1。然後權重在每一個步驟 t 更新:朝向最大化預期結果的方向隨機梯度遞增
公式2
我們在博弈過程中評估 RL策略網絡的性能表現,從輸出的下棋動作的概率分佈,對每一下棋動作atpp(st)  進行取樣。我們自己面對面博弈,RL策略網絡對 SL策略網絡的勝率高於80%。我們也測試了和最強的開源圍棋軟件 Pachi 對弈,它是一個隨機的蒙特卡洛搜索程序,在KGS中達到業餘2段。在沒有使用任何搜索的情況下,RL策略網絡對 Pachi的勝率達到了85%。與之相比,之前的最先進的僅僅基於監督學習的卷積網絡,對 Pachi的勝率僅只有11%,對稍弱的程序 Fuego的勝率是12%。


3 估值網絡的強化學習

訓練管道的最後一個階段關注於棋局評估,評估一個估值函數 vp(s)  ,它預測從棋局狀態 s 開始,博弈雙方都按照策略網絡 p 下棋的結局,
公式3
理想情況下,我們期望知道在完美下法v(s) 情況下的最優值;然而在現實中,我們使用 RL策略網絡,來評估估值函數vPp  ,作爲我們的最佳策略。我們使用權重是θ  的估值網絡 vθ(s) 來逼近估值函數,vθ(s)vPpv(s) 。這個神經網絡和策略網絡擁有近似的體系結構,但是輸出一個單一的預測,而不是一個概率分佈。我們通過迴歸到狀態-結果對(s, z)來訓練估值網絡的權重,使用了隨機梯度遞減,最小化預測估值vθ(s) 和相應的結局 z 之間的平均方差(MSE)。
公式4
這個天真的從擁有完整對弈的數據來預測博弈結局的方法導致過度擬合。問題在於,連續的棋局之間的聯繫十分強大,和僅單獨下一步棋有差距,但是迴歸目標和整個博弈又是相通的。當通過這種方式在KGS數據集合上訓練是,估值網絡記住了博弈的結局而不是推廣出新的棋局,在測試數據上面MSE最小達到了0.37,與之相比在訓練數據集合上面MSE是0.19。爲了解決這個問題,我們想出了新的自我對弈的數據集合,包含了三千萬個不同的棋局,每一個都是從不同盤博弈中採樣。每一盤博弈都是在 RL策略網絡和自己之間對弈,直到博弈本身結束。在這個數據集合上訓練導致了MSE爲0.226,和訓練和測試數據集合的MSE爲0.234,這預示着很小的過度擬合。圖2,b展示了估值網絡對棋局評估的精確度:對比使用了快速走子策略網絡pπ  的蒙特卡洛走子的精確度,估值函數一直更加精確。一個單一的評估vθ(s)  的精確度也逼近了使用了 RL策略網絡vθ(s) 的蒙特卡洛走子的精確度,不過計算量是原來的15000分之一。


4 運用策略網絡和估值網絡搜索

AlphaGo在把策略網絡、估值網絡和MCTS算法結合,MCTS通過預測搜索選擇下棋動作。每一個搜索樹的邊(s,a)存儲着一個動作估值 Q(s, a),訪問計數 N(s, a),和先驗概率 P(s, a)。這棵樹從根節點開始,通過模擬來遍歷(比如在完整的博弈中沿着樹無沒有備份地向下搜索)。在每一次模擬的時間步驟 t,在狀態 s的時候選擇一個下棋動作at 
公式5
用來最大化動作估值加上一個額外獎勵u(s,a)P(s,a)1+N(s,a)  ,它和先驗概率成正向關係,但是和重複訪問次數成反向關係,這樣是爲了鼓勵更多的探索。當在步驟 L 遍歷到達一個葉節點sL  時,該葉節點可能不會被擴展。葉節點棋局sL  僅被 SL策略網絡pδ  執行一次。輸出的概率存儲下來作爲每一合法下法動作 a 的先驗概率 P,P(s,a)=pδ(as)  。葉節點通過兩種方式的得到評估:第一,通過價值網絡vθ(sL)  評估;第二,用快速走子策略pπ  隨機走子,直到終點步驟 T,產生的結果zL  作爲評估方法。這些評估方法結合在一起,在葉節點的評估函數V(SL)  中使用一個混合參數λ 

公式6

在模擬的結尾 n,更新所有被遍歷過的邊的下棋動作估值和訪問次數。每一條邊累加訪問次數,和求出所有經過該邊的模擬估值的平均值。

公式7,8
其中siL  是第 i 次模擬的葉節點,1(s, a, i) 代表一條邊 (s, a) 在第 i 次模擬時是否被遍歷過。一旦搜索完成,算法選擇從根節點開始,被訪問次數最多的節點。

在AlphaGo中,SL策略網絡pδ  的表現優於 RL策略網絡pρ  ,推測可能是因爲人類從一束不同的前景很好的下棋走法中選擇,然而 RL優化單一最優下棋走法。然而,從更強的 RL策略網絡訓練出來的估值函數vθvPρ(s)  優於從 SL策略網絡訓練出來的估值函數vθvPδ(s) 

評估策略網絡和估值網絡和傳統的啓發式搜索相比,需要多幾個數量級的計算量。爲了高效的把 MCTS 和深度神經網絡結合在一起,AlphaGo 在很多CPU上使用異步多線程搜索技術進行了模擬,在很多GPU上計算策略網絡和估值網絡。最終版本的 AlphaGo使用了40個搜索線程,48個CPU,和8個GPU。我們也實現了一個分佈式的AlphaGo版本,它利用了多臺電腦,40個搜索線程,1202個CPU,176個GPU。在方法部分提供了關於異步和分佈MCTS的全部的細節。
圖3
圖3:AlphaGo中的蒙特卡洛樹搜索。a 每一次模擬遍歷搜索樹,通過選擇擁有最大下棋動作估值 Q的邊,加上一個額外獎勵 u(P)(依賴於存儲的該邊的先驗概率 P) 。b葉節點可能被展開,新的結點被策略網絡pθ  執行一次,然後結果概率存儲下來作爲每一個下棋動作的先驗概率。c在一次模擬的結尾,葉節點由兩種方式評估:使用估值網絡 vθ 和運行一個走子策略直到博弈結尾(使用了快速走子策略pπ  ),然後對於贏者運算函數 r。d 下棋動作估值 Q 得到更新,用來跟蹤所有評估 r(.) 的平均值和該下棋動作的子樹的vθ() 


5 評估AlphaGo的下棋能力

爲了評估 AlphaGo 的水平,我們舉辦了內部比賽,成員包括不同版本的 AlphaGo 和幾個其它的圍棋程序,包括最強的商業程序 CrazyStone和Zen,和最強的開源程序Pachi和Fuego。所有這些程序都是基於高性能蒙特卡洛樹搜索算法的。此外,我們的內部比賽還包括了開源程序GnuGo,它使用了最先進搜索方法的蒙特卡洛樹搜索。所有程序每次執行下一步棋允許5秒鐘。

比賽的結果如圖4,a,它預示着單擊版本的AlphaGo比先前任何一個圍棋程序強上很多段,在495場比賽中,AlphaGo贏了其中的494場比賽。我們也在讓對手4目棋的情況下進行了比賽:AlphaGo和CrazyStone,Zen,Pachi的勝率分別是77%,86%,99%。分佈式版本的AlphaGo強大很多:和單機版本的AlphaGo對弈的勝率是77%,和其他的圍棋程序對弈的勝率是100%。

我們也評估了不同版本的AlphaGo,不同版本僅僅使用估值網絡(λ=0  )或者僅僅使用快速走子(λ=1  )(如圖4,b)。即使不使用快速走子,AlphaGo的性能超出了所有其他圍棋程序,顯示了估值網絡提供了一個可行的代替蒙特卡洛評估的可能。不過,其估值網絡和快速走子的混合版本表現最好(λ=0.5 ),在對其他版本的AlphaGo的時候勝率達到了95%以上。這預示着這兩種棋局評估系統是互補的:估值網絡通過能力很強,但是不切實際的慢的pρ  來逼近博弈的結局;快速走子可以通過能力更弱但是更快的快速走子策略pρ  來精確的評估博弈的結局。圖5將AlphaGo在真實博弈棋局中評估能力可視化了。

最終,我們把分佈式版本的AlphaGo和樊麾進行了評估,他作爲一個職業2段棋手,是2013,2014,2015年的歐洲圍棋冠軍。在2015年10月5-9日,AlphaGo和樊麾在真實比賽中下了5盤棋。AlphaGo以5:0的比分贏了比賽(圖6和擴展數據表1)。這是史上第一次,在人類不讓子和完整棋盤的情況下,一個圍棋程序在贏了一個人類職業棋手。這個壯舉之前認爲需要至少十年才能達到。

圖4
圖4:AlphaGo的比賽評估a 和不同圍棋程序比賽的結果(見擴展數據表6-11)。每個程序使用接近5秒每走一步棋的速度。爲了給AlphaGo更高的挑戰難度,一些程序得到了所有對手讓4步子的優勢。程序的評估基於ELO體系:230分的差距,這相當於79%的勝率差距,這大致相當於在KGS中高一個業餘等級。一個和人類接近的相當也顯示了,水平的線顯示了程序在在線比賽中達到的KSG等級。和歐洲冠軍樊麾的比賽也包括在內。這些比賽使用更長的時間控制。圖中顯示了95%的置信區間。b 單機版本的AlphaGo在組成部分的不同組合下的性能表現。其中僅僅使用了策略網絡的版本沒有使用任何搜索算法。c 蒙特卡洛搜索樹算法關於搜索線程和GPU的可擴展性研究,其中使用了異步搜索(淺藍色)和分佈式搜索(深藍色),每下一步時間兩秒。

圖5
圖5:AlphaGo(執黑)是在一個和樊麾的非正式的比賽中選擇下棋走子的。接下來的每一個統計中,估值最大的落子地點用橘黃色標記。a根節點 s 的所有後繼結點 s’ 的估值,使用估值網絡 vθ(s)  ,評估很靠前的會贏的百分數顯示出來了。b 從根節點開始的每一條邊(s, a)的走子動作估值 Q(s, a);僅僅使用估值網絡(λ=0  )方法的均值。c 下棋動作 Q(s, a),僅僅使用快速走子(λ=1  )方法的均值。d 直接使用 SL策略網絡的下棋走子概率,pδ(a|s) ;如果大於0.1%的話,以百分比的形式報告出來。e 從根節點開始的模擬過程中下棋走子地點選擇的頻率百分比。f AlphaGo的樹搜索的理論上的走子選擇序列(一個搜索過程中訪問次數最多的路徑)。下棋走子用一個數字序列表示。AlphaGo選擇下棋的落子地點用紅色圓圈標記出來;樊麾下在白色方形的地方作爲迴應;在他的覆盤過程中,他評論道:下在地點 1 應該是更好的選擇,而這個落子地點正好是AlphaGo預測的白棋的落子地點。


6 討論

在這個工作中,我們基於一個深度神經網絡和樹搜索的結合開發了一個圍棋程序,它的下棋水平達到了人類最強的水平,因此成功戰勝了一項人工智能領域的偉大挑戰。我們首次,對圍棋開發了一個有效的下棋走子選擇器和棋局評估函數,它是基於被一個創新型的監督學習和強化學習的組合訓練的深度神經網絡。我們引入了新的搜索算法,它成功的把神經網絡評估和蒙特卡洛走子結合在一起。我們的程序AlphaGo把這些組成部分按照比例集成在一起,成爲了一個高性能的樹搜索引擎。

在和樊麾的比賽中,AlphaGo對棋局評估的次數和深藍對卡斯帕羅夫下國際象棋的時候的次數相比,是其千分之一。作爲補償的,是更加智能的棋局選擇能力,使用了更加精確的評估棋局的能力,使用了估值網絡(一個也許是更加接近於人類下棋方式的方法)。此外,深藍使用的是人類手工調參數的估值函數,然而AlphaGo 的神經網絡是直接從比賽對弈數據中訓練出來的,純通過一個通用目的的監督學習和強化學習方法。

圍棋在很多方面是橫亙在人工智能面前的困難:一個有挑戰性的決策任務;一個難以對付的解空間;和一個非常複雜的最優解,以至於它看上去不可能世界使用策略或者估值函數逼近。之前的關於圍棋程序的重大突破,蒙特卡洛樹搜索,在其它領域導致了相應的進步:比如通用的博弈比賽,經典的規劃問題,局部觀察規劃問題,調度問題,和約束滿足問題。通過把樹搜索和策略網絡、估值網絡結合在一起,AlphaGo 最終達到了圍棋職業選手的水平,並且提供了希望:在其它看似難以解決的人工智能領域裏,計算機現在是可以達到人類水平的。

圖6
圖6: AlphaGo 和歐洲冠軍樊麾的博弈棋局。下棋走的每一步按照下棋順序由數字序列顯示出來。重複落子的地方在棋盤的下面成雙成對顯示出來。每一對數字中第一個數字的落子,重複下到了第二個數字顯示的交叉地方。


參考文獻

其他貢獻者

感謝
我們感謝樊麾答應和AlphaGo進行比賽;感謝T.M擔當比賽的裁判;感謝R.M和T.S給予有幫助的討論和建議;感謝A.C和M.C在可視化方面的工作;感謝P.D, G.W, D.K, D.P, H.vH, A.G和G.O修訂了這篇論文;感謝 DeepMing 團隊其它的成員的支持,想法,和鼓勵。


後記

理解 AlphaGo 有兩個關鍵部分:

  1. 深度神經網絡的訓練過程,文章把這個過程描述成爲一個管道。所謂管道,很像Linux系統中的管道命令,把前者的輸出作爲後者的輸入
  2. 蒙特卡洛樹搜索的過程,看這個搜索是如何把 SL策略網絡,估值網絡,快速走子策略結合在一起的。

先談談 1:
輸入人類的棋譜,經過監督學習,輸出SL策略網絡
輸入SL策略網絡,經過強化學習,輸出RL策略網絡
輸入RL策略網絡,經過強化學習,輸出估值網絡

再談談 2:
蒙特卡洛樹搜索是模擬下棋,並且評估的過程。蒙特卡洛就是“隨機”的意思,只不過逼格更高而已。如果你“隨機”下棋,肯定輸呀,怎麼辦?使用 SL策略網絡來預測人類是如何下棋的。AlphaGo每次要下棋的時候,先運行 SL策略網絡一遍,得到一個概率分佈,在此基礎上進行“隨機”:更有可能在概率更大的地方落子。
AlphaGo一邊模擬自己下棋,一邊模擬對手下棋,最後,下完了。所謂下完了,就是在樹搜索的時候達到了葉節點。下完了之後,對棋局進行評估。結合估值網絡和快速走子策略,得到一個估值函數,該函數的值越高,越好。
模擬很多很多遍。模擬結束之後,進行“統計”工作。統計每一條邊走過的次數,和估值函數的估值。最後,AlphaGo做出選擇:現在是棋局 s,如果在 a 地方,結合 a 在模擬過程中走過的次數,以及 a 下面的葉節點的估值函數,累加起來最高,那麼AlphaGo選擇在 a 地方落子

最後來一個知乎上關於AlphaGo的評論,裏面有李開復老師的賽前預測~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章