日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

深入淺出看懂AlphaGo元 | Go Further | Stay Hungry, Stay Fo...

 預見未來的我 2018-02-14

【閱讀時間】21min - 24min 10999字
【內(nèi)容簡介】AlphaGo1.0詳解鏈接,這篇AlphaGo Zero論文原文超詳細翻譯,并且總結(jié)了AlphaGo Zero的算法核心思路,附帶收集了網(wǎng)上的相關評論

在之前的詳解:深入淺出看懂AlphaGo中,詳細定義的DeepMind團隊定義圍棋問題的結(jié)構(gòu),并且深入解讀了AlphaGo1.0每下一步都發(fā)生了什么事,就在最近,AlphaGo Zero橫空出世。個人觀點是,如果你看了之前的文章,你就會覺得這是一個水到渠成的事情

另,如果你只對這個事件感興趣的,而不想了解論文和技術(shù)細節(jié),鏈接奉上,歡迎跳過到最后評論和總結(jié)部分(但這部分網(wǎng)上的大牛太多了,知乎答案內(nèi)最高票對結(jié)合圍棋的分析很漂亮!建議閱讀)

上限置信區(qū)間算法(UCT),一種博弈樹搜索算法,是AlphaGo中一個重要組成部分:MCTS搜索算法中的核心

法國南巴黎大學的數(shù)學家西爾萬·熱利(SylvainGelly)與巴黎技術(shù)學校的王毅早(YizaoWang,音譯)將UCT集成到一個他們稱之為MoGo的程序中。該程序的勝率竟然比先前最先進的蒙特卡羅擴展算法幾乎高出了一倍。

2007年春季,MoGo在大棋盤比賽中也擊敗了實力稍弱的業(yè)余棋手,充分展示了能力。科奇什(UCT算法發(fā)明者)預言,10年以后,計算機就能攻克最后的壁壘,終結(jié)人類職業(yè)棋手對圍棋的統(tǒng)治。今年是2017年,AlphaGo系列橫空出世。10年,總有著天才的人具有先知般的遠見。詳見UTC算法

【小發(fā)現(xiàn)】看完論文發(fā)現(xiàn),這篇文章的接受時間是2017年4月7號,審核完成時間是2017年9月13號,而在烏鎮(zhèn)對陣柯潔(2017年5月23號)用的可能是AlphaGo Master(這里沒法證據(jù)來證明到底是AlphaGo Zero還是AlphaGo Master)。這個團隊也是無情啊,人類再一次感覺被耍了,根據(jù)Elo得分,Deepmind團隊可能在賽前就透露過吧,即使是Master也有4858分啊,對于一個棋手來說,我感受到的是風蕭蕭兮易水寒決絕的背影為柯潔的勇氣打Call,當真圍棋第一人,天下無雙

論文正文內(nèi)容詳細解析

先上干貨論文:Mastering the Game of Go without Human Knowledge ,之后會主要以翻譯論文為主,在語言上盡量易懂,避免翻譯腔

AlphaGo Zero,從本質(zhì)上來說完全不同于打敗樊麾和李世石的版本

  • 算法上,自對弈強化學習,完全從隨機落子開始,不用人類棋譜。之前使用了大量棋譜學習人類的下棋風格)
  • 數(shù)據(jù)結(jié)構(gòu)上,只有黑子白子兩種狀態(tài)。之前包含這個點的氣等相關棋盤信息
  • 模型上,使用一個神經(jīng)網(wǎng)絡。之前使用了策略網(wǎng)絡(基于深度卷積神經(jīng)網(wǎng))學習人類的下棋風格,局面網(wǎng)絡(基于左右互搏生成的棋譜,為什么這里需要使用左右互搏是因為現(xiàn)有的數(shù)據(jù)集不夠,沒法判斷落子勝率這一更難的問題)來計算在當前局面下每一個不同落子的勝率
  • 策略上,基于訓練好的這個神經(jīng)網(wǎng),進行簡單的樹形搜索。之前會使用蒙特卡洛算法實時演算并且加權(quán)得出落子的位置

AlphaGo Zero 的強化學習

問題描述

在開始之前,必須再過一遍如何符號化的定義一個圍棋問題

圍棋問題,棋盤 19×19=361 個交叉點可供落子,每個點三種狀態(tài),白(用1表示),黑(用-1表示),無子(用0表示),用 ?s 描述此時棋盤的狀態(tài),即棋盤的狀態(tài)向量記為 ?s (state首字母)
?s=(1,0,?1,361)
假設狀態(tài) ?s 下,暫不考慮不能落子的情況, 那么下一步可走的位置空間也是361個。將下一步的落子行動也用一個361維的向量來表示,記為 ?a (action首字母)
?a=(0,,0,1,0,)
公式1.2 假設其中1在向量中位置為39,則 ?a 表示在棋盤3行1列位置落白子,黑白交替進行

有以上定義,我們就把圍棋問題轉(zhuǎn)化為。

任意給定一個狀態(tài) ?s ,尋找最優(yōu)的應對策略 ?a ,最終可以獲得棋盤上的最大地盤

簡而言之

看到 ?s ,腦海中就是一個棋盤,上面有很多黑白子

