AlphaGo Zero:筆記與虛擬碼

轉載發表於2017-11-02
近日,Google DeepMind 在 Nature 上發表了一篇論文,介紹了這家世界頂級人工智慧機構在計算機圍棋方面的最新研究成果 AlphaGo Zero(參閱機器之心文章《無需人類知識,DeepMind 新一代圍棋程式 AlphaGo Zero 再次登上 Nature》)。這個在學習過程中沒有使用任何人類知識的人工智慧程式可以輕鬆地以 100 比 0 的成績擊敗去年 3 月戰勝了李世乭的 AlphaGo 版本。AlphaGo Zero 論文釋出之後,阿爾伯塔大學 Yuxi Li 博士對該程式的工作原理進行了分析,並使用虛擬碼的方式對其訓練過程進行了描述。原文連結請參見https://pan.baidu.com/s/1jI481xW

 

1 引言

 

2016 年 3 月,AlphaGo(Silver et al., 2016)擊敗了帶有 18 個國際冠軍頭銜的人類頂級圍棋手,造就了人工智慧領域的一大里程碑。AlphaGo Zero(Silver et al., 2017)則實現了更進一步的提升,在不使用人類知識的情況下學習到了一個超人水平的計算機圍棋程式。

AlphaGo(Silver et al., 2016; 2017)立足於深度學習、強化學習(RL)和蒙特卡洛樹搜尋(MCTS)。這一波深度強化學習浪潮起始於深度 Q 學習(Mnih et al., 2015);全面概述請參閱 Li (2017) https://arxiv.org/abs/1701.07274。

 

Sutton 和 Barto (2017) 對 AlphaGo 進行了詳細且直觀的描述。關於 AlphaGo 和 AlphaGo Zero 的介紹參閱 DeepMind 的官方部落格:https://deepmind.com/research/alphago/ 和 https://deepmind.com/blog/alphago-zero-learning-scratch/。強化學習綜述可參閱 Littman (2015)。

 

2 虛擬碼

 

我們提供了一個用於訓練 AlphaGo Zero 的簡要的概念性的虛擬碼,有助於你更輕鬆地理解 AlphaGo Zero 的原理;參見後文演算法 1。詳細情況請參閱原論文(Silver et al., 2017)。

 

AlphaGo Zero 可以被理解成是一種近似策略迭代(approximation policy iteration),並在其訓練迴圈中整合了 MCTS 以改進策略和評估策略。MCTS 可以被看作是一種策略改進運算元(policy improvement operator),可以輸出比神經網路的原始概率更強的走子概率。使用搜尋的自我對弈可以被看作是一種策略評估運算元(policy evaluation operator)。它使用了 MCTS 來選擇走子,並將對弈贏家看作是價值函式的樣本。然後這個策略迭代過程會更新神經網路的權重,從而將走子的概率和價值與提升後的搜尋概率和自我對弈贏家更緊密地匹配起來,然後再在下一次迭代中使用更新後的神經網路權重執行自我對弈,以使其搜尋更加強大。

 

與 AlphaGo 相比,AlphaGo Zero 的特性有:

 

1. 它是從隨機對弈學習的,使用了自我對弈強化學習,沒有使用人類資料或監督;

2. 它使用了棋盤上的黑白子作為輸入,而沒有使用任何人類參與的特徵工程;

3. 它使用了單個神經網路來同時表徵策略和價值,而沒使用單獨的策略網路和價值網路;

4. 它的局面評估使用了神經網路,MCTS 使用了走子取樣,而沒有執行蒙特卡洛 rollout。

 

AlphaGo Zero 使用了神經網路領域近年來的多種成就:殘差卷積神經網路(ResNet)、批規範化(batch normalization)和非線性整流函式(rectifier nonlinearities)。

 

AlphaGo Zero 的自我對弈訓練流程中有三個主要部門以非同步的方式並行執行:

 

1. 根據近期的自我對弈資料持續地優化神經網路的權重;

2. 持續地評估棋手;

3. 使用最強的棋手來生成新的自我對弈資料。

 

當 AlphaGo Zero 與對手下棋時,MCTS 會搜尋當前的狀態,根據訓練後的神經網路權重生成走子概率,然後選擇一種走子方式。

 

3 討論

 

AlphaGo Zero 是一種強化學習演算法。AlphaGo Zero 既不是監督學習,也不是無監督學習。對弈分數是獎勵訊號,而不是監督標籤。對損失函式 l 的優化是監督學習。但是,它會在策略迭代的單次迭代中執行策略評估和策略改進。

 

