終極版AlphaGo,DeepMind新算法MuZero作者解讀 所有一切不過是統計 取勝之路 中間獎勵 訓練 重分析 MuZero命名含義 結語

導語:從需要人類提供棋類規則的Alpha系列到無師自通各種棋類的MuZero,DeepMind走了很遠的一步。
譯者: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的介紹對你有所啓發!

如果想了解更多細節,可以閱讀原文,還可以查看我在NeurIPSposter以及在ICAPS上發表的關於MuZero的演講。

最後,分享給你一些其他研究人員的文章,博客和GitHub項目:

<ahelp_12" name="help_12"><divpara-item divitem-area="" item-en=""></divpara-item></ahelp_12">

  1. 爲簡單起見,在MuZero中僅使用單個網絡進行預測。

  2. 根據Rémi Coulom在2006年發表的Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search,MCTS爲解決圍棋問題提供可能。具體而言,MCTS中的“蒙特卡洛”指在圍棋比賽中的隨機模擬數,通過計算每次隨機移動得獲勝概率從而選擇合適位置。

  3. 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。

  4. 就像AlphaGo之前的許多Go程序使用的隨機卷展,隨機評估函數有一定作用。但如果評估函數是確定性的(如標準神經網絡),那麼對同一節點多次評估沒什麼意義。

  5. 在棋盤遊戲中,折扣因子γ爲1,TD步數趨於無限,因此,這僅適用於對蒙特卡洛獎勵(遊戲獲勝者)的預測。

  6. 在運行MuZero時,無需單獨對行動者進行重分析:由於只有一組行動者,在每次行動之前決定是與環境交互生成新軌跡還是對存儲軌跡進行重分析。


AI研習社是AI學術青年和AI開發者技術交流的在線社區。我們與高校、學術機構和產業界合作,通過提供學習、實戰和求職服務,爲AI學術青年和開發者的交流互助和職業發展打造一站式平臺,致力成爲中國最大的科技創新人才聚集地。

如果,你也是位熱愛分享的AI愛好者。歡迎與譯站一起,學習新知,分享成長。

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