看到 ?a ,腦海中就想象一個人瀟灑的落子

網(wǎng)絡結(jié)構(gòu)

新的網(wǎng)絡中,使用了一個參數(shù)為 θ (需要通過訓練來不斷調(diào)整) 的深度神經(jīng)網(wǎng)絡fθ

  • 網(wǎng)絡輸入19×19×170/1值:現(xiàn)在棋盤狀態(tài)的 ?s 以及7步歷史落子記錄。最后一個位置記錄黑白,0白1黑,詳見
  • 網(wǎng)絡輸出】兩個輸出:落子概率(362個輸出值)一個評估值([-1,1]之間)記為 fθ(?s)=(p,v)
    • 【落子概率 p】 向量表示下一步在每一個可能位置落子的概率,又稱先驗概率 (加上不下的選擇),即 pa=Pr(?a|?s) (公式表示在當前輸入條件下在每個可能點落子的概率)
    • 【評估值 v】 表示現(xiàn)在準備下當前這步棋的選手在輸入的這八步歷史局面 ?s 下的勝率(我這里強調(diào)局面是因為網(wǎng)絡的輸入其實包含歷史對戰(zhàn)過程)
  • 網(wǎng)絡結(jié)構(gòu)】基于Residual Network(大名鼎鼎ImageNet冠軍ResNet)的卷積網(wǎng)絡,包含20或40個Residual Block(殘差模塊),加入批量歸一化Batch normalisation與非線性整流器rectifier non-linearities模塊

改進的強化學習算法

自對弈強化學習算法(什么是強化學習,非常建議先看看強化學習的一些基本思想和步驟,有利于理解下面策略、價值的概念,推薦系列筆記

在每一個狀態(tài) ?s ,利用深度神經(jīng)網(wǎng)絡 fθ 預測作為參照執(zhí)行MCTS搜索(蒙特卡洛搜索樹算法),MCTS搜索的輸出是每一個狀態(tài)下在不同位置對應的概率 π (注意這里是一個向量,里面的值是MCTS搜索得出的概率值),一種策略,從人類的眼光來看,就是看到現(xiàn)在局面,選擇下在每個不同的落子的點的概率。如下面公式的例子,下在(1,3)位置的概率是0.92,有很高概率選這個點作為落子點
πi=(0.01,0.02,0.92,361)

MCTS搜索得出的落子概率fθ 輸出的僅使用神經(jīng)網(wǎng)絡輸出的落子概率 p 更強,因此,MCTS可以被視為一個強力的策略改善(policy improvement)過程

使用基于MCTS提升后的策略(policy)來進行落子,然后用自對弈最終對局的勝者 z 作為價值(Value),作為一個強力的策略評估(policy evaluation)過程

并用上述的規(guī)則,完成一個通用策略迭代算法去更新神經(jīng)網(wǎng)絡的參數(shù) θ ,使得神經(jīng)網(wǎng)絡輸出的落子概率和評估值,即 fθ(?s)=(p,v) 更加貼近能把這盤棋局贏下的落子方式(使用不斷提升的MCST搜索落子策略π 和自對弈的勝者 z 作為調(diào)整依據(jù))。并且,在下輪迭代中使用新的參數(shù)來進行自對弈

在這里補充強化學習通用策略迭代(Generalized Policy Iteration)方法

  • 從策略 π0 開始

  • 策略評估(Policy Evaluation)- 得到策略 π0 的價值 vπ0 (對于圍棋問題,即這一步棋是好棋還是臭棋)

  • 策略改善(Policy Improvement)- 根據(jù)價值 vπ0,優(yōu)化策略為 π0 1 (即人類學習的過程,加強對棋局的判斷能力,做出更好的判斷)

  • 迭代上面的步驟2和3,直到找到最優(yōu)價值 v? ,可以得到最優(yōu)策略 π?

Figure 1

【a圖】表示自對弈過程 s1,,sT。在每一個位置 st ,使用最新的神經(jīng)網(wǎng)絡 fθ 執(zhí)行一次MCTS搜索 αθ 。根據(jù)搜索得出的概率 atπi 進行落子。終局 sT 時根據(jù)圍棋規(guī)則計算勝者 z
πi 是每一步時執(zhí)行MCTS搜索得出的結(jié)果(柱狀圖表示概率的高低)

【b圖】表示更新神經(jīng)網(wǎng)絡參數(shù)過程。使用原始落子狀態(tài) ?st 作為輸入,得到此棋盤狀態(tài) ?st下一步所有可能落子位置的概率分布 pt當前狀態(tài) ?st 下選手的贏棋評估值 vt

以最大化 ptπt 相似度和最小化預測的勝者 vt 和局終勝者 z 的誤差來更新神經(jīng)網(wǎng)絡參數(shù) θ (詳見公式1) ,更新參數(shù) θ ,下一輪迭代中使用新神經(jīng)網(wǎng)絡進行自我對弈

我們知道,最初的蒙特卡洛樹搜索算法是使用隨機來進行模擬,在AlphaGo1.0中使用局面函數(shù)輔助策略函數(shù)作為落子的參考進行模擬。在最新的模型中,蒙特卡洛搜索樹使用神經(jīng)網(wǎng)絡 fθ 的輸出來作為落子的參考(詳見下圖Figure 2)

每一條邊 (?s,?a) (每個狀態(tài)下的落子選擇)保存的是三個值:先驗概率 P(?s,?a),訪問次數(shù) N(?s,?a),行動價值 Q(?s,?a)。

每次模擬(模擬一盤棋,直到分出勝負)從根狀態(tài)開始,每次落子最大化上限置信區(qū)間 Q(?s,?a) U(?s,?a) 其中 U(?s,?a)P(?s,?a)1 N(?s,?a) 直到遇到葉子節(jié)點 s

葉子節(jié)點(終局)只會被產(chǎn)生一次用于產(chǎn)生先驗概率和評估值,符號表示即 fθ(s)=(P(s,?),V(s))

模擬過程中遍歷每條邊 (?s,?a) 時更新記錄的統(tǒng)計數(shù)據(jù)。訪問次數(shù)加一 N(?s,?a) =1;更新行動價值為整個模擬過程的平均值,即 Q(?s,?a)=1N(?s,?a)Σ?s|?s,?a??sV(?s) ,?s|?s,?a??s 表示在模擬過程中從 ?s 走到 ?s的所有落子行動 ?a

Figure 2

【a圖】表示模擬過程中遍歷時選 Q U 更大的作為落子點

【b圖】葉子節(jié)點 sL 的擴展和評估。使用神經(jīng)網(wǎng)絡對狀態(tài) sL 進行評估,即 fθ(sL)=(P(sL,?),V(sL))其中 P 的值存儲在葉子節(jié)點擴展的邊中

【c圖】更新行動價值 Q 等于此時根狀態(tài) ?s 所有子樹評估值 V 的平均值

【d圖】當MCTS搜索完成后,返回這個狀態(tài) ?s 下每一個位置的落子概率 π,成比例于 N1/τN為訪問次數(shù),τ 為控溫常數(shù))

