與 AI 博弈:從 AlphaGo 到 MuZero(四)
- AlphaGo 論文地址:https://www.nature.com/articles/nature16961
- AlphaGo Zero 論文地址:https://www.nature.com/articles/nature24270
- AlphaZero 論文地址:https://arxiv.org/abs/1712.01815
- MuZero 論文地址:https://arxiv.org/abs/1911.08265
DeepMind 官網(wǎng)介紹:https://deepmind.com/research/case-studies/alphago-the-story-so-far
5. MuZero

MuZero 在Deepmind 的 2019 年的初步論文中首次介紹,通過學(xué)習(xí)一個(gè)僅關(guān)注規(guī)劃環(huán)境中最重要方面的模型來解決這個(gè)問題。通過將此模型與 AlphaZero 強(qiáng)大的前向樹搜索相結(jié)合,MuZero 在 Atari 測試中得到了新的最先進(jìn)的結(jié)果,同時(shí)在圍棋、國際象棋和將棋等經(jīng)典規(guī)劃挑戰(zhàn)中的表現(xiàn)與 AlphaZero 相媲美。MuZero 展示了強(qiáng)化學(xué)習(xí)算法能力的重大飛躍。

5.1 Generalising to unknown models
計(jì)劃能力是人類智能的重要組成部分,使人類能夠解決問題并對未來做出決定。例如,如果我們看到烏云正在形成,我們可能會(huì)預(yù)測會(huì)下雨,并決定在冒險(xiǎn)之前帶上一把雨傘。人類可以快速學(xué)習(xí)這種能力,并且可以推廣到新的場景,這是作者希望算法具有的特性。
研究人員試圖通過使用兩種主要方法來應(yīng)對人工智能中的這一重大挑戰(zhàn):前向搜索或基于模型的規(guī)劃(model-based planning)。使用前向搜索的系統(tǒng)(例如 AlphaZero)在跳棋、國際象棋和撲克等經(jīng)典游戲中取得了顯著的成功,但依賴于了解其環(huán)境動(dòng)態(tài)的知識,例如游戲規(guī)則或精確的模擬器。這使得很難將它們應(yīng)用于混亂的現(xiàn)實(shí)世界問題,這些問題通常很復(fù)雜,很難提煉成簡單的規(guī)則。
基于模型的系統(tǒng)旨在通過學(xué)習(xí)環(huán)境動(dòng)態(tài)的準(zhǔn)確模型,然后使用它進(jìn)行規(guī)劃來解決這個(gè)問題。然而,對環(huán)境的各個(gè)方面進(jìn)行建模的復(fù)雜性意味著這些算法無法在視覺豐富的領(lǐng)域(例如 Atari)中競爭。到目前為止,Atari 上的最佳結(jié)果來自無模型系統(tǒng),例如 DQN、R2D2 和 Agent57。顧名思義,無模型算法(model-free algorithms)不使用學(xué)習(xí)模型,而是估計(jì)下一步要采取的最佳行動(dòng)。
MuZero 使用不同的方法來克服以前方法的局限性。MuZero 沒有嘗試對整個(gè)環(huán)境進(jìn)行建模,而是對代理決策過程中重要的方面進(jìn)行建模。畢竟,知道雨傘避免淋濕比了解空氣中雨滴形狀更有意義。
具體來說,MuZero 模擬了對規(guī)劃至關(guān)重要的三個(gè)環(huán)境因素:
- The value: how good is the current position?
- The policy: which action is the best to take?
- The reward: how good was the last action?
這些都是基于深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的, MuZero 了解當(dāng)它采取某種行動(dòng)時(shí)會(huì)發(fā)生什么并做出對應(yīng)的計(jì)劃。
A. MuZero 如何讓模型學(xué)會(huì)“計(jì)劃”?
下圖說明如何使用蒙特卡洛樹搜索與 MuZero 神經(jīng)網(wǎng)絡(luò)進(jìn)行規(guī)劃。從游戲中的當(dāng)前位置(頂部的示意圖圍棋棋盤)開始,MuZero 使用表示函數(shù) () 從觀察映射到神經(jīng)網(wǎng)絡(luò)使用的 Embedding ?()。使用動(dòng)態(tài)函數(shù) () 和預(yù)測函數(shù) (),MuZero 可以考慮未來可能的動(dòng)作序列 (),并選擇最佳動(dòng)作。
給定前一個(gè)狀態(tài) 和一個(gè)候選動(dòng)作 ,動(dòng)態(tài)函數(shù) 得到一個(gè)即時(shí)獎(jiǎng)勵(lì)值 和一個(gè)新的狀態(tài) ,輸入 到預(yù)測函數(shù) 中得到策略 和價(jià)值函數(shù) ,而最初的狀態(tài) 表示是通過預(yù)先訓(xùn)練的表示函數(shù) (例如:圍棋和 Atari )進(jìn)行 embedding。

