4. 蒙特卡羅樹搜索
這部分基本用的是傳統(tǒng)方法,沒有太多可以評論的,他們用的是帶先驗的UCT,即先考慮DCNN認為比較好的著法,然后等到每個著法探索次數(shù)多了,選擇更相信探索得來的勝率值。而DarkForest則直接選了DCNN推薦的前3或是前5的著法進行搜索。我初步試驗下來效果差不多,當然他們的辦法更靈活些,在允許使用大量搜索次數(shù)的情況下,他們的辦法可以找到一些DCNN認為不好但卻對局面至關重要的著法。
一個有趣的地方是在每次搜索到葉子節(jié)點時,沒有立即展開葉子節(jié)點,而是等到訪問次數(shù)到達一定數(shù)目(40)才展開,這樣避免產(chǎn)生太多的分支,分散搜索的注意力,也能節(jié)省GPU的寶貴資源,同時在展開時,對葉節(jié)點的盤面估值會更準確些。除此之外,他們也用了一些技巧,以在搜索一開始時,避免多個線程同時搜索一路變化,這部分我們在DarkForest中也注意到了,并且做了改進。
5. 總結
總的來說,這整篇文章是一個系統(tǒng)性的工作,而不是一兩個小點有了突破就能達到的勝利。在成功背后,是作者們,特別是兩位第一作者David Silver和Aja Huang,在博士階段及畢業(yè)以后五年以上的積累,非一朝一夕所能完成的。他們能做出AlphaGo并享有現(xiàn)在的榮譽,是實至名歸的。
從以上分析也可以看出,與之前的圍棋系統(tǒng)相比,AlphaGo較少依賴圍棋的領域知識,但還遠未達到通用系統(tǒng)的程度。職業(yè)棋手可以在看過了寥寥幾局之后明白對手的風格并采取相應策略,一位資深游戲玩家也可以在玩一個新游戲幾次后很快上手,但到目前為止,人工智能系統(tǒng)要達到人類水平,還是需要大量樣本的訓練的。可以說,沒有千年來眾多棋手在圍棋上的積累,就沒有圍棋AI的今天。
在AlphaGo中,增強學習(Reinforcement Learning)所扮演的角色并沒有想像中那么大。在理想情況下,我們希望人工智能系統(tǒng)能在對局中動態(tài)地適應環(huán)境和對手的招式并且找到辦法反制之,但是在AlphaGo中增強學習更多地是用于提供更多質量更好的樣本,給有監(jiān)督學習(Supervised Learning)以訓練出更好的模型。在這方面增強學習還有很長的路要走。
另外,據(jù)他們的文章所言,AlphaGo整個系統(tǒng)在單機上已具有了職業(yè)水平,若是谷歌愿意開幾萬臺機器和李世石對決(這對它來說再容易不過了,改個參數(shù)就行),相信比賽會非常精彩。
問題1:“Alphago的MCTS做rollout的時候,除了使用快速走子,還用了搜索樹的已有部分,看起來像是AMAF/RAVE反過來:AMAF是把快速走子的信息傳導到樹的其它無關部分,Alphago是把樹的其它無關部分拿來增強快速走子。我懷疑這是不是它棋力比其它DCNN+MCTS強的原因之一。"
這個辦法在解死活題的文章中出現(xiàn)過,會在一定程度上提高搜索效率,但是提高多少還不知道。
問題2:“rollout的走法質量變好可能會導致棋力下降。”
這里要分兩種情況,tree policy和default policy。在AlphaGo的文章里面已經(jīng)說過了,tree policy的分布不能太尖,不然在搜索時太過重視一些看起來的好著,可能使得棋力下降。但是除了這種原因,一般來說tree policy變好棋力還是會變強的。
default policy這邊,即(半)隨機走子到最后然后判分,就很復雜了,質量變好未必對局面能估得更準。default policy需要保證的是每塊棋的死活大體正確,不要把死的棋下成活的或者反之,而對大局觀的要求反而沒有那么高。雙方完全可以配合著把每塊棋下完,然后轉戰(zhàn)另一塊,而不是說搶在對方前去別處占先手。
登陸|注冊歡迎登陸本站,認識更多朋友,獲得更多精彩內容推薦!