近日,Google DeepMind 在 Nature 上發(fā)表了一篇論文,介紹了這家世界頂級人工智能機構在計算機圍棋方面的最新研究成果 AlphaGo Zero(參閱機器之心文章《無需人類知識,DeepMind 新一代圍棋程序 AlphaGo Zero 再次登上 Nature》)。這個在學習過程中沒有使用任何人類知識的人工智能程序可以輕松地以 100 比 0 的成績擊敗去年 3 月戰(zhàn)勝了李世乭的 AlphaGo 版本。AlphaGo Zero 論文發(fā)布之后,阿爾伯塔大學 Yuxi Li 博士對該程序的工作原理進行了分析,并使用偽代碼的方式對其訓練過程進行了描述。原文鏈接請參見https://pan.baidu.com/s/1jI481xW。
1 引言
2016 年 3 月,AlphaGo(Silver et al., 2016)擊敗了帶有 18 個國際冠軍頭銜的人類頂級圍棋手,造就了人工智能領域的一大里程碑。AlphaGo Zero(Silver et al., 2017)則實現(xiàn)了更進一步的提升,在不使用人類知識的情況下學習到了一個超人水平的計算機圍棋程序。 AlphaGo(Silver et al., 2016; 2017)立足于深度學習、強化學習(RL)和蒙特卡洛樹搜索(MCTS)。這一波深度強化學習浪潮起始于深度 Q 學習(Mnih et al., 2015);全面概述請參閱 Li (2017) https:///abs/1701.07274。
Sutton 和 Barto (2017) 對 AlphaGo 進行了詳細且直觀的描述。關于 AlphaGo 和 AlphaGo Zero 的介紹參閱 DeepMind 的官方博客:https:///research/alphago/ 和 https:///blog/alphago-zero-learning-scratch/。強化學習綜述可參閱 Littman (2015)。
2 偽代碼
我們提供了一個用于訓練 AlphaGo Zero 的簡要的概念性的偽代碼,有助于你更輕松地理解 AlphaGo Zero 的原理;參見后文算法 1。詳細情況請參閱原論文(Silver et al., 2017)。
AlphaGo Zero 可以被理解成是一種近似策略迭代(approximation policy iteration),并在其訓練循環(huán)中集成了 MCTS 以改進策略和評估策略。MCTS 可以被看作是一種策略改進算子(policy improvement operator),可以輸出比神經網絡的原始概率更強的走子概率。使用搜索的自我對弈可以被看作是一種策略評估算子(policy evaluation operator)。它使用了 MCTS 來選擇走子,并將對弈贏家看作是價值函數(shù)的樣本。然后這個策略迭代過程會更新神經網絡的權重,從而將走子的概率和價值與提升后的搜索概率和自我對弈贏家更緊密地匹配起來,然后再在下一次迭代中使用更新后的神經網絡權重執(zhí)行自我對弈,以使其搜索更加強大。
與 AlphaGo 相比,AlphaGo Zero 的特性有:
1. 它是從隨機對弈學習的,使用了自我對弈強化學習,沒有使用人類數(shù)據(jù)或監(jiān)督; 2. 它使用了棋盤上的黑白子作為輸入,而沒有使用任何人類參與的特征工程; 3. 它使用了單個神經網絡來同時表征策略和價值,而沒使用單獨的策略網絡和價值網絡; 4. 它的局面評估使用了神經網絡,MCTS 使用了走子采樣,而沒有執(zhí)行蒙特卡洛 rollout。
AlphaGo Zero 使用了神經網絡領域近年來的多種成就:殘差卷積神經網絡(ResNet)、批規(guī)范化(batch normalization)和非線性整流函數(shù)(rectifier nonlinearities)。
AlphaGo Zero 的自我對弈訓練流程中有三個主要部門以異步的方式并行執(zhí)行:
1. 根據(jù)近期的自我對弈數(shù)據(jù)持續(xù)地優(yōu)化神經網絡的權重; 2. 持續(xù)地評估棋手; 3. 使用最強的棋手來生成新的自我對弈數(shù)據(jù)。
當 AlphaGo Zero 與對手下棋時,MCTS 會搜索當前的狀態(tài),根據(jù)訓練后的神經網絡權重生成走子概率,然后選擇一種走子方式。
3 討論
AlphaGo Zero 是一種強化學習算法。AlphaGo Zero 既不是監(jiān)督學習,也不是無監(jiān)督學習。對弈分數(shù)是獎勵信號,而不是監(jiān)督標簽。對損失函數(shù) l 的優(yōu)化是監(jiān)督學習。但是,它會在策略迭代的單次迭代中執(zhí)行策略評估和策略改進。
AlphaGo Zero 不僅是一種啟發(fā)式搜索算法。AlphaGo Zero 更是一種策略迭代過程,其中啟發(fā)式搜索算法(尤其是 MCTS)發(fā)揮了關鍵性的作用,但這個過程處于強化學習策略迭代的方案之中,如算法 1 中的偽代碼所示。MCTS 可以被看作是一種策略改進算子。
AlphaGo 達到了超人類的水平。也許可以確定職業(yè)棋手已經開發(fā)出了一些有效的策略。但是,AlphaGo 并不需要模仿職業(yè)棋手的下法。因此它也不需要正確預測他們的走子。 AlphaGo Zero 的輸入包括棋盤局面、歷史記錄和要下的顏色的原始棋盤表示,是以 19×19 的圖像形式提供的;游戲規(guī)則;一個對弈評分函數(shù);在旋轉和翻轉時的游戲規(guī)則不變性以及顏色轉換情況下的不變性(除了貼目情況)。另外的關鍵輸入是堅實的研究和開發(fā)經驗。
AlphaGo Zero 使用了 64 個 GPU 工作站(每一個都有多個 GPU)和 19 個 CPU 參數(shù)服務器(每一個都有多個 CPU)進行訓練,使用了 4 個 TPU 進行比賽時的執(zhí)行。
AlphaGo 的訓練需要巨量數(shù)據(jù),所以它仍然是一個大數(shù)據(jù)問題。但是,因為計算機圍棋有一個完美的模型或精確的游戲規(guī)則,這些數(shù)據(jù)就可以通過自我對弈生成。
由于計算機圍棋存在完美模型或精確游戲規(guī)則,所以 AlphaGo 算法有局限性。比如在醫(yī)療健康、機器人和自動駕駛等問題上,通常難以收集到大量數(shù)據(jù),得到足夠接近甚至完美的模型就更難甚至完全不可能了。因此,我們不能直接將 AlphaGo 算法應用到這些應用上。
另一方面,AlphaGo 算法,尤其是其底層的技術(即深度學習、強化學習和蒙特卡洛樹搜索),則有很多應用。Silver et al. (2016) 和 Silver et al. (2017) 推薦了以下應用:通用的游戲問題(尤其是視頻游戲)、經典的規(guī)劃問題、僅觀察到部分信息的規(guī)劃問題、調度問題、約束滿足問題、機器人、工業(yè)控制和在線推薦系統(tǒng)。AlphaGo Zero 博客還提到了以下結構化問題:蛋白質折疊、降低能耗和搜尋革命性的新材料。參閱 Li (2017) 了解更多 AlphaGo 算法的應用和底層技術(尤其是深度強化學習)。
AlphaGo 已經取得了驚人的進展并為人工智能建立了一個里程碑。但是,我們離實現(xiàn)通用人工智能(AGI)的目標仍然相距甚遠。 參考文獻
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 偽代碼原版:
偽代碼中文版:
|
|
|