AlphaGo Zero 不僅是一種啟發式搜尋演算法。AlphaGo Zero 更是一種策略迭代過程,其中啟發式搜尋演算法(尤其是 MCTS)發揮了關鍵性的作用,但這個過程處於強化學習策略迭代的方案之中,如演算法 1 中的虛擬碼所示。MCTS 可以被看作是一種策略改進運算元。

 

AlphaGo 達到了超人類的水平。也許可以確定職業棋手已經開發出了一些有效的策略。但是,AlphaGo 並不需要模仿職業棋手的下法。因此它也不需要正確預測他們的走子。

AlphaGo Zero 的輸入包括棋盤局面、歷史記錄和要下的顏色的原始棋盤表示,是以 19×19 的影像形式提供的;遊戲規則;一個對弈評分函式;在旋轉和翻轉時的遊戲規則不變性以及顏色轉換情況下的不變性(除了貼目情況)。另外的關鍵輸入是堅實的研究和開發經驗。

 

AlphaGo Zero 使用了 64 個 GPU 工作站(每一個都有多個 GPU)和 19 個 CPU 引數伺服器(每一個都有多個 CPU)進行訓練,使用了 4 個 TPU 進行比賽時的執行。

 

AlphaGo 的訓練需要巨量資料,所以它仍然是一個大資料問題。但是,因為計算機圍棋有一個完美的模型或精確的遊戲規則,這些資料就可以通過自我對弈生成。

 

由於計算機圍棋存在完美模型或精確遊戲規則,所以 AlphaGo 演算法有侷限性。比如在醫療健康、機器人和自動駕駛等問題上,通常難以收集到大量資料,得到足夠接近甚至完美的模型就更難甚至完全不可能了。因此,我們不能直接將 AlphaGo 演算法應用到這些應用上。

 

另一方面,AlphaGo 演算法,尤其是其底層的技術(即深度學習、強化學習和蒙特卡洛樹搜尋),則有很多應用。Silver et al. (2016) 和 Silver et al. (2017) 推薦了以下應用:通用的遊戲問題(尤其是視訊遊戲)、經典的規劃問題、僅觀察到部分資訊的規劃問題、排程問題、約束滿足問題、機器人、工業控制和線上推薦系統。AlphaGo Zero 部落格還提到了以下結構化問題:蛋白質摺疊、降低能耗和搜尋革命性的新材料。參閱 Li (2017) 瞭解更多 AlphaGo 演算法的應用和底層技術(尤其是深度強化學習)。

 

AlphaGo 已經取得了驚人的進展併為人工智慧建立了一個里程碑。但是,我們離實現通用人工智慧(AGI)的目標仍然相距甚遠。AlphaGo Zero:筆記與虛擬碼

參考文獻

 

Li, Y. (2017). Deep Reinforcement Learning: An Overview. ArXiv e-prints.

Littman, M. L. (2015). Reinforcement learning improves behaviour from evaluative feedback. Nature, 521:445–451.

Mnih, V., Kavukcuoglu, K., Silver, D., Rusu, A. A., Veness, J., Bellemare, M. G., Graves, A., Riedmiller, M., Fidjeland, A. K., Ostrovski, G., Petersen, S., Beattie, C., Sadik, A., Antonoglou,I., King, H., Kumaran, D., Wierstra, D., Legg, S., and Hassabis, D. (2015). Human-level control through deep reinforcement learning. Nature, 518(7540):529–533.

Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G., Schrittwieser, J., Antonoglou, I., Panneershelvam, V., Lanctot, M., et al. (2016). Mastering the game of go with deep neural networks and tree search. Nature, 529(7587):484–489.

Silver, D., Schrittwieser, J., Simonyan, K., Antonoglou, I., Huang, A., Guez, A., Hubert, T., Baker, L., Lai, M., Bolton, A., Chen, Y., Lillicrap, T., Hui, F., Sifre, L., van den Driessche, G., Graepel, T., and Hassabis, D. (2017). Mastering the game of go without human knowledge. Nature, 550:354–359.

Sutton, R. S. and Barto, A. G. (2017). Reinforcement Learning: An Introduction (2nd Edition, in preparation). MIT Press.

 

演算法 1:AlphaGo Zero 訓練過程的虛擬碼,基於 Silver et al. (2017)

AlphaGo Zero 虛擬碼原版:

AlphaGo Zero:筆記與虛擬碼

虛擬碼中文版:

AlphaGo Zero:筆記與虛擬碼


相關文章