更加具體的詳解見:搜索算法

MCTS搜索可以看成一個自對弈過程中決定每一步如何下的依據(jù),根據(jù)神經(jīng)網(wǎng)絡的參數(shù) θ 和根的狀態(tài) ?s 去計算每個狀態(tài)下落子位置的先驗概率,記為 π=αθ(?s) ,冪指數(shù)正比于訪問次數(shù) π?aN(?s,?a)1/ττ 是溫度常數(shù)

訓練步驟總結(jié)

使用MCTS下每一步棋,進行自對弈,強化學習算法(必須了解通用策略迭代的基本方法)的迭代過程中訓練神經(jīng)網(wǎng)絡

  • 神經(jīng)網(wǎng)絡參數(shù)隨機初始化 θ0
  • 一輪迭代 i?1 ,都自對弈一盤(見Figure-1a
  • t 步:MCTS搜索 πt=αθi?1(st) 使用前一次迭代的神經(jīng)網(wǎng)絡 fθi?1,根據(jù)MCTS結(jié)構(gòu)計算出的落子策略 πt 的聯(lián)合分布進行【采樣】再落子
  • T 步 :雙方都選擇跳過;搜索時評估值低于投降線;棋盤無地落子。根據(jù)勝負得到獎勵值Reward rT{?1, 1}。
  • MCTS搜索下至中盤的過程的每一個第 t 步的數(shù)據(jù)存儲為 ?st,πt,zt ,其中 zt=±rT 表示在第 t 步時的勝者
  • 同時,從上一步 ?s 迭代時自對弈棋局過程中產(chǎn)生的數(shù)據(jù) (?s,π,z)?s 為訓練數(shù)據(jù),π,z 為標簽)中采樣(這里的采樣是指選Mini-Batch)來訓練網(wǎng)絡參數(shù) θi,
  • 神經(jīng)網(wǎng)絡 fθi(?s)=(p,v)最大化 ptπt 相似度和最小化預測的勝者 vt 和局終勝者 z 的誤差來更新神經(jīng)網(wǎng)絡參數(shù) θ ,損失函數(shù)公式如下
l=(z?v)2?πTlog(p) cθ2(1)

其中 cL2正則化的系數(shù)

AlphaGo Zero訓練過程中的經(jīng)驗

最開始,使用完全的隨機落子訓練持續(xù)了大概3天。訓練過程中,產(chǎn)生490萬場自對弈,每次MCTS大約1600次模擬,每一步使用的時間0.4秒。使用了2048個位置的70萬個Mini-Batches來進行訓練。

訓練結(jié)果如下,圖3

Figure 3

【a圖】表示隨時間AlphaGo Zero棋力的增長情況,顯示了每一個不同的棋手 αθi 在每一次強化學習迭代時的表現(xiàn),可以看到,它的增長曲線非常平滑,沒有很明顯的震蕩,穩(wěn)定性很好

【b圖】表示的是預測準確率基于不同迭代第i輪的 fθi

【c圖】表示的MSE(平方誤差)

在24小時的學習后,無人工因素的強化學習方案就打敗了通過模仿人類棋譜的監(jiān)督學習方法

為了分別評估結(jié)構(gòu)和算法對結(jié)構(gòu)的影響,得到了,下圖4

