終極版AlphaGo,DeepMind新算法MuZero作者解讀
譯者:AI研習社( 季一帆 )
雙語原文鏈接: MuZero Intuition
為慶祝Muzero論文在
Nature
上的發表,我特意寫了這篇文章對MuZero
算法
進行詳細介紹,希望本人能讓你對該算法有一個直觀的了解。更多詳細信息請閱讀
原文
。
MuZero是令人振奮的一大步,該算法擺脫了對游戲規則或環境動力學的知識依賴,可以自行學習環境模型并進行規劃。即使如此,MuZero仍能夠實現AlphaZero的全部功能——這顯示出其在許多實際問題的應用可能性!
所有一切不過是統計
MuZero是一種機器學習 算法 ,因此自然要先了解它是如何使用神經網絡的。簡單來說,該算法使用了AlphaGo和AlphaZero的策略網絡和值網絡:
策略和值的直觀含義如下:
-
策略p(s,a)表示在狀態s時所有可能的動作a分布,據此可以估計最優的動作。類比人類玩家,該策略相當于快速瀏覽游戲時擬采取的可能動作。
-
值v(s)估計在當前狀態s下獲勝的可能性,即通過對所有的未來可能性進行加權平均,確定當前玩家的獲勝概率。
這兩個網絡任何一個都非常強大:只根據策略網絡,能夠輕易預測每一步的動作,最終得到良好結果;只依賴值網絡,始終選擇值最高的動作。但是,將這兩個估計結合起來可以得到更好的結果。
取勝之路
與AlphaGo和AlphaZero相似,MuZero也使用蒙特卡洛樹搜索方法(MCTS)匯總神經網絡預測并選擇適合當前環境的動作。
MCTS是一種迭代的,最佳優先的樹搜索過程。最佳優先意味著搜索樹的擴展依賴于搜索樹的值估計。與經典方法(如廣度優先或深度優先)相比,最佳優先搜索利用啟發式估計(如神經網絡),這使其在很大的搜索空間中也可以找到有效的解決方案。
MCTS具有三個主要階段:模擬,擴展和反向傳播。通過重復執行這些階段,MCTS根據節點可能的動作序列逐步構建搜索樹。在該樹中,每個節點表示未來狀態,而節點間的邊緣表示從一個狀態到下一個狀態的動作。
在深入研究之前,首先對該搜索樹及逆行介紹,包括MuZero做出的神經網絡預測:
圓圈表示樹節點,對應環境狀態;線表示從一個狀態到下一個狀態的動作;根節點為當前環境狀態,即圍棋面板狀態。后續章節我們會詳細介紹預測和動力學函數。
模擬: 從樹的根節點出發(圖頂部的淡藍色圓圈),即環境或游戲的當前位置。在每個節點(狀態s),使用評分函數U(s,a)比較不同的動作a,并選擇最優動作。MuZero中使用的評分函數是將先前的估計p(s,a)與v(s')的值結合起來,即
其中c是比例因子,隨著值估計準確性的增加,減少先驗的影響。
每選擇一個動作,我們都會增加其相關的訪問計數n(s,a),以用于UCB比例因子c以及之后的動作選擇。
模擬沿著樹向下進行,直到尚未擴展的葉子。此時,應用神經網絡評估節點,并將評估結果(優先級和值估計)存儲在節點中。
擴展 :一旦節點達到估計量值后,將其標記為“擴展”,意味著可以將子級添加到節點,以便進行更深入的搜索。在MuZero中,擴展閾值為1,即每個節點在首次評估后都會立即擴展。在進行更深入的搜索之前,較高的擴展閾值可用于收集更可靠的統計信息。
反向傳播 :最后,將神經網絡的值估計傳播回搜索樹,每個節點都在其下保存所有值估計的連續均值,這使得UCB公式可以隨著時間的推移做出越來越準確的決策,從而確保MCTS收斂到最優動作。
中間獎勵
細心的讀者可能已經注意到,上圖還包括r的預測。某一情況(如棋盤游戲)在完全結束后提供反饋(獲勝/失敗結果),這樣可以通過值估計進行建模。但在另外一些情況下,會存在頻繁的反饋,即每次從一種狀態轉換到另一種狀態后,都會得到回報r。
只需對UCB公式進行簡單修改,就可以通過神經網絡預測直接對獎勵進行建模,并將其用于搜索。
其中,r(s,a)是指在狀態s時執行動作a后觀察到的獎勵,而折扣因子γ是指對未來獎勵的關注程度。
由于總體獎勵可以時任意量級的,因此在將其與先驗獎勵組合之前,我們將獎勵/值估計歸一化為區間[0,1]:
其中,q_min和q_max分別是整個搜索樹中觀察到的最小和最大r(s,a)+γ?v(s')估計。
過程生成
重復執行以下過程可實現上述MCTS:
-
在當前環境狀態下進行搜索;
-
根據搜索的統計信息π_t選擇一個動作a_(t+1);
-
根據該動作更新環境,得到新的狀態s_(t+1)和獎勵u(t+1);
-
重復上述過程。
動作的選擇可以是貪心的(選擇訪問次數最多的動作),也可以是探索性的:通過一定的溫度t控制探索程度,并對與訪問次數n(s,a)成比例的動作a進行采樣:
當t = 0時,等效貪婪采樣;當t = inf時,等效均勻采樣。
訓練
現在,我們已經學會了運行MCTS來選擇動作,并與環境互動生成過程,接下來就可以訓練MuZero模型了。
首先,從數據集中采樣一條軌跡和一個位置,然后根據該軌跡運行MuZero模型:
可以看到,MuZero 算法 由以下三部分組成:
-
表示函數h 將一組觀察值(棋盤)映射到神經網絡的隱藏狀態s;
-
動態函數g 根據動作a_(t + 1)將狀態s_t映射到下一個狀態s_(t + 1),同時估算在此過程的回報r_t,這樣模型就能夠不斷向前擴展;
-
預測函數f 根據狀態s_t對策略p_t和值v_t進行估計,應用UCB公式并將其匯入MCTS過程。
根據軌跡選擇用于網絡輸入的觀測值和動作。相應地,策略、值和獎勵的預測目標是在生成存儲的軌跡。
從下圖可以看到過程生成(B)與訓練(C)之間的一致性:
具體問言,MuZero估計量的訓練損失為:
-
策略 :MCTS訪問統計信息與預測函數的策略logit之間的交叉熵;
-
值 :N個獎勵的折扣和+搜索值/目標網絡估計值與預測函數的值之間的交叉熵或均方誤差;
-
獎勵 :軌跡觀測獎勵與動態函數估計之間的交叉熵。
重分析
在了解了MuZero的核心思想后,接下來我們將介紹重分析技術,這將顯著提高模型對大量數據的搜索效率。
在一般訓練過程中,通過與環境的相互作用,我們會生成許多軌跡,并將其存儲在重播緩沖區用于訓練。那么,我們可以從該數據中獲得更多信息嗎?
很難。由于需要與環境交互,我們無法更改存儲數據的狀態、動作或獎勵。在《黑客帝國》中可能做到,但在現實世界中則不可能。
幸運的是,我們并不需要這樣。只要使用更新的、改進標簽的現有輸入,就足以繼續學習。考慮到MuZero模型和MCTS,我們做出如下改進:
保持軌跡(觀測、動作和獎勵)不變,重新運行MCTS,就可以生成新的搜索統計信息,從而提供策略和值預測的新目標。
我們知道,在與環境直接交互過程中,使用改進網絡進行搜索會獲得更好的統計信息。與之相似,在已有軌跡上使用改進網絡重新搜索也會獲得更好的統計信息,從而可以使用相同的軌跡數據重復改進。
重分析適用于MuZero訓練,一般訓練循環如下:
設置兩組異步通信任務:
-
一個 學習者 接收最新軌跡,將最新軌跡保存在重播緩沖區,并根據這些軌跡進行上述訓練;
-
多個 行動者 定期從學習者那里獲取最新的網絡檢查點,并使用MCTS中的網絡選擇動作,與環境進行交互生成軌跡。
為實現重分析,引入兩個新任務:
-
重分析緩沖區 ,用于接收參與者生成的所有軌跡并保留最新軌跡;
-
多個 重分析行動者 從重分析緩沖區采樣存儲的軌跡,使用學習者的最新網絡檢查點重新運行MCTS,并將生成的軌跡和更新的統計信息發送給學習者。
由于學習者無法區分新軌跡和重分析的軌跡,這使得新軌跡與重分析軌跡的比例更改變得簡單。
MuZero命名含義
MuZero的命名基于AlphaZero,其中Zero表示是在沒有模仿人類數據的情況下進行訓練的,Mu取代Alpha表示使用學習模型進行規劃。
更研究一些,Mu還有其他豐富的含義:
-
夢 ,日語中讀作mu,表示“夢”的意思,?就像MuZero通過學習的模型來想象未來狀況一樣;
-
希臘字母μ(發音為mu)也可以表示學習的模型;
-
無 ,?日語發音為mu,表示“無、沒有”,這強調從頭學習的概念:不僅無需模仿人類數據,甚至不需提供規則。
結語
希望本文對MuZero的介紹對你有所啟發!
如果想了解更多細節,可以閱讀 原文 ,還可以查看我在 NeurIPS 的 poster 以及在 ICAPS 上發表的關于MuZero的演講。
最后,分享給你一些其他研究人員的文章,博客和GitHub項目:
-
A Simple Alpha(Go) Zero Tutorial
-
MuZero General?implementation
-
How To Build Your Own MuZero AI Using Python
-
為簡單起見,在MuZero中僅使用單個網絡進行預測。
-
根據Rémi Coulom在2006年發表的Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search,MCTS為解決圍棋問題提供可能。具體而言,MCTS中的“蒙特卡洛”指在圍棋比賽中的 隨機模擬數 ,通過計算每次隨機移動得獲勝概率從而選擇合適位置。
-
MuZero中使用的比例因子為∑bn(s,b)√1+n(s,a)?(c1+log(∑bn(s,b)+c2+1c2)),其中n(s,a)表示從狀態s到動作a的訪問次數,常數c1和c2分別為1.25和19652,它們決定先驗對于值估計得重要性。請注意,當c2遠大于n時,c2的確切值不再重要,對數項此時為0。在這種情況下,公式簡化為c1?∑bn(s,b)√1+n(s,a)c1。
-
就像AlphaGo之前的許多Go程序使用的隨機卷展,隨機評估函數有一定作用。但如果評估函數是確定性的(如標準神經網絡),那么對同一節點多次評估沒什么意義。
-
在棋盤游戲中,折扣因子γ為1,TD步數趨于無限,因此,這僅適用于對蒙特卡洛獎勵(游戲獲勝者)的預測。
-
在運行MuZero時,無需單獨對行動者進行重分析:由于只有一組行動者,在每次行動之前決定是與環境交互生成新軌跡還是對存儲軌跡進行重分析。
AI研習社是AI學術青年和AI開發者技術交流的在線社區。我們與高校、學術機構和產業界合作,通過提供學習、實戰和求職服務,為AI學術青年和開發者的交流互助和職業發展打造一站式平臺,致力成為中國最大的科技創新人才聚集地。
如果,你也是位熱愛分享的AI愛好者。歡迎與譯站一起,學習新知,分享成長。
雷鋒網版權文章,未經授權禁止轉載。詳情見。