• <li id="0yokw"></li>
    <fieldset id="0yokw"><source id="0yokw"></source></fieldset>
    <tfoot id="0yokw"></tfoot>
  •    
     您當前的位置 : 體育新聞>體育快訊>

    Facebook工程師解疑:AlphaGo為什么這么厲害?

    海口網 http://www.yinhu3.com 時間:2016-03-14 15:51

    ?

    人工智能系統AlphaGo

      Facebook田淵棟解析算法技術:AlphaGo為什么這么厲害?

      最近我仔細看了下AlphaGo在《自然》雜志上發表的文章,寫一些分析給大家分享。

      AlphaGo這個系統主要由幾個部分組成:

       走棋網絡(Policy Network),給定當前局面,預測/采樣下一步的走棋。

      快速走子(Fast rollout),目標和1一樣,但在適當犧牲走棋質量的條件下,速度要比1快1000倍。

       估值網絡(Value Network),給定當前局面,估計是白勝還是黑勝。

      蒙特卡羅樹搜索(Monte Carlo Tree Search,MCTS),把以上這三個部分連起來,形成一個完整的系統。

      我們的DarkForest和AlphaGo同樣是用4搭建的系統。DarkForest較AlphaGo而言,在訓練時加強了1,而少了2和3,然后以開源軟件Pachi的缺省策略(default policy)部分替代了2的功能。以下介紹下各部分。

      1. 走棋網絡

      走棋網絡把當前局面作為輸入,預測/采樣下一步的走棋。它的預測不只給出最強的一手,而是對棋盤上所有可能的下一著給一個分數。棋盤上有361個點,它就給出361個數,好招的分數比壞招要高。DarkForest在這部分有創新,通過在訓練時預測三步而非一步,提高了策略輸出的質量,和他們在使用增強學習進行自我對局后得到的走棋網絡(RL network)的效果相當。當然,他們并沒有在最后的系統中使用增強學習后的網絡,而是用了直接通過訓練學習到的網絡(SL network),理由是RL network輸出的走棋缺乏變化,對搜索不利。

      有意思的是在AlphaGo為了速度上的考慮,只用了寬度為192的網絡,而并沒有使用最好的寬度為384的網絡(見圖2(a)),所以要是GPU更快一點(或者更多一點),AlphaGo肯定是會變得更強的。

      所謂的0.1秒走一步,就是純粹用這樣的網絡,下出有最高置信度的合法著法。這種做法一點也沒有做搜索,但是大局觀非常強,不會陷入局部戰斗中,說它建模了“棋感”一點也沒有錯。我們把DarkForest的走棋網絡直接放上KGS就有3d的水平,讓所有人都驚嘆了下。可以說,這一波圍棋AI的突破,主要得益于走棋網絡的突破。這個在以前是不可想像的,以前用的是基于規則,或者基于局部形狀再加上簡單線性分類器訓練的走子生成法,需要慢慢調參數年,才有進步。

      當然,只用走棋網絡問題也很多,就我們在DarkForest上看到的來說,會不顧大小無謂爭劫,會無謂脫先,不顧局部死活,對殺出錯,等等。有點像高手不經認真思考的隨手棋。因為走棋網絡沒有價值判斷功能,只是憑“直覺”在下棋,只有在加了搜索之后,電腦才有價值判斷的能力。

       2. 快速走子

      那有了走棋網絡,為什么還要做快速走子呢?有兩個原因,首先走棋網絡的運行速度是比較慢的,AlphaGo說是3毫秒,我們這里也差不多,而快速走子能做到幾微秒級別,差了1000倍。所以在走棋網絡沒有返回的時候讓CPU不閑著先搜索起來是很重要的,等到網絡返回更好的著法后,再更新對應的著法信息。

      其次,快速走子可以用來評估盤面。由于天文數字般的可能局面數,圍棋的搜索是毫無希望走到底的,搜索到一定程度就要對現有局面做個估分。在沒有估值網絡的時候,不像國象可以通過算棋子的分數來對盤面做比較精確的估值,圍棋盤面的估計得要通過模擬走子來進行,從當前盤面一路走到底,不考慮岔路地算出勝負,然后把勝負值作為當前盤面價值的一個估計。這里有個需要權衡的地方:在同等時間下,模擬走子的質量高,單次估值精度高但走子速度慢;模擬走子速度快乃至使用隨機走子,雖然單次估值精度低,但可以多模擬幾次算平均值,效果未必不好。所以說,如果有一個質量高又速度快的走子策略,那對于棋力的提高是非常有幫助的。

      為了達到這個目標,神經網絡的模型就顯得太慢,還是要用傳統的局部特征匹配(local pattern matching)加線性回歸(logistic regression)的方法,這辦法雖然不新但非常好使,幾乎所有的廣告推薦,競價排名,新聞排序,都是用的它。與更為傳統的基于規則的方案相比,它在吸納了眾多高手對局之后就具備了用梯度下降法自動調參的能力,所以性能提高起來會更快更省心。AlphaGo用這個辦法達到了2微秒的走子速度和24.2%的走子準確率。24.2%的意思是說它的最好預測和圍棋高手的下子有0.242的概率是重合的,相比之下,走棋網絡在GPU上用2毫秒能達到57%的準確率。這里,我們就看到了走子速度和精度的權衡。

      和訓練深度學習模型不同,快速走子用到了局部特征匹配,自然需要一些圍棋的領域知識來選擇局部特征。對此AlphaGo只提供了局部特征的數目(見Extended Table 4),而沒有說明特征的具體細節。我最近也實驗了他們的辦法,達到了25.1%的準確率和4-5微秒的走子速度,然而全系統整合下來并沒有復現他們的水平。我感覺上24.2%并不能完全概括他們快速走子的棋力,因為只要走錯關鍵的一步,局面判斷就完全錯誤了;而圖2(b)更能體現他們快速走子對盤面形勢估計的精確度,要能達到他們圖2(b)這樣的水準,比簡單地匹配24.2%要做更多的工作,而他們并未在文章中強調這一點。

      在AlphaGo有了快速走子之后,不需要走棋網絡和估值網絡,不借助任何深度學習和GPU的幫助,不使用增強學習,在單機上就已經達到了3d的水平(見Extended Table 7倒數第二行),這是相當厲害的了。任何使用傳統方法在單機上達到這個水平的圍棋程序,都需要花費數年的時間。在AlphaGo之前,Aja Huang曾經自己寫過非常不錯的圍棋程序,在這方面相信是有很多的積累的。

      3. 估值網絡

      AlphaGo的估值網絡可以說是錦上添花的部分,從Fig 2(b)和Extended Table 7來看,沒有它AlphaGo也不會變得太弱,至少還是會在7d-8d的水平。少了估值網絡,等級分少了480分,但是少了走棋網絡,等級分就會少掉800至1000分。特別有意思的是,如果只用估值網絡來評估局面(2177),那其效果還不及只用快速走子(2416),只有將兩個合起來才有更大的提高。我的猜測是,估值網絡和快速走子對盤面估計是互補的,在棋局一開始時,大家下得比較和氣,估值網絡會比較重要;但在有復雜的死活或是對殺時,通過快速走子來估計盤面就變得更重要了。考慮到估值網絡是整個系統中最難訓練的部分(需要三千萬局自我對局),我猜測它是最晚做出來并且最有可能能進一步提高的。

      關于估值網絡訓練數據的生成,值得注意的是文章中的附錄小字部分。與走棋網絡不同,每一盤棋只取一個樣本來訓練以避免過擬合,不然對同一對局而言輸入稍有不同而輸出都相同,對訓練是非常不利的。這就是為什么需要三千萬局,而非三千萬個盤面的原因。對于每局自我對局,取樣本是很有講究的,先用SL network保證走棋的多樣性,然后隨機走子,取盤面,然后用更精確的RL network走到底以得到最正確的勝負估計。當然這樣做的效果比用單一網絡相比好多少,我不好說。

      一個讓我吃驚的地方是,他們完全沒有做任何局部死活/對殺分析,純粹是用暴力訓練法訓練出一個相當不錯的估值網絡。這在一定程度上說明深度卷積網絡(DCNN)有自動將問題分解成子問題,并分別解決的能力。

      另外,我猜測他們在取訓練樣本時,判定最終勝負用的是中國規則。所以說三月和李世石對局的時候也要求用中國規則,不然如果換成別的規則,就需要重新訓練估值網絡(雖然我估計結果差距不會太大)。至于為什么一開始就用的中國規則,我的猜測是編程非常方便(我在寫DarkForest的時候也是這樣覺得的)。

       4. 蒙特卡羅樹搜索

      這部分基本用的是傳統方法,沒有太多可以評論的,他們用的是帶先驗的UCT,即先考慮DCNN認為比較好的著法,然后等到每個著法探索次數多了,選擇更相信探索得來的勝率值。而DarkForest則直接選了DCNN推薦的前3或是前5的著法進行搜索。我初步試驗下來效果差不多,當然他們的辦法更靈活些,在允許使用大量搜索次數的情況下,他們的辦法可以找到一些DCNN認為不好但卻對局面至關重要的著法。

      一個有趣的地方是在每次搜索到葉子節點時,沒有立即展開葉子節點,而是等到訪問次數到達一定數目(40)才展開,這樣避免產生太多的分支,分散搜索的注意力,也能節省GPU的寶貴資源,同時在展開時,對葉節點的盤面估值會更準確些。除此之外,他們也用了一些技巧,以在搜索一開始時,避免多個線程同時搜索一路變化,這部分我們在DarkForest中也注意到了,并且做了改進。

       5. 總結

      總的來說,這整篇文章是一個系統性的工作,而不是一兩個小點有了突破就能達到的勝利。在成功背后,是作者們,特別是兩位第一作者David Silver和Aja Huang,在博士階段及畢業以后五年以上的積累,非一朝一夕所能完成的。他們能做出AlphaGo并享有現在的榮譽,是實至名歸的。

      從以上分析也可以看出,與之前的圍棋系統相比,AlphaGo較少依賴圍棋的領域知識,但還遠未達到通用系統的程度。職業棋手可以在看過了寥寥幾局之后明白對手的風格并采取相應策略,一位資深游戲玩家也可以在玩一個新游戲幾次后很快上手,但到目前為止,人工智能系統要達到人類水平,還是需要大量樣本的訓練的。可以說,沒有千年來眾多棋手在圍棋上的積累,就沒有圍棋AI的今天。

      在AlphaGo中,增強學習(Reinforcement Learning)所扮演的角色并沒有想像中那么大。在理想情況下,我們希望人工智能系統能在對局中動態地適應環境和對手的招式并且找到辦法反制之,但是在AlphaGo中增強學習更多地是用于提供更多質量更好的樣本,給有監督學習(Supervised Learning)以訓練出更好的模型。在這方面增強學習還有很長的路要走。

      另外,據他們的文章所言,AlphaGo整個系統在單機上已具有了職業水平,若是谷歌愿意開幾萬臺機器和李世石對決(這對它來說再容易不過了,改個參數就行),相信比賽會非常精彩。

      下面是根據讀者提問做的一些更新。

       問題1:“Alphago的MCTS做rollout的時候,除了使用快速走子,還用了搜索樹的已有部分,看起來像是AMAF/RAVE反過來:AMAF是把快速走子的信息傳導到樹的其它無關部分,Alphago是把樹的其它無關部分拿來增強快速走子。我懷疑這是不是它棋力比其它DCNN+MCTS強的原因之一。“

      這個辦法在解死活題的文章中出現過,會在一定程度上提高搜索效率,但是提高多少還不知道。

      問題2:“rollout的走法質量變好可能會導致棋力下降。”

      這里要分兩種情況,tree policy和default policy。在AlphaGo的文章里面已經說過了,tree policy的分布不能太尖,不然在搜索時太過重視一些看起來的好著,可能使得棋力下降。但是除了這種原因,一般來說tree policy變好棋力還是會變強的。

      default policy這邊,即(半)隨機走子到最后然后判分,就很復雜了,質量變好未必對局面能估得更準。default policy需要保證的是每塊棋的死活大體正確,不要把死的棋下成活的或者反之,而對大局觀的要求反而沒有那么高。雙方完全可以配合著把每塊棋下完,然后轉戰另一塊,而不是說搶在對方前去別處占先手。

    [來源:Facebook] [作者:] [編輯:符德銘]
    版權聲明:

    ·凡注明來源為“海口網”的所有文字、圖片、音視頻、美術設計等作品,版權均屬海口網所有。未經本網書面授權,不得進行一切形式的下載、轉載或建立鏡像。

    ·凡注明為其它來源的信息,均轉載自其它媒體,轉載目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責。

    圖解海口一周熱聞:海口日報海口網入駐“新京號”
    圖解海口一周熱聞|多彩節目,點亮繽紛假期!
    圖解海口一周熱聞:海口新年音樂會將于2024年1月1日舉辦
    圖解海口一周熱聞:海口招才引智專場誠意攬才受熱捧
    圖解海口一周熱聞:海口獲評國家食品安全示范城市
    災后重建看變化·復工復產
    圓滿中秋
    勇立潮頭踏浪行
    “發現海口之美”攝影大賽
         
         
         
    排行
     
    旅客注意!海口美蘭機場T2值機柜臺17日起調整
    尋舊日時光 海口部分年輕人熱衷“淘”老物件
    海口:云洞襯晚霞 美景入眼中
    嗨游活力海口 樂享多彩假日
    海口:城市升騰煙火氣 夜間消費活力足
    海口:長假不停歇 工地建設忙
    市民游客在海口度過美好假期
    2023“海口杯”帆船賽(精英賽)活力開賽
    海口天空之山驛站:晚照醉人
    千年福地尋玉兔 共慶海口最中秋
     
    |
    |
     
         www.yinhu3.com All Rights Reserved      
    海口網版權所有 未經書面許可不得復制或轉載
    互聯網新聞信息服務許可證:46120210010
    違法和不良信息舉報電話: 0898—66822333  舉報郵箱:jb66822333@163.com

    網絡內容從業人員違法違規行為舉報郵箱:jb66822333@126.com

    瓊公網安備 46010602000160號

      瓊ICP備2023008284號-1
    中國互聯網舉報中心