【閱讀時間】21min - 24min 10999字 在之前的詳解:深入淺出看懂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ì)上來說完全不同于打敗樊麾和李世石的版本
AlphaGo Zero 的強化學習問題描述在開始之前,必須再過一遍如何符號化的定義一個圍棋問題 圍棋問題,棋盤 有以上定義,我們就把圍棋問題轉(zhuǎn)化為。
簡而言之
網(wǎng)絡結(jié)構(gòu)新的網(wǎng)絡中,使用了一個參數(shù)為 θ (需要通過訓練來不斷調(diào)整) 的深度神經(jīng)網(wǎng)絡fθ
改進的強化學習算法自對弈強化學習算法(什么是強化學習,非常建議先看看強化學習的一些基本思想和步驟,有利于理解下面策略、價值的概念,推薦系列筆記) 在每一個狀態(tài) ?s ,利用深度神經(jīng)網(wǎng)絡 fθ 預測作為參照執(zhí)行MCTS搜索(蒙特卡洛搜索樹算法),MCTS搜索的輸出是每一個狀態(tài)下在不同位置對應的概率 π (注意這里是一個向量,里面的值是MCTS搜索得出的概率值),一種策略,從人類的眼光來看,就是看到現(xiàn)在局面,選擇下在每個不同的落子的點的概率。如下面公式的例子,下在(1,3)位置的概率是 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)方法
![]()
我們知道,最初的蒙特卡洛樹搜索算法是使用隨機來進行模擬,在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??s′V(?s′) ,?s′|?s,?a??s′ 表示在模擬過程中從 ?s 走到 ?s′的所有落子行動 ?a ![]()
MCTS搜索可以看成一個自對弈過程中決定每一步如何下的依據(jù),根據(jù)神經(jīng)網(wǎng)絡的參數(shù) θ 和根的狀態(tài) ?s 去計算每個狀態(tài)下落子位置的先驗概率,記為 π=αθ(?s) ,冪指數(shù)正比于訪問次數(shù) π?a∝N(?s,?a)1/τ,τ 是溫度常數(shù) 訓練步驟總結(jié)使用MCTS下每一步棋,進行自對弈,強化學習算法(必須了解通用策略迭代的基本方法)的迭代過程中訓練神經(jīng)網(wǎng)絡
AlphaGo Zero訓練過程中的經(jīng)驗最開始,使用完全的隨機落子訓練持續(xù)了大概3天。訓練過程中,產(chǎn)生490萬場自對弈,每次MCTS大約1600次模擬,每一步使用的時間0.4秒。使用了2048個位置的70萬個Mini-Batches來進行訓練。 訓練結(jié)果如下,圖3 ![]()
在24小時的學習后,無人工因素的強化學習方案就打敗了通過模仿人類棋譜的監(jiān)督學習方法 為了分別評估結(jié)構(gòu)和算法對結(jié)構(gòu)的影響,得到了,下圖4 ![]()
AlphaGo Zero學到的知識在訓練過程中,AlphaGo Zero可以一步步的學習到一些特殊的圍棋技巧(定式),如圖5 ![]()
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),但和圍棋的解空間 2361≈10108 相比真的很小,也從側(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版本的棋力情況 ![]()
最終,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)成,可以異步多線程進行:
優(yōu)化參數(shù)每一個神經(jīng)網(wǎng)絡 fθi 在64個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ù)設置為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) 對應所有可能的落子 ?a∈A(?s) ,每一條邊中存儲一個數(shù)據(jù),包含下列公式的四個值
多線程(并行)執(zhí)行多次模擬,每一次迭代過程先重復執(zhí)行1600次Figure 2中的前3個步驟,計算出一個 π ,根據(jù)這個向量下現(xiàn)在的這一步棋 Selcet - Figure2aMCTS中的選擇步驟和之前的版本相似,詳見AlphaGo之前的詳解文章,這篇博文詳細通俗的解讀了這個過程。概括來說,假設 其中計算 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é)點,極大的縮小了搜索空間) 隊列中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)
使用虛擬損失(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é)點 【個人分析】是由時間來決定,根據(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ù)的維度 從狀態(tài) ?s 開始,記錄了倒退回去的15步,雙方棋手交替。最后一個 ![]() 【個人理解】為了更加直觀的解釋,如果是上面的局部棋盤狀態(tài) ?s,接下里一步是黑棋落子,走了4步,那么輸入數(shù)據(jù)是什么樣的呢? X2=?? ? ? ? ?????01??10????? ? ? ? ??Y2=?? ? ? ? ?????10??01????? ? ? ? ??X1=?? ? ? ? ?????00??10????? ? ? ? ??Y1=?? ? ? ? ?????00??01????? ? ? ? ??C=?? ? ? ? ?????10??01????? ? ? ? ??同理,如果有8步的話,也就是16個對應的 X 和 Y 加一個 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ù)如下圖所示 過了深度卷積神經(jīng)網(wǎng)絡后接策略輸出與評估值輸出,詳細結(jié)構(gòu)參數(shù)如下圖所示 數(shù)據(jù)集GoKifu數(shù)據(jù)集,和KGS數(shù)據(jù)集 圖5更多細節(jié)![]() Figure 5a中每種定式出現(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來說
AlphaGo Zero 中的策略迭代法是如何工作的?策略迭代法(Policy Iteration)是強化學習中的一種算法,簡單來說:以某種策略( π0 )開始,計算當前策略下的價值函數(shù)( vπ0 );然后利用這個價值函數(shù),找到更好的策略(Evaluate和Improve);接下來再用這個更好的策略繼續(xù)前行,更新價值函數(shù)……這樣經(jīng)過若干輪的計算,如果一切順利,我們的策略會收斂到最優(yōu)的策略( π? ),問題也就得到了解答。 π0E→vπ0I→π1E→vπ1I→π2E→?I→π?E→v?對于AlphaGo Zero來說,詳細可見論文,簡單總結(jié)如下
總的來說,有點像一個嵌套過程,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)選擇了使用歷史八步) 隨想和評論
隨著AlphaGo Zero的歸隱,DeepMind已經(jīng)正式轉(zhuǎn)移精力到其他的任務上了。期待這個天才的團隊還能搞出什么大新聞! 對于圍棋這項運動的影響可能是:以后的學圍棋手段會發(fā)生變化,畢竟世界上能復現(xiàn)AlphaGo Zero的絕對很多,那么AlphaGo Zero的實力那就是棋神的感覺,向AlphaGo Zero直接學習不是更加高效嘛?另,圍棋受到的關注也應該漲了一波,是利好 感覺強化學習會越來越熱,對于和環(huán)境交互這個領域,強化學習更加貼近于人類做決策的學習方式。個人預測,強化學習會在未來會有更多進展!AlphaGo Zero 可能僅僅是一個開頭 以上!鞠躬! |
|