一、簡介

有些人會有如下質疑“Alphago都用了蒙特卡洛搜尋樹了,這變成了一部分搜尋問題了並不是人工智慧演算法了或者說不夠智慧了”,但我的拙見是人在思考問題的時候除了直覺、經驗判斷、邏輯推理之外也會去列舉、搜尋,所以我覺得演算法包含一部分搜尋並不能直接說該演算法這不夠智慧或者這不是智慧演算法了,我覺得更多的是要考慮該演算法在該類問題上如何去刻畫出人類的直覺、經驗判斷、邏輯推理等。

最近大家比較關心的圍棋人機大戰(Alphago vs 李世石)中,deep mind基於Nature2016文章的Alphago在5局制的比賽中已經取得了4-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與文章,從其最早的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問題的一種常見方法,其經典的公式如下:

1462876319-4350-bkAt7oIs2jfRExf6R9T95zlvRrIA

三、deep Q-Networks(DQN)

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

1462876319-1698-pfsGiaxqab50ykfLr2Q25iaNm3Ug

在總共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分散式結構簡要如下:

1462876319-7826-Yk5ibEK3skfHtdabeDPO0sG84qUQ
2. 2016發表ICLR文章《PRIORITIZEDEXPERIENCE REPLAY》,該文章指出了原DQN中經驗均勻取樣的問題,並從防過擬合、防區域性最優這些點上,設計了介於均勻取樣與純優先順序貪心之間的經驗取樣方法,提出的這個改進再次將DQN的模型效果提升了一個檔次。

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

1462876319-2316-iaLiaKUZ8qQUY4cB5xONNManS9gA
四、Alphago

訓練階段:

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

1462876319-1967-EQaJqUB1IG1zlFia5KAoOPA29eQA

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由上述兩部分以及所有模擬中s狀態下a的訪問次數共同影響得到。最後Alphago系統選擇s狀態下最優的action作為圍棋當前的move。