Figure 4

【dual-res】表示 AlphaGo Zero(20個模塊),策略頭和評估值頭由一個網(wǎng)絡產(chǎn)生
【sep-res】表示使用20個殘差模塊,策略頭和評估值頭被分成兩個不同的網(wǎng)絡
【dual-conv】表示不用ResNet,使用12層卷積網(wǎng),同時包括策略頭和評估值頭
【sep-conv】表示 AlphaGo Lee(擊敗李世乭的)使用的網(wǎng)絡結(jié)構(gòu),策略頭和評估值頭被分成兩個不同的網(wǎng)絡

頭的概念詳見網(wǎng)絡結(jié)構(gòu)

AlphaGo Zero學到的知識

在訓練過程中,AlphaGo Zero可以一步步的學習到一些特殊的圍棋技巧(定式),如圖5

Figure 5

中間的黑色橫軸表示的是學習時間

【a圖】對應的5張棋譜展現(xiàn)的是不同階段AlphaGo Zero在自對弈過過程中展現(xiàn)出來的圍棋定式上的新發(fā)現(xiàn)

【b圖】展示在右星位上的定式下法的進化??梢钥吹接柧毜?0小時,點三三出現(xiàn)了,但再往后訓練,b圖中的第五種定式高頻率出現(xiàn),在AlphGa Zero看來,這一種形式似乎更加強大

【c圖】展現(xiàn)了前80手自對弈的棋譜伴隨時間,明顯有很大的提升,在第三幅圖中,已經(jīng)展現(xiàn)出了比較明顯的的傾向性

具體頻率圖見:出現(xiàn)頻率隨訓練時間分布圖

AlphaGo Zero的最終實力

之后,最終的AlphaGo Zero 使用40個殘差模塊,訓練接近40天。在訓練過程中,產(chǎn)生了2900萬盤的自對弈棋譜,使用了310萬個Mini-Batches來訓練神經(jīng)網(wǎng)絡,每一個Mini-Batch包含了2048個不同的狀態(tài)。(覆蓋的狀態(tài)數(shù)是63億(1010),但和圍棋的解空間 236110108 相比真的很小,也從側(cè)面反映出,圍棋中大部分選擇都是冗余的。在一個棋盤局面下,根據(jù)先驗概率,估計只有15-20種下法是值得考慮的)

被評測不同版本使用計算力的情況,AlphaGo Zero和AlphaGo Master被部署到有4個TPUs的單機上運行(主要用于做模型的輸出預測Inference和MCTS搜索),AlphaGo Fan(打敗樊麾版本)和AlphaGo Lee(打敗李世乭版本) 分布式部署到機器群里,總計有176GPUs和48GPUs(Goolge真有錢)。還加入了raw network,它是每一步的僅僅使用訓練好的深度學習神經(jīng)網(wǎng)的輸出 pa 為依據(jù)選擇最大概率點來落子,不使用MCTS搜索(Raw Network裸用深度神經(jīng)網(wǎng)絡的輸出已經(jīng)十分強大,甚至已經(jīng)接近了AlphaGo Fan)

下圖6展示不同種AlphaGo版本的棋力情況

Figure 6

【a圖】隨著訓練時間棋力的增強曲線

【b圖】裸神經(jīng)網(wǎng)絡得分3055,AlphaGo Zero得分5185,AlphaGo Master得分4858,AlphaGo Lee得分3738,AlphaGo Fan得分3144

最終,AlphaGo Zero 與 AlphaGo Master的對戰(zhàn)比分為89:11,對局中限制一場比賽在2小時之內(nèi)(新聞中的零封是對下贏李世乭的AlphaGo Lee)

論文附錄內(nèi)容

我們知道,Nature上的文章一般都是很強的可讀性和嚴謹性,每一篇文章的正文可能只有4-5頁,但是附錄一般會遠長于正文?;舅心愕?strong>技術(shù)細節(jié)疑惑都可以在其中找到結(jié)果,這里值列舉一些我自己比較感興趣的點,如果你是專業(yè)人士,甚至想復現(xiàn)AlphaGo Zero,讀原文更好更精確

圍棋領域先驗知識

AlphaGo Zero最主要的貢獻是證明了沒有人類的先驗知識機器也可以在性能上超越人類。為了闡釋清楚這種貢獻來自于何處,我們列舉一些AlphaGo Zero使用到的知識,無論是訓練過工程中的還是MCTS搜索中的。如果你想把AlphaGo Zero的思路應用的到解決其他游戲問題上,這些內(nèi)容可能需要被替換

圍棋基本規(guī)則

