天天看點

深度學習之google deepmind的alphago AI人工智能算法技術演變曆程一、簡介二、Q-learning與Reinforcement learning三、deep Q-Networks(DQN)四、alphago

一、簡介

        最近大家比較關心的圍棋人機大戰(alphago vs 李世石)中,deep mind基于Nature2016文章的alphago在5局制的比賽中已經取得了3-1的成績提前鎖定了勝局。2016年google與facebook兩個大拿在圍棋領域基于深度學習都發表了文章,其中facebook文章如下:《BETTER COMPUTER GO PLAYER WITH NEURAL NET- WORKAND LONG-TERM PREDICTION》 ;Google文章如下:《Mastering the game of Go with deep neural networks and tree search》。這兩篇文章都是蒙特卡洛搜尋樹+DCNN,效果google的alphago優于facebook的方法,剛好借此機會将之前看到的deep mind該領域的文章捋了一下。

       google在alphago之前就已經發表了相當多這方面的demo(https://www.youtube.com/channel/UCP7jMXSY2xbc3KCAE0MHQ-A)與文章,從其最早的NIPS2013文章《Playing Atari with Deep ReinforcementLearning》到現在的Nature2016 《Mastering the game of Go with Deep Neural Networks & Tree Search》。deep mind在此期間做了很多紮實的研究工作,本文将進行簡單的描述。本文接下去會按如下幾點内容進行叙述:1.Q-learning 2. Reinforcement learning 3. deep Q-Networks 4. alphago

二、Q-learning與Reinforcement learning

        增強學習Reinforcement learning的場景大部分有一個共同的特點,那就是這些場景有序列決策或者控制的問題,對于目前的任何一個state不能明确的對不同的action給出一個事先well defined的score值。它大多應用于如下的領域:機器人控制,市場決策,工業控制等。

        Q-learning是用于解決Reinforcement learning問題的一種常見方法,其經典的公式如下:

深度學習之google deepmind的alphago AI人工智能算法技術演變曆程一、簡介二、Q-learning與Reinforcement learning三、deep Q-Networks(DQN)四、alphago

三、deep Q-Networks(DQN)

        2013發表NIPS文章《Playing Atari with Deep ReinforcementLearning》是deep mind公開的最早使用raw pixels作為輸入的,用于解決reinforcement learning的深度學習網絡DQN。在該文章中,作者在atari一系列的遊戲上做了各種算法的比較,如下圖所示:

深度學習之google deepmind的alphago AI人工智能算法技術演變曆程一、簡介二、Q-learning與Reinforcement learning三、deep Q-Networks(DQN)四、alphago

在總共7個遊戲中,有6個做到了算法中最好,其中還有3個做到了比人類專家還要好。該文章中提到的DQN有兩個特點:1. 用來更新參數的minibatch是是從replay memory(回放記憶)中采樣出來的,而不是僅僅的用目前一個片段或者session,這樣能使得模型收斂性更好,否則會很容易訓飛。2. value函數是一個多層網絡。

        在上述文章提出後,deep mind在該問題上不停的打磨,不斷的優化其工程與算法:

1. 2015發表ICML文章《MassivelyParallel Methods for Deep Reinforcement Learning》,該文章從工程上了做了4個方面的分布式:學習、決策、價值、經驗,第1個屬于學習,第2、3個屬于網絡方面,第4個偏存儲方面。DQN的全面分布式将DQN的學習時間成本與模型效果都提升了一個檔次。DQN分布式結構簡要如下:

深度學習之google deepmind的alphago AI人工智能算法技術演變曆程一、簡介二、Q-learning與Reinforcement learning三、deep Q-Networks(DQN)四、alphago

2. 2016發表ICLR文章《PRIORITIZEDEXPERIENCE REPLAY》,該文章指出了原DQN中經驗均勻采樣的問題,并從防過拟合、防局部最優這些點上,設計了介于均勻采樣與純優先級貪心之間的經驗采樣方法,提出的這個改進再次将DQN的模型效果提升了一個檔次。

3. 2016發表ICLR文章《PolicyDistillation》,該篇文章實際上是做了DQN的transfer learning的實驗,有很多思想與hinton的dark knowledge裡面的東西都很相似,其方法示意圖如下所示:

深度學習之google deepmind的alphago AI人工智能算法技術演變曆程一、簡介二、Q-learning與Reinforcement learning三、deep Q-Networks(DQN)四、alphago

四、alphago

訓練階段:

        alphago訓練如下圖a中展示了alphago相應的4個neural network,b中主要展示了policy network與value network及其輸出形式。

深度學習之google deepmind的alphago AI人工智能算法技術演變曆程一、簡介二、Q-learning與Reinforcement learning三、deep Q-Networks(DQN)四、alphago

1. policy network(14層,輸出棋盤每步move機率值),它首先采用supervisedlearning訓練方法在KGS資料集上達到了55.7%的專家moves預測準确率,然後由reinforcement learning訓練方法進行自我訓練(每一次訓練都在前幾次疊代完的模型中随機一個模型做決策),自我訓練的policy network在80%的情況下打敗了supervised learning訓練出來的policy network。

2. value network(15層,預測棋盤下一步move),該網絡由pair訓練資料做regressionloss回報更新得到。在KGS的資料集上,該訓練方法出現了過拟合的現象(訓練MSE0.19,測試MSE0.37),但若在reinforcement learning學出來的policy network基礎上産生出的自我訓練集裡進行采樣學習的話,就可以有效的避免該問題(訓練MSE0.226,測試MSE0.234)。

預測階段:

        在alphago系統模拟的時候,每一個action由如下三個因素決定:s狀态下a的通路次數,RL policy network for action value,SL policy networkfor prior probability;在alphago系統模拟的時候,每一個葉子節點價值由如下兩個因素決定:value network,rollout network;在alphago系統所有模拟都結束後,由上述兩點計算得到s狀态下a的value值。綜上RL與SL學習出來的兩個policy network共同決定了蒙特卡洛搜尋樹節點的選擇,value network與rollout network決定了模拟出來的葉子節點的價值,最終s狀态下a的value由上述兩部分共同影響得到。最後alphago系統選擇s狀态下最優的action作為圍棋目前的move。

繼續閱讀