終極版AlphaGo,DeepMind新算法MuZero作者解讀

2021-01-08 手機鳳凰網

為慶祝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愛好者。歡迎與譯站一起,學習新知,分享成長。

相關焦點

  • 深度學習之Google Deepmind的Alphago人工智慧算法技術演變歷程
    最近大家比較關心的圍棋人機大戰(Alphago vs 李世石)中,deep mind基於Nature2016文章的Alphago在5局制的比賽中已經取得了4-1的獲勝。這兩篇文章都是蒙特卡洛搜索樹+DCNN,效果Google的Alphago優於facebook的方法,剛好藉此機會將之前看到的deep mind該領域的文章捋了一下。
  • DeepMind 推出 AlphaGo 圍棋教學工具,圍棋學習新紀元來啦?
    對付迷你中國流的新辦法!小林流也不是只有大飛掛!原來這裡還可以飛!妖刀定式!而在看到樊麾老師的微博之後,大家也開始了各色各樣的調侃。@ 樓天,「有 21 天從入門到精通系列課程嗎?」@ 我就是那一片浮雲,「完了,十段棋手猛烈增加。」
  • Google DeepMind 團隊發布新算法,下一個被 AI 虐哭的是誰?
    同年 12 月,強化版 AlphaGo 化名「Master」,在非正式網絡快棋對戰測試當中取得 60 戰全勝。2017 年 5 月,與中國棋手柯潔九段對戰,全取三分,虐哭柯潔。而且由於此次使用 Google 的 TPU,使得計算資源只有對戰李世石時候的十分之一。
  • AlphaGo 圍棋教學工具已發布
    在Deepmind所謂的「教學工具」發布之前,小編曾在腦海出現萬千猜想……但今天揭底才知道,原來只是一個平平淡淡的網頁……(建議複製到電腦上打開,因為據有的棋友反映手機打不開,小編這裡實測手機能打開,只是讀取了較長時間)
  • 從AlphaGo到蛋白質摺疊,Deepmind在不斷捅破AI領域的天花板!
    #近日,又一世紀級難題被AI迎刃而解:谷歌旗下子公司Deepmind通過AI建立的算法模型,成功精準預測了蛋白質的摺疊方式,這將對人類了解重要的生物學過程和治療新冠等疾病起到十分關鍵的作用。根據DeepMind的AlphaFold程序創建的模型,說明與冠狀病毒相關的「膜蛋白」的可能結構在此,我就不詳細解讀這個最新科研成果
  • 超越AlphaZero,DeepMind新算法MuZero登頂Nature
    現在,在《自然》雜誌的一篇論文中,DeepMind又帶來了 MuZero,這是在尋求通用人工智慧算法方面邁出的重要一步。由於它能夠在未知環境中計劃勝利的策略,MuZero 掌握圍棋、西洋棋、shogi 和 Atari ,而不需要被告知遊戲規則。一直以來,構建具有規劃能力的智能體是人工智慧領域的主要挑戰之一。
  • Deepmind新一代AlphaGo Zero自學3天打敗AlphaGo
    今天凌晨,谷歌旗下Deepmind人工智慧團隊發布了一篇轟動AI界的論文,《Mastering the game of Go without human knowledge》(在沒有人類知識的情況下掌握圍棋),一句話總結這篇論文,他們研發的AlphaGo大表哥AlphaGo Zero能夠在沒有人類圍棋對弈數據的情況下
  • 谷歌推出終極版AlphaGo:MuZero,能自學掌握規則,能否超越人類
    但是對於谷歌旗下的DeepMind來說,戰勝人類,顯然還不是他們開發AlphaGo的終極目的。因此在經過多次技術迭代,算法優化之後。近日,谷歌推出了終極版的AlphaGo:MuZero。那麼這次的MuZero又和之前的AlphaGo有何區別呢。目前DeepMind公開推出的AlphaGo一共有三個大版本。
  • Deepmind Nature論文揭示最強AlphaGo Zero
    AlphaGo「退役」了,但Deepmind在圍棋上的探索並沒有停止。今年5月的烏鎮大會的「人機對局」中,中國棋手、世界冠軍柯潔9段以0:3不敵AlphaGo。隨後Deepmind創始人Hassabis宣布,AlphaGo將永久退出競技舞臺,不再進行比賽。
  • 不只是AlphaGo,谷歌DeepMind到底是何方神聖?
    通用學習算法DeepMind的通用學習算法非常有趣,有助於更好地理解人腦。為做到這一點,該公司已經開始開發可以玩各種不同遊戲的系統。一位創始人認為,當一個程序可以玩不同的遊戲時,人工智慧就能達到人類水平。
  • 最強AlphaGo怎樣煉成?DeepMind團隊進行全面解讀
    △ 左:Julian Schrittwieser 右:David Silver比較關注AlphaGo的朋友對其中一位應該不會陌生,David Silver是AlphaGo團隊負責人,也是上一代AlphaGo的主要作者。從首爾到烏鎮,都有他的身影。關於David Silver我們在之前報導黃士傑的文章裡也有提及。
  • DeepMind推出蛋白質結構預測算法,大勝人類傳統模型!
    因此,科學家們開始利用AI技術開發深度學習算法,在基因組學數據的基礎上對蛋白質結構進行預測。在此基礎上,AlphaFold誕生了。和以往方法不一樣的是,AlphaFold並未使用已經明確結構的蛋白質3D模型作為模板,而是從頭開始探索預測方法。
  • DeepMind新GNN模型,將谷歌地圖預估到達準確率提升50%!
    谷歌地圖也有一套預測算法。但畢竟世界是動態的,每天的狀況都有可能不同,特別是疫情期間。目前,谷歌Maps交通預測系統由以下部分組成:(1)路由分析器,以構建超路段(2)新GNN 模型,利用多個目標函數進行優化,能夠預測每個超級路段的行程時間。
  • AlphaGo之後,DeepMind重磅推出AlphaFold:基因序列預測蛋白質結構
    DeepMind 表示,AlphaFold 是「該公司首個證明人工智慧研究可以驅動和加速科學新發現的重要裡程碑」。看來,人類醫學研究要前進一步了。儘管實踐證明,遊戲是 DeepMind AI 項目的優秀試驗場,但在遊戲中取得高分並非他們的終極目標。「我們的目標從來就不是贏得圍棋或雅達利比賽的勝利,而是開發能夠解決蛋白質摺疊這類問題的算法,」Hassabis 表示。
  • 生物學50年難題被DeepMind解決了,蛋白質版「阿法狗」預測結構準確...
    △圖源:Deepmind兩年前,上一版本的AlphaFold便已經取得了裡程碑的突破,但是,仍然沒有完全解決蛋白質摺疊問題。而這次AlphaFold 2,則更進一步。這一巨大的突破,直接引爆了全網,Nature、Science紛紛報導,生物屆和AI大牛們也紛紛祝賀。
  • Deepmind AMA:關於最強ALphaGo如何煉成的真心話,都在這裡了!
    David Silver:Deepmind強化學習組負責人,AlphaGo首席研究員。Julian Schrittwieser:Deepmind高級軟體工程師。雷鋒網(公眾號:雷鋒網)從今天Deepmind的AMA中選取了一些代表性的問題,整理如下:關於論文與技術細節Q: Deepmind Zero的訓練為什麼如此穩定?
  • DeepMind開源AlphaFold,蛋白質預測模型登上《Nature》
    代碼:https://github.com/deepmind/deepmind-research/tree/master/alphafold_casp13模型:https://www.biorxiv.org/content/10.1101/846279v1.full.pdf根據DeepMind的介紹,在預測蛋白質結構的物理性質方面使用了兩種不同的方法來構建預測模型
  • 現場報導 | 讓天下三子,DeepMind官方解讀新版AlphaGo強大實力
    機器之心原創記者:杜夏德參與:李澤南、吳攀5 月 23 日,烏鎮圍棋峰會第一場人機大戰以柯潔落敗而結束,DeepMind 和谷歌在今天的人工智慧高峰論壇中詳細回顧了昨天的比賽,並解讀了 AlphaGo 背後的強大實力。
  • 生物版AlphaGo發威!DeepMind抗疫:預測新冠病毒相關蛋白結構
    DeepMind利用其最新版本的AlphaFold系統,發現幾種與新冠病毒(SARS-CoV-2)相關的蛋白質的結構預測,並在今天對所有人公開。他們表示,這些蛋白質結構還尚未被專家研究,希望能夠對抗疫科研作出貢獻。
  • AlphaFold抗疫,DeepMind公布六種新冠病毒蛋白質結構預測結果
    在昨天發表的博客文章中,DeepMind 表示,他們用 AlohaFold 生成了六種可能與新冠病毒有關的蛋白質結構預測結果,而且已經開放下載。這一結果可能對新冠病毒疫苗研發等工作起到推動作用。DeepMind 開放的新冠病毒蛋白質結構預測結果下載連結:https://storage.googleapis.com/deepmind-com-v3-datasets/alphafold-covid19/structures_4_3_2020.zip為什麼要用深度學習預測新冠病毒蛋白結構?