無論實在MCTS搜索中的模擬還是自對弈的過程,都依賴游戲最終的勝負規(guī)則,并且在落子過程中,根據(jù)規(guī)則還可以排除一部分不可以落子的點(比如已經(jīng)落子的點,無法確認在AlphaGo Zero還有氣為零的點不能下這個規(guī)則,因為不記錄氣的信息了。但可以寫一個函數(shù)來判斷當前局面 ?s下一步所有可能的落子點,不一定非得計算這個信息,這個過程可以完全多線程

Tromp-Taylor規(guī)則

在AlphaGo Zero中使用的是PSK(Positional Superko)禁全同規(guī)則(中國,韓國及日本使用),只要這一手(不包括跳過)會導致再現(xiàn)之前的局面,就禁止。

旋轉(zhuǎn)與鏡面

對于圍棋來說,幾個狀態(tài) ?s 在經(jīng)過旋轉(zhuǎn)或反射后是完全相同的,這種規(guī)律可以用來優(yōu)化訓練數(shù)據(jù)和MCTS搜索中的子樹替換策略。并且因為貼目(黑棋先下優(yōu)勢貼目7目半)規(guī)則存在,不同狀態(tài) ?s 換顏色也是相同的。這個規(guī)則可以用來使用當前下子的棋手的角度來表示棋盤

除了以上的三個規(guī)則,AlphaGo Zero 沒有使用其他任何先驗知識,它僅僅使用深度神經(jīng)網(wǎng)絡對葉子節(jié)點進行評估并選擇落子位置。它沒有使用任何Rollout Policy(這里指的應該是AlphaGo之前版本的快速走子策略)或者樹形規(guī)則,MCTS搜索也沒有使用其他的標準啟發(fā)式規(guī)則或者先驗常識規(guī)則去進行增強

整個算法從隨機初始化神經(jīng)網(wǎng)絡參數(shù)開始。網(wǎng)絡結(jié)構(gòu)超參數(shù)選擇 見下一節(jié)。MCTS搜索的超參數(shù) cpuct高斯過程優(yōu)化決定,為了優(yōu)化自對弈的性能,使用了一個神經(jīng)網(wǎng)絡進行預訓練。對于一個大規(guī)模網(wǎng)絡的訓練過程(40個殘差模塊,40天),使用一個小規(guī)模網(wǎng)絡(20個殘差模塊,3天)來反復優(yōu)化MCTS搜索的超參數(shù) cpuct。整個訓練過程沒有任何人工干預

自對弈訓練工作流

AlphaGo Zero的工作流由三個模塊構(gòu)成,可以異步多線程進行:

  • 深度神經(jīng)網(wǎng)絡參數(shù) θi 根據(jù)自對弈數(shù)據(jù)持續(xù)優(yōu)化
  • 持續(xù)對棋手 αθi 棋力值進行評估
  • 使用表現(xiàn)最好的 αθ? 用來產(chǎn)生新的自對弈數(shù)據(jù)

優(yōu)化參數(shù)

每一個神經(jīng)網(wǎng)絡 fθi64個GPU工作節(jié)點19個CPU參數(shù)服務器上進行優(yōu)化。

每個工作節(jié)點的批次(Batch)大小是32,每一個mini-batch大小為2048。每一個 mini-batch 的數(shù)據(jù)從最近50萬盤的自對弈棋譜的狀態(tài)中聯(lián)合隨機采樣。

神經(jīng)網(wǎng)絡權(quán)重更新使用帶有動量(momentum)和學習率退火(learning rate annealing)的隨機梯度下降法(SGD),損失函數(shù)見公式1

學習率退火比率見下表

步數(shù)(千) 強化學習率 監(jiān)督學習率
0-200 10?2 10?1
200-400 10?2 10?2
400-600 10?3 10?3
600-700 10?4 10?4
700-800 10?4 10?5
>800 10?4 -

動量參數(shù)設置為0.9

方差項和交叉項的權(quán)重相同,原因是獎勵值被歸一化到 r[?1, 1]

L2正則化系數(shù)設置為 c=10?4

優(yōu)化過程每1000個訓練步數(shù)執(zhí)行一次,并使用這個新模型來生成下一個Batch的自對弈棋譜

評估器

為了保證生成數(shù)據(jù)的質(zhì)量(不至于棋力反而下降),在使用新的神經(jīng)網(wǎng)絡去生成自對弈棋譜前,用現(xiàn)有的最好網(wǎng)絡 fθ? 來對它進行評估

【評估神經(jīng)網(wǎng)絡 fθi 的方法】使用 fθi 進行MCTS搜索得出的 αθi性能(得到 αθi 的MCTS搜索過程中使用 fθi 去估計葉子節(jié)點的位置先驗概率,詳見MCTS搜索這一節(jié)

每一個評估由400盤對局組成,MCTS搜索使用1600次模擬,將溫度參數(shù)設為無窮小 τ?0(目的是為了使用最多訪問次數(shù)的落子下法去下,追求最強的棋力),如果新的選手 αθi 在這400盤中勝率大于55%,將這個選手更新為最佳選手 αθ? ,用來產(chǎn)生下一輪的自對弈棋譜,并且設為下一輪的比較對象

自對弈

通過評估器,現(xiàn)在已經(jīng)有一個當前的最好棋手 αθ?,使用它來產(chǎn)生數(shù)據(jù)。每次迭代中, αθ? 自對弈25000盤,其中每一步MCTS搜索模擬1600次(模擬的每次落子大約0.4秒,這里的一次表示的就是MCTS搜索中走到葉子節(jié)點,得出勝負結(jié)果)

前30步,溫度 τ=1,與MCTS搜索中的訪問次數(shù)成正比,目的是保證前30步下法的多樣性。在之后的棋局中,溫度設為無窮小。并在先驗概率中加入狄利克雷噪聲 P(?s,?a)=(1??)p?a ?η?a ,其中 ηDir(0.03)?=0.25。這個噪聲保證所有的落子可能都會被嘗試,但也可能下出臭棋

投降閾值 vrerign 自動設為錯誤正類率(如果AlphaGo沒有投降可以贏的比例)小于5%,為了測量錯誤正類(false positives),在10%的自對弈中關閉投降機制,必須下完

監(jiān)督學習

為了進行對比,我們還使用監(jiān)督學習訓練了一個參數(shù)為 θSL 神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡的結(jié)構(gòu)和AlphaGo Zero相同。數(shù)據(jù)集 (?s,π,z) 隨機采樣自KGS數(shù)據(jù)集,人類的落子策略位置即設置 πa=1 。使用同樣的超參數(shù)和損失函數(shù),但是平方誤差的系數(shù)為0.01,學習率圖參照上表的第二列。其他超參數(shù)和上一節(jié)相同

比AlphaGo1.0z中使用兩種網(wǎng)絡,使用這種結(jié)構(gòu)的網(wǎng)絡,可以有效的防止過擬合。并且實驗也證明這個網(wǎng)絡結(jié)構(gòu)的的效果要好于之前的網(wǎng)絡

MCTS搜索算法

這一部分詳解的AlphaGo Zero的算法核心示意圖Figure2

AlphaGo Zero使用的是比AlphaGo1.0中更簡單異步策略價值MCTS搜索算法(APV-MCTS)的變種

搜索樹中的節(jié)點 ?s 包含一條邊 (?s,?a) 對應所有可能的落子 ?aA(?s) ,每一條邊中存儲一個數(shù)據(jù),包含下列公式的四個值
N(?s,?a),W(?s,?a),Q(?s,?a),P(?s,?a)

N(?s,?a) 表示MCST搜索模擬走到葉子節(jié)點的過程中的訪問次數(shù)
W(?s,?a) 表示行動價值(由路徑上所有的 v 組成)的總和
Q(?s,?a) 表示行動價值的均值
P(?s,?a) 表示選擇這條邊的先驗概率(一個單獨的值)

多線程(并行)執(zhí)行多次模擬,每一次迭代過程先重復執(zhí)行1600次Figure 2中的前3個步驟,計算出一個 π ,根據(jù)這個向量下現(xiàn)在的這一步棋

Selcet - Figure2a

MCTS中的選擇步驟和之前的版本相似,詳見AlphaGo之前的詳解文章,這篇博文詳細通俗的解讀了這個過程。概括來說,假設L步走到葉子節(jié)點,當走第 t<L 步時,根據(jù)搜索樹的統(tǒng)計概率落子
?at=argmax?a(Q(?st,?a) U(?st,?a))

其中計算 U(?st,?a) 使用PUCT算法的變體

U(?s,?a)=cpuctP(?s,?a)Σ?bN(?s,?b)1 N(?s,?a)

其中 cpuct 是一個常數(shù)。這種搜索策略落子選擇最開始更趨向于高先驗概率低訪問次數(shù)的,但逐漸的會更加趨向于選擇有著更高行動價值的落子

cpuct 使用貝葉斯高斯過程優(yōu)化來確定

Expand and evaluate - Figure 2b

將葉子節(jié)點 ?sL 加到隊列中等待輸入至神經(jīng)網(wǎng)絡進行評估, fθ(di(?sL))=(di(p),v) ,其中 di 表示一個1至8的隨機數(shù)來表示雙方向鏡面旋轉(zhuǎn)(從8個不同的方向進行評估,如下圖所示,圍棋棋型在很多情況如果從視覺角度來提取特征來說是同一個節(jié)點,極大的縮小了搜索空間)

Figure 6

隊列中8個不同位置組成一個大小為8的mini-batch輸入到神經(jīng)網(wǎng)絡中進行評估。整個MCTS搜索線程被鎖死直到評估過程完成(這個鎖死是保證并行運算間同步)。葉子節(jié)點被展開(Expand),每一條邊 (?sL,?a)被初始化為

N(?sL,?a)=0;W(?sL,?a)=0;Q(?sL,?a)=0P(?sL,?a)=pa

這里的 pa 由將 ?s 輸入神經(jīng)網(wǎng)絡得出 p (包括所有落子可能的概率值 pa),然后將神經(jīng)網(wǎng)絡的輸出值 v 傳回(backed up)

Backup - Figure 2c

沿著擴展到葉子節(jié)點的路線回溯將邊的統(tǒng)計數(shù)據(jù)更新(如下列公式所示)

N(?st,?at)=N(?st,?at) 1W(?st,?at)=W(?st,?at) vQ(?st,?at)=W(?st,?at)N(?st,?at)

注解:在 W(?st,?at) 的更新中,使用了神經(jīng)網(wǎng)絡的輸出 v,而最后的價值就是策略評估中的這一狀態(tài)的價值 Q(?s,?a)

使用虛擬損失(virtual loss)確保每一個線程評估不同的節(jié)點。實現(xiàn)方法概括為把其他節(jié)點減去一個很大的值,避免其他搜索進程走相同的路,詳見

Play - Figure 2d

完成MCTS搜索(并行重復1-3步1600次,花費0.4s)后,AlphaGo Zero才從 ?s0 狀態(tài)下走出第一步 ?a0,與訪問次數(shù)成冪指數(shù)比例

π(?a|?s0)=N(?s0,a)1/τΣ?bN(?s0,?b)1/τ

其中 τ 是一個溫度常數(shù)用來控制探索等級(level of exploration)。它是熱力學玻爾茲曼分布的一種變形。溫度較高的時候,分布更加均勻(走子多樣性強);溫度降低的時候,分布更加尖銳(多樣性弱,追求最強棋力)

搜索樹會在接下來的自對弈走子復用,如果孩子節(jié)點和落子的位置吻合,它就成為新的根節(jié)點,保留子樹的所有統(tǒng)計數(shù)據(jù),同時丟棄其他的樹。如果根的評價值和它最好孩子的評價值都低于 vresign AlphaGo Zero就認輸

MCTS搜索總結(jié)

與之前的版本的MCTS相比,AlphaGo Zero最大的不同是沒有使用走子網(wǎng)絡(Rollout),而是使用一個整合的深度神經(jīng)網(wǎng)絡;葉子節(jié)點總會被擴展,而不是動態(tài)擴展;每一次MCTS搜索線程需要等待神經(jīng)網(wǎng)絡的評估,之前的版本性能評估(evaluate)和返回(backup)是異步的;沒有樹形策略

至于很重要的一個關鍵點:每一次模擬的中的葉子節(jié)點L的深度

【個人分析】是由時間來決定,根據(jù)論文提到的數(shù)據(jù),0.4秒執(zhí)行1600次模擬,多線程模擬,在時限內(nèi)能走到的深度有多深就是這個葉子節(jié)點??梢灶惐葹锳lphaGo 1.0中的局面函數(shù)(用來判斷某個局面下的勝率的),也就是說不用模擬到終盤,在葉子節(jié)點的狀態(tài)下,使用深度神經(jīng)網(wǎng)的輸出 v 來判斷現(xiàn)在落子的棋手的勝率

網(wǎng)絡結(jié)構(gòu)

網(wǎng)絡輸入數(shù)據(jù)

輸入數(shù)據(jù)的維度 19×19×17,其中存儲的兩個值0/1,Xit=1表示這個交叉點有子,0 表示這個交叉點沒有子或是對手的子或 t<0。使用 Yt 來記錄對手的落子情況。

從狀態(tài) ?s 開始,記錄了倒退回去的15步,雙方棋手交替。最后一個19×19的存儲了前面16步每一個狀態(tài)對應的棋子的黑白顏色。1黑0白

Figure 6

【個人理解】為了更加直觀的解釋,如果是上面的局部棋盤狀態(tài) ?s,接下里一步是黑棋落子,走了4步,那么輸入數(shù)據(jù)是什么樣的呢?

X2=?? ? ? ? ?????01??10????? ? ? ? ??Y2=?? ? ? ? ?????10??01????? ? ? ? ??X1=?? ? ? ? ?????00??10????? ? ? ? ??Y1=?? ? ? ? ?????00??01????? ? ? ? ??C=?? ? ? ? ?????10??01????? ? ? ? ??

同理,如果有8步的話,也就是16個對應的 XY 加一個 C 來表示現(xiàn)在的棋盤狀態(tài)(注意,這里面包含的歷史狀態(tài))。這里的數(shù)據(jù)類型是Boolean,非常高效,并且表達的信息也足夠

至于使用八步的原因。個人理解,一方面是為了避免循環(huán)劫,另一方面,選擇八步也可能是性能和效果權(quán)衡的結(jié)果(從感知上來說當然信息記錄的越多神經(jīng)網(wǎng)絡越強,奧卡姆剃刀定理告訴我們,簡單即有效,一味的追求復雜,并不是解決問題的最佳途徑)

深度神經(jīng)網(wǎng)結(jié)構(gòu)

整個殘差塔使用單獨的卷機模塊組成,其中包含了19或39個殘差模塊,詳細結(jié)構(gòu)參數(shù)如下圖所示

Figure 6

過了深度卷積神經(jīng)網(wǎng)絡后接策略輸出評估值輸出,詳細結(jié)構(gòu)參數(shù)如下圖所示

Figure 6

數(shù)據(jù)集

GoKifu數(shù)據(jù)集,和KGS數(shù)據(jù)集

圖5更多細節(jié)

Figure 5a中每種定式出現(xiàn)的頻率圖
Figure 5a中每種定式出現(xiàn)的頻率圖
Figure 5b中每種定式出現(xiàn)的頻率圖
Figure 5b中每種定式出現(xiàn)的頻率圖

總結(jié)與隨想

AlphaGo Zero = 啟發(fā)式搜索 強化學習 深度神經(jīng)網(wǎng)絡,你中有我,我中有你,互相對抗,不斷自我進化。使用深度神經(jīng)網(wǎng)絡的訓練作為策略改善蒙特卡洛搜索樹作為策略評價強化學習算法

之后提出一些我在看論文時帶著的問題,最后給出我仔細看完每一行論文后得出的回答,如有錯誤,請批評指正!

問題與個人答案

訓練好的Alpha Zero在真實對弈時,在面對一個局面時如何決定下在哪個位置

評估器的落子過程即最終對弈時的落子過程(自對弈中的落子就是真實最終對局時的落子方式):使用神經(jīng)網(wǎng)絡的輸出 p 作為先驗概率進行MCTS搜索,每步1600次(最后應用的版本可能和每一步的給的時間有關)模擬,前30步采樣落子,剩下棋局使用最多訪問次數(shù)來落子,得到 π ,然后選擇落子策略中最大的一個位置落子

AlphaGo Zero的MCTS搜索算法和和上個版本的有些什么區(qū)別?

最原始MCTS解析,AlphaGo Lee加上策略函數(shù)和局面函數(shù)改進后的MCTS解析

對于AlphaGo Zero來說

  • 最大的區(qū)別在于,模擬過程中依據(jù)神經(jīng)網(wǎng)絡的輸出 p 的概率分布采樣落子。采樣是關鍵詞,首先采樣保證一定的隨機特性,不至于下的步數(shù)過于集中,其次,如果模擬的盤數(shù)足夠多,那這一步就會越來越強
  • 其次,在返回(Bakcup)部分每一個點的價值(得分),使用了神經(jīng)網(wǎng)絡的輸出 v。這個值也是策略評估的重要依據(jù)

AlphaGo Zero 中的策略迭代法是如何工作的?

策略迭代法(Policy Iteration)是強化學習中的一種算法,簡單來說:以某種策略π0 )開始,計算當前策略下的價值函數(shù)vπ0 );然后利用這個價值函數(shù),找到更好的策略Evaluate和Improve);接下來再用這個更好的策略繼續(xù)前行,更新價值函數(shù)……這樣經(jīng)過若干輪的計算,如果一切順利,我們的策略會收斂到最優(yōu)的策略π? ),問題也就得到了解答。

