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