Topic: Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model
Editor: George Wu
Resources: Nature paper DeepMind blog author blog Video pseudocode Github
Label: DeepMind, AlphaZero, Reinforcement Learning

大意
在2019年底DeepMind開發出新的算法MuZero並在今年十二月正式發表在Nature期刊. 在前代AlphaGo Zero及AlphaZero已經能透過自我對弈強化學習而擊敗國際象棋, 日本將棋, 圍棋等頂尖AI, 而MuZero更是能學習建立用於解釋目前環境系統的模型, 以及利用這個模型來進行最好的決策. 簡單的比喻就是不需要輸入圍棋的規則以及Domain knowledge, MuZero本身就會透過基於tree-based search及deep network自行學習圍棋的規則是甚麼,並且找到最佳的解法. 在paper中MuZero展示了在將棋, 西洋棋以及圍棋中跟AlphaZero一樣超越人類表現的結果, 且MuZero也能在Atari上57種遊戲達到目前為止最優的結果. 這代表強化學習算法能學習環境模型又能成功使用它找到最佳解法, 是通用人工智能算法上的重大進步.
甚麼是MuZero?
DeepMind在2016年開發出結合Deep learning及MCTS的AlphaGo並擊敗圍棋高手. 之後也在2018年發表了AlphaGo Zero的Nature paper以及加強版AlphaZero, 能透過自我對弈強化學習而擊敗國際象棋, 日本將棋, AlphaGo Zero等頂尖AI. 而在2019年底DeepMind開發出新的算法MuZero並在今年十二月正式發表在Nature期刊. 簡單的描述這系列的進展就是, AlphaGo時需要以人類圍棋棋譜進行訓練, 也就是需要Human knowledge以及描述game的規則. AlphaGo Zero則不需要人類棋譜訓練而是從零開始靠自我對弈學習策略. 而到了AlphaZero從零開始經過幾個小時之內的訓練就輾壓了將棋, 西洋棋的最強AI- Elmo, Stockfish,以及戰勝圍棋AlphaGo Zero. 而最新的MuZero更可以在完全不知道遊戲規則之下, 經過訓練而學習到遊戲該怎麼玩及怎麼進行規劃. 也因為現實系統通常很複雜也很難以簡單的規則去定義. 套句他們的話說, 你了解在雨天帶把雨傘可以讓你身上不會淋濕, 但你不需要了解雨滴的動力學. 也因為預設不需要知道遊戲規則也代表MuZero適用在除棋類外包括Atari上的57種遊戲.

MuZero和前代AlphaGo Zero及AlphaZero的比較
在過去的研究中要加強planning泛化能力, 也就是針對未知模型也能很快做出應對的能力可使用model-based model例如AlphaZero, LQR. 但像Atari上的遊戲視覺狀態空間很複雜或規則很抽象, Model-free 方法譬如DQN, R2D2及Agent57更適合. MuZero則採用不同的方式克服這種侷限性不對環境進行建模, 而是只針對制定策略相關的重要概念進行建模. MuZero結合了Monte CarloTree Search (MCTS)以及基於ResNet深度網路的學習模式, 在不了解遊戲規則之下學習到與制定策略相關的獎勵(Reward), 行動選擇策略(Action selection policy)以及價值函數(Value function). MuZero和前代AlphaGo Zero, AlphaZero相比會發現AlphaGo Zero/AlphaZero還是基於可對環境完美建模的前提以及固定的遊戲規則下, 以MCTS執行前向規畫搜尋最佳決策, 但MuZero是將真實環境中的observation或state映射的abstract state space中學習dynamics model(policy prediction及value prediction). 在這方面和Value Prediction Network類似只是多了policy prediction. 而且AlphaGo Zero及AlphaZero有根據game所設計的一些人工features但MuZero是沒有的.

MuZero中的蒙地卡羅搜尋樹
MuZero的蒙地卡羅搜尋樹(MCTS)包含三個基本操作(Representation, Prediction, 及Dynamics). 在MuZero裡首先會將當前observation(可能是圍棋的局面或Atari遊戲畫面)藉由Representation Network映射成hidden state(s), 這部分相當於蒙地卡羅搜尋樹(MCTS)的根部. 而每個hidden state 會進行Prediction藉由Value network跟policy network進行value(目前所在狀態的優劣)及policy(採取行動或策略的優劣)的預測. 而在Dynamics中由上一個state跟目前的action則藉由Reward network計算出下一個hidden state及應進行的action. 藉由這樣的步驟在蒙地卡羅搜尋樹上的各節點進行計算simulation以及進行樹擴展(expansion)及反饋(backpropagation).

MuZero如何運作及訓練
前面提到MuZero中藉由MCTS中的Representation, Prediction及Dynamics學習進行規劃. 而在棋局或遊戲中的每個當前狀態state都會執行一次MCTS, 然後由下一步action得到下一步observation及reward,並將這樣的結果序列儲存在記憶體replay buffer中. 而在MuZero的訓練過程則由replay buffer取得一個序列, 然後由某個observation展開k步循環, 在MCTS中再預測到策略policy, 價值value及獎勵reward.