π0Evπ0Iπ1Evπ1Iπ2E?Iπ?Ev?

對于AlphaGo Zero來說,詳細可見論文,簡單總結(jié)如下

  • 策略評估過程,即使用MCTS搜索每一次模擬對局勝者,勝者的所有落子?s)都獲得更好的評估值
  • 策略提升過程,即使用MCTS搜索返回的更好策略 π
  • 迭代過程,即神經(jīng)網(wǎng)絡輸出 pv 與策略評估和策略提升返回值的對抗(即神經(jīng)網(wǎng)絡的訓練過程)

總的來說,有點像一個嵌套過程,MCST算法可以用來解決圍棋問題,這個深度神經(jīng)網(wǎng)絡也可以用來解決圍棋問題,而AlphaGo Zero將兩者融合,你中有我,我中有你,不斷對抗,不對自我進化

AlphaGo Zero 最精彩的部分哪部分?

l=(z?v)2?πTlog(p) cθ2

毫無懸念的,我會選擇這個漂亮的公式,看懂公式每一項的來歷,即產(chǎn)生的過程,就讀懂了AlphaGo Zero。這個公式你中有我,我中有你,這是一個完美的對抗,完美的自我進化

第二我覺得很精彩的點子是將深度神經(jīng)網(wǎng)絡作為一個模塊嵌入到了強化學習的策略迭代法中。最關鍵的是,收斂速度快,效果好,解決各種復雜的局面(比如一個關于圍棋棋盤的觀看角度可以從八個方向來看的細節(jié)處理的很好,又如神經(jīng)網(wǎng)絡的輸入狀態(tài)選擇了使用歷史八步

隨想和評論

量子位匯集各家評論

  • 不是無監(jiān)督學習,帶有明顯勝負規(guī)則的強化學習是強監(jiān)督的范疇
  • 無需擔心快速的攻克其他領域,核心還是啟發(fā)式搜索
  • 模型簡約漂亮,充滿整合哲學的優(yōu)雅,可怕的是效果和效率也同樣極高
  • AlphaGo項目在經(jīng)歷了把書讀厚的過程后,已經(jīng)取得了矚目的成就依舊不滿足現(xiàn)狀,現(xiàn)通過AlphaGo Zero把書讀薄,簡約而不簡單,大道至簡,九九歸一,已然位列仙班了

隨著AlphaGo Zero的歸隱,DeepMind已經(jīng)正式轉(zhuǎn)移精力到其他的任務上了。期待這個天才的團隊還能搞出什么大新聞!

對于圍棋這項運動的影響可能是:以后的學圍棋手段會發(fā)生變化,畢竟世界上能復現(xiàn)AlphaGo Zero的絕對很多,那么AlphaGo Zero的實力那就是棋神的感覺,向AlphaGo Zero直接學習不是更加高效嘛?另,圍棋受到的關注也應該漲了一波,是利好

感覺強化學習會越來越熱,對于和環(huán)境交互這個領域,強化學習更加貼近于人類做決策的學習方式。個人預測,強化學習會在未來會有更多進展!AlphaGo Zero 可能僅僅是一個開頭

以上!鞠躬!

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多