B. MuZero 如何對未知環(huán)境做出相應(yīng)動(dòng)作?
MuZero 使用它在與環(huán)境交互時(shí)收集的經(jīng)驗(yàn)來訓(xùn)練其神經(jīng)網(wǎng)絡(luò)。這種經(jīng)驗(yàn)包括來自環(huán)境的觀察和獎(jiǎng)勵(lì),以及在決定最佳行動(dòng)時(shí)執(zhí)行的搜索結(jié)果。
在每個(gè)時(shí)間步 執(zhí)行蒙特卡洛樹搜索。搜索策略網(wǎng)絡(luò) 采樣一個(gè)動(dòng)作 (與從根節(jié)點(diǎn)對每個(gè)動(dòng)作的訪問次數(shù)成正比),環(huán)境接收到動(dòng)作并生成一個(gè)新的觀察 和獎(jiǎng)勵(lì) 。結(jié)束時(shí)所有軌跡數(shù)據(jù)均被存儲(chǔ)到緩沖區(qū)。

C. MuZero 如何訓(xùn)練網(wǎng)絡(luò)?
在訓(xùn)練期間,模型與收集的經(jīng)驗(yàn)一起展開,在每一步預(yù)測先前保存的信息:價(jià)值函數(shù) 預(yù)測觀察到的獎(jiǎng)勵(lì)的總和 (),策略估計(jì) () 預(yù)測先前的搜索結(jié)果 (π),獎(jiǎng)勵(lì)估計(jì) 預(yù)測最后觀察到的獎(jiǎng)勵(lì) ()。
將軌跡從緩沖區(qū)采樣。對于初始步驟,表示函數(shù) 接收來自所選軌跡的過去觀察值 作為輸入。該模型隨后被循環(huán)展開 步。在每一步 ,動(dòng)態(tài)函數(shù) 接收來自上一步的狀態(tài) 和實(shí)際動(dòng)作 作為輸入。表示函數(shù)、動(dòng)態(tài)函數(shù)和預(yù)測函數(shù)的參數(shù)通過時(shí)間反向傳播進(jìn)行端到端聯(lián)合訓(xùn)練,以預(yù)測三個(gè)量:策略網(wǎng)絡(luò) π 、價(jià)值網(wǎng)絡(luò) 和獎(jiǎng)勵(lì) ,其中 是 sample return:最終獎(jiǎng)勵(lì)(棋盤游戲)或 步回報(bào)(Atari)。

