1. 程式人生 > >《mastering the game of GO wtth deep neural networks and tree search》研究解讀

《mastering the game of GO wtth deep neural networks and tree search》研究解讀

   現在”人工智慧“如此火爆的一大直接原因便是deepmind做出的阿爾法狗打敗李世石,從那時開始電腦科學/人工智慧成為了吹逼的主流。記得當時還是在學校晚新聞的時候看到的李世石輸的訊息,這個新聞都是我給開啟的hhhhh,對當時場景的印象還是蠻深的。現在涵哥就帶大家追根溯源,看看把人工智慧推上吹逼大道的研究與技術到底是怎麼一回事。

  在研讀aphago工作原理前建議先學完david silver的RL基礎課,這樣讀起來才有意思。

   文章分了五個小塊,分別是:

supervised learning of policy networks

reinforcement learning of policy networks

reinforcement learning of value networks

searching with policy and value networks

evaluating the playing strength of AlphaGO


   如果用一句話說明白alphaGO是怎麼工作的,那應該是“combines the policy and value network with MCTS”.

                                                                                                                                                         

 

 

 我們先從最基礎的policy approximator引入。supervised learning of policy network 是一個由CNN+rectifier_nonlinearities+softmax組成的十三層的神經網路,輸入the board state representation也就是當前的棋盤影象(用s表示),輸出a probability distribution over all legal moves也就是選擇所有符合規則的下一步走法中每一種的可能性(用a表示)。訓練資料集來自KGS GO Sever即庫存的人類大師對局,採用隨機梯度上升法(SGA)進行訓練優化————

因為對SLpolicynetwork太笨重不滿意,deepmind又訓練了rollout policy,a linear softmax of small pattern features with weight pai,它極度快速,延時只有2μs,而policy network需要3ms。

    有了第一階段的嘗試,我們把policy gradient拿來用,進入第二階段。用pρ 表示我們的RL policy network,其結構與pσ  相同,引數初始化為ρ=σ,訓練資料通過self play產生。wew play games between the current pρ  and a random selected previous iteration of pρ  ,也就是說通過當前迭代版本的pρ 和隨機選擇的先前迭代版本的pρ 之間對局產生訓練資料,然後用SGA方法優化pρ ——————

 接下來進入training pipeline的最後階段,以position evaluation為核心。在此之前我們已經把policy network做好了,也就是準備好了"策略",然後需要有一套對當前棋局的評估器,來評估從當前棋局出發依照策略p最後結果輸還是贏。estimating a value function vp(s) that predicts the outcome from position s of game played by using policy p for both players。vp(s) = E[zt|st=s,at...T ~p] 。

    We approximate the value function using a value network vθ(s) with weight  θ , vθ(s) ≈ vpρ(s) ≈ v*(s) 。vθ(s) 結構和pρ (s)大致相似,只是輸出為一個單純的迴歸。訓練時以state-outcome pairs (s,z)的regression作資料集,通過SGD最小化vθ(s)和corresponding outcome z之間的MSE來優化引數——————

     到現在準備好了策略policy和價值評估器value network,是時候藉助蒙特卡洛樹搜尋(MCTS)對全域性建模了。

     AlphaGO 用MCTS將policy network 和value network結合到一起,通過MCTS的前向搜尋選擇下一步的行為(就是下一步棋落到哪)。"MCTS with policy and value networks"包含四個核心操作,分別是select,expansion,evaluation,backup。

    搜尋樹的每條邊(s,a)儲存著action value Q(s,a),visit count N(s,a)和prior probability P(s,a),每個節點是棋局的state。從樹根state開始,通過simulation即模擬對局(沒有備份操作的完整對局episode)遍歷這棵樹。對於任意simulation的每個時間步,基於a= argmax( Q(st,a) + u(st,a) )選擇action,其中 。對於每一場simulation————遍歷走到葉子節點sL時如果還沒到simulation的END便進行expansion操作向下擴充套件。P(s,a)=pσ(a|s)。到達當前simulation的END時,通過V(sL)來評估葉子節點——V(sL) = (1- λ )vθ(sL) + λz。vθ(sL)用了value network,z是基於rollout policy pπ  一直下到結束的outcome。回看,backup,更新這一場simulation所走過的所有邊。每條邊的visit count和mean evaluation對從它這兒走過的所有simulations進行累加,si L 表示第i次simulation(總共做了n次simulations)的葉子節點,1(s,a,i)表示第i次simulation的時候(s,a)這條邊是否被走過。                                                                                                                                                                                                                                                                                                                                              

 

  search做完之後,從根結點位置選擇訪問次數最多的move。至此我們的AlphaGO就正式出道了,這時我彷彿聽到上天對它說了句——開始你牛逼閃閃發光的一年吧!

   另外deepmind還提到了他們在研究中發現的一個有意思現象:SL policy network比RL policy network表現好,而RL value network 比SL policy network 表現好,作者說“persumably because humans select a diverse beam of promising moves,whereas RL optimizes for the single best move”哈哈哈。

   為了培(xun)養(lian)AlphaGO,他的父親(deepmind)不惜砸重金,採用非同步MCTS,40個搜尋執行緒在48個CPU上做simulations,用8個平行計算GPU訓練神經網路。另外deepmind也嘗試了分散式MCTS,使用了40個搜尋執行緒,1202個CPU,176個GPU。

 

  “evaluating the playing strength of AlphaGO”這一小段我不想說了,王婆賣瓜自賣自誇,誰愛看自己去看吧。

  注:對於具體method我沒做太多分享,但以後想寫了可能還會補充一些,我覺得alphaGO的突破之處在於成功用MCTS把policy network和value network結合到了一起。再厲害它也是在前人的基礎上做的,並不是自己另闢新路,技術的發展一貫如此。至於本文為啥中英文混體,是因為我思前想後拿不定主意一些地方該怎麼用純中文來表達,這些地方英文來表達是最能傳達本意的,所以直接從論文上擼下來了,莫怪莫怪。最後建議自己讀一下《mastering the game of go with deep neural network and tree search》的原文。連結:https://www.nature.com/articles/nature16961.pdf

 

 

 

 

 

 

 

 

 

 

 

&n