MuZero 可以重復(fù)使用其學(xué)習(xí)模型來改進(jìn)其規(guī)劃,而不是從環(huán)境中收集新數(shù)據(jù)。例如,在 Atari 的測試中,這個(gè)變體 - 稱為 MuZero Reanalyze - 在 90% 的時(shí)間里使用學(xué)習(xí)模型來重新規(guī)劃過去幾個(gè)場景應(yīng)該做的事情。
5.2 MuZero 算法
在每個(gè)時(shí)間步 ,對于每個(gè) 時(shí)間步,以過去的觀察 和未來的動(dòng)作 為條件,由參數(shù)為 θ 的模型 μθ 進(jìn)行預(yù)測。該模型預(yù)測三個(gè)未來量:策略 ,價(jià)值函數(shù) ,獎(jiǎng)勵(lì) ,其中 是真實(shí)觀察到的獎(jiǎng)勵(lì),π 是用于選擇實(shí)際行動(dòng)的策略,γ 是環(huán)境的折損函數(shù)。
在每個(gè)時(shí)間步 (為簡單起見,下標(biāo) 被忽略),模型由一個(gè)表示函數(shù)、一個(gè)動(dòng)態(tài)函數(shù)和一個(gè)預(yù)測函數(shù)的組合來表示。動(dòng)態(tài)函數(shù) θ,是一個(gè)循環(huán)過程,在每個(gè)假設(shè)的步驟 ,計(jì)算一個(gè)即時(shí)獎(jiǎng)勵(lì) 和一個(gè)內(nèi)部狀態(tài) 。它反映了一個(gè) MDP 模型的結(jié)構(gòu),該模型計(jì)算給定狀態(tài)和動(dòng)作的預(yù)期獎(jiǎng)勵(lì)和狀態(tài)轉(zhuǎn)換。然而,與基于模型的 RL 的傳統(tǒng)方法不同,這個(gè)內(nèi)部狀態(tài) 沒有附加環(huán)境狀態(tài)的語義(它只是整個(gè)模型的隱藏狀態(tài),其唯一目的是準(zhǔn)確預(yù)測相關(guān)的、未來的值:策略、價(jià)值和獎(jiǎng)勵(lì))。在 MuZero 中,動(dòng)態(tài)函數(shù)是以確定的方式表示的;隨機(jī)轉(zhuǎn)換的擴(kuò)展是后續(xù)進(jìn)一步工作。策略和價(jià)值函數(shù)是通過預(yù)測函數(shù) θ 從內(nèi)部狀態(tài) 計(jì)算出來的,類似于 AlphaZero 的聯(lián)合策略和價(jià)值網(wǎng)絡(luò)。根 狀態(tài) 使用一個(gè)對過去觀察結(jié)果進(jìn)行 embedding 的表示函數(shù)來初始化,θ;同樣,除了對未來預(yù)測的支持外,這沒有特殊的語義。
給定這樣一個(gè)模型,就有可能在給定過去的觀察值 的情況下,對假設(shè)的未來軌跡進(jìn)行搜索 。例如,一個(gè)樸素的搜索可以簡單地選擇使價(jià)值函數(shù)最大化的 步動(dòng)作序列。更一般地說,可以將任何 MDP 規(guī)劃算法應(yīng)用于動(dòng)態(tài)函數(shù)所引起的內(nèi)部獎(jiǎng)勵(lì)和狀態(tài)空間。具體來說,作者使用一種類似于 AlphaZero 搜索的 MCTS 算法,它的生成允許單一代理域(single agent domains)和中間獎(jiǎng)勵(lì)。在每個(gè)內(nèi)部節(jié)點(diǎn),它利用當(dāng)前模型參數(shù) θ 產(chǎn)生的策略、價(jià)值和獎(jiǎng)勵(lì)估計(jì)。MCTS 算法輸出一個(gè)推薦的策略 π 和估計(jì)的價(jià)值 ν。然后選擇一個(gè)行動(dòng) π
模型的所有參數(shù)都經(jīng)過聯(lián)合訓(xùn)練,以準(zhǔn)確地將每個(gè)假設(shè)步驟 的策略、價(jià)值和獎(jiǎng)勵(lì)與經(jīng)過 個(gè)實(shí)際時(shí)間步驟后觀察到的相應(yīng)目標(biāo)值相匹配。與 AlphaZero 類似,改進(jìn)的策略目標(biāo)是由 MCTS 搜索生成的;第一個(gè)目標(biāo)是最小化預(yù)測策略 和搜索策略 π 之間的誤差。與 AlphaZero 一樣,改進(jìn)的價(jià)值目標(biāo)是通過玩游戲或 MDP 生成的。然而,與 AlphaZero 不同,作者通過從搜索值引導(dǎo) 步到未來以允許具有折損和中間獎(jiǎng)勵(lì)的長時(shí)間跨度, .棋盤游戲中的最終結(jié)果 {敗局,平局,贏局} 被視為在劇集最后一步發(fā)生的獎(jiǎng)勵(lì) 。具體來說,第二個(gè)目標(biāo)是最小化預(yù)測價(jià)值 和價(jià)值目標(biāo) 之間的誤差。獎(jiǎng)勵(lì)目標(biāo)只是觀察到的獎(jiǎng)勵(lì);因此,第三個(gè)目標(biāo)是最小化預(yù)測獎(jiǎng)勵(lì) 和觀察到的獎(jiǎng)勵(lì) 之間的誤差。最后,還添加了一個(gè) L2 正則化項(xiàng),復(fù)合損失為:
其中 、 和 分別是獎(jiǎng)勵(lì)、價(jià)值和策略的損失函數(shù)。
5.3 MuZero 性能
作者選擇了四個(gè)不同的域來測試 MuZeros 的功能。圍棋、國際象棋和將棋用于評估其在具有挑戰(zhàn)性的規(guī)劃問題上的表現(xiàn),并且作者使用 Atari 作為更復(fù)雜的視覺問題的基準(zhǔn)。在所有情況下,MuZero 均為強(qiáng)化學(xué)習(xí)算法的 SOTA,優(yōu)于 Atari 上的所有先前算法,并在圍棋、國際象棋和將棋上與 AlphaZero 的超人性能相媲美。
每次訓(xùn)練運(yùn)行使用 200M 或 20B 幀在 Atari 上的性能。MuZero 在這兩種設(shè)置中都達(dá)到了 SOTA。所有分?jǐn)?shù)都根據(jù)測試人員的表現(xiàn)進(jìn)行了標(biāo)準(zhǔn)化 。
作者還更詳細(xì)地測試了 MuZero 使用其學(xué)習(xí)模型進(jìn)行規(guī)劃的能力。作者從圍棋中經(jīng)典的精確規(guī)劃挑戰(zhàn)開始,一步棋就意味著輸贏。為了確認(rèn)更多的計(jì)劃應(yīng)該帶來更好的結(jié)果的直覺,作者測量了一個(gè)完全訓(xùn)練的 MuZero 版本在有更多的時(shí)間來計(jì)劃每個(gè)動(dòng)作時(shí)可以變得更強(qiáng)大(見下圖左圖)。結(jié)果表明,隨著作者將每步走的時(shí)間從 0.1 秒增加到 50 秒,增加了 1000 多 Elo(衡量玩家相對技能的指標(biāo))。這類似于強(qiáng)大的業(yè)余選手和最強(qiáng)的職業(yè)選手之間的區(qū)別。
左圖:隨著計(jì)劃每一步棋的時(shí)間增加,圍棋的實(shí)力顯著增加。注意 MuZero 的縮放比例與 AlphaZero 的縮放比例幾乎完美匹配,AlphaZero 可以訪問完美的模擬器。右圖:Atari 游戲 Ms Pac-Man 中的得分也隨著訓(xùn)練期間每一步的計(jì)劃數(shù)量而增加。每個(gè)圖都顯示了不同的訓(xùn)練運(yùn)行,其中 MuZero 被允許考慮每次移動(dòng)的不同數(shù)量的模擬。
有趣的是,當(dāng) MuZero 每次移動(dòng)只允許考慮六或七個(gè)模擬時(shí)——這個(gè)數(shù)字太小而無法涵蓋 Ms Pac-Man 中所有可用的動(dòng)作——它仍然取得了良好的性能。這表明 MuZero 能夠在動(dòng)作和情況之間進(jìn)行概括,并且不需要窮舉搜索所有可能性來有效學(xué)習(xí)。
參考資料
- http://tromp.github.io/go.html
- https://towardsdatascience.com/the-upper-confidence-bound-ucb-bandit-algorithm-c05c2bf4c13f
- https://en.wikipedia.org/wiki/AlphaGo
- https://deepmind.com/blog/article/alphago-zero-starting-scratch
- https://towardsdatascience.com/the-evolution-of-alphago-to-muzero-c2c37306bf9
