當前位置:編程學習大全網 - 編程語言 - 是什麽讓AlphaGo如此成功?

是什麽讓AlphaGo如此成功?

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

鑒於當前形勢,政策網絡預測/取樣下壹步行動。

快速卷展,目標和1壹樣,但是在犧牲棋的質量的情況下,速度比1快1000倍。

價值網,鑒於目前情況,估計是白勝還是黑勝。

蒙特卡羅樹搜索(MCTS)將上述三部分連接起來,形成壹個完整的系統。

我們的暗黑森林和AlphaGo也是用4構建的系統。與AlphaGo相比,DarkForest強化了1,但缺少了2和3,然後用開源軟件Pachi的默認策略代替了2的功能。下面介紹幾個部分。

1,棋牌網

下棋網絡將當前情況作為輸入來預測/采樣下壹次下棋。它的預測不僅給出了最強的手牌,還對棋盤上所有可能的下壹步棋給出了分數。棋盤上有361個點,給出的數字是361,走好的棋比走不好的棋得分高。

黑暗森林在這壹部分有所創新。通過在訓練時預測三步而不是壹步,提高了策略輸出的質量,相當於他們使用強化學習進行自匹配後得到的RL網絡的效果。當然,他們在最終的系統中並沒有使用強化學習後的網絡,而是使用了直接通過訓練學習到的網絡(SL網絡),理由是RL網絡輸出的招式缺乏變化,不利於搜索。

有意思的是,AlphaGo為了速度,只使用寬度為192的網絡,而沒有使用寬度為384的最佳網絡(見圖2(a)),所以如果GPU更快(或者更多),AlphaGo肯定會變強。

所謂0.1第二步,就是純粹的利用這個網絡來獲取可信度最高的法律方法。這個方法根本沒做搜索,但是大局感很強,不會陷入局部戰鬥。說它塑造了壹個“棋感”並沒有錯。我們把DarkForest的下棋網直接放在KGS上,它有3d水平,讓大家大吃壹驚。

可以說,這波圍棋AI的突破,主要是因為棋牌網的突破。這在以前是不可想象的。過去的算子生成方法是基於規則,或者基於局部形狀和簡單的線性分類器訓練。它需要慢慢調整參數年取得進展。

當然,僅僅在網絡上下棋也有很多問題。就我們在DarkForest上看到的,不分大小的搶將毫無意義,沖鋒陷陣毫無意義,不顧地方生死,殺人失誤等等。有點像大師下的壹盤沒有經過認真思考的棋。因為棋牌網沒有價值判斷功能,只是靠“直覺”下棋,只有加入搜索後,計算機才有價值判斷的能力。

2.快走

那妳有棋牌網為什麽還要快速出招?原因有二。首先,棋牌網的運行速度比較慢。AlphaGo說是3毫秒,這裏差不多,而跑得快的可以做到幾微秒,差1000倍。所以在棋網不回的情況下讓CPU先搜索,等網回更好的玩法後再更新相應的玩法信息,這壹點很重要。

其次,快速轉輪可用於評估盤面。由於可能出現的情況的天文數字,對圍棋的搜索是無望的,搜索到壹定程度就要對現有情況進行評估。在沒有估值網絡的時候,不像國象可以通過計算棋子的得分來對盤面做出更準確的估值,圍棋的盤面估值還得通過模擬走法來進行,從當前盤面壹路到終點,不考慮岔路口,計算出勝負,然後把勝負值作為當前盤面價值的估值。

這裏有壹個權衡:同時仿真步行機質量高,單次估計精度高,但步行機速度慢;模擬算子很快,甚至使用了隨機算子。雖然單次估計精度低,但可以模擬幾次計算平均值,效果不壹定差。所以,如果有壹個高質量的快棋策略,對提高棋力會很有幫助。

為了達到這個目的,神經網絡的模型太慢,仍然需要傳統的局部模式匹配加邏輯回歸的方法。這個方法雖然不算新,但是非常好用,幾乎所有的廣告推薦、競價排名、新聞排名都在用。

與更傳統的基於規則的方案相比,它在吸收了眾多專家後,具備了通過梯度下降法自動調整參數的能力,因此性能提升會更快更省心。AlphaGo通過這種方法實現了2微秒的跑者速度和24.2%的跑者準確率。24.2%意味著它的最佳預測與棋手兒子0.242的概率壹致。相比之下,象棋網絡在GPU上2毫秒就能達到57%的準確率。在這裏,我們看到了步行機的速度和準確性之間的權衡。

與訓練深度學習模型不同,跑得快的人使用局部特征匹配,自然需要壹些圍棋領域知識來選擇局部特征。AlphaGo只提供了局部特征的數量(見擴展表4),並沒有指定特征的具體細節。最近我也用他們的方法做了實驗,取得了25.1%的準確率和4-5微秒的行走速度。然而,整個系統的整合並沒有重現他們的水平。

感覺24.2%不能完全概括他們的快招,因為只要走錯關鍵壹步,形勢判斷就會完全錯誤;而圖2(b)可以更好地反映他們對磁盤情況的快速跟蹤估計的準確性。要達到圖2(b)的水平,需要比簡單匹配24.2%更多的工作,他們在文章中沒有強調這壹點。

AlphaGo有了快手之後,不需要下棋網絡和評測網絡,不需要任何深度學習和GPU的幫助,不需要強化學習,在單機上就達到了3d的水平(見擴展表7倒數第二行),相當強大。任何使用傳統方法在單臺計算機上達到這種水平的圍棋程序都需要幾年時間。在AlphaGo之前,Aja Huang曾經寫過壹個非常不錯的圍棋程序,相信在這方面也有很多積累。

3.估價網絡

AlphaGo的估值網絡可以說是錦上添花。從圖2(b)和擴展表7來看,AlphaGo沒有它也不會變得太弱,至少在7d-8d的水平。沒有估值網,評分少480分,沒有棋牌網,評分會少800到1000分。特別有意思的是,如果只使用評價網來評價情況(2177),其效果還不如只使用跑得快的(2416),只有將兩者結合起來才能進壹步提高。

我的猜測是,估值網和快跑者在盤面估算上是相輔相成的。遊戲開始的時候大家玩的比較和氣,估值網絡會比較重要。但當出現復雜的生死或對抗時,通過快走來估計盤面就變得更重要了。考慮到估值網絡是整個系統中最難訓練的部分(需要3000萬次自匹配),我估計是最晚做出來的,最有可能進壹步完善。

關於估值網訓練數據的生成,值得註意的是文章中附錄的小字部分。與棋牌網不同的是,每個棋牌遊戲只取壹個樣本進行訓練,避免過擬合。否則,對於同壹個遊戲,輸入略有不同,輸出相同,對訓練非常不利。這就是為什麽妳需要3000萬個遊戲而不是3000萬個磁盤。對於每壹場自配,采樣都是很有講究的。首先用SL網絡保證棋步的多樣性,然後隨機走棋得到盤面,再用更精確的RL網絡得到最精確的勝負估計。當然,我不能說比用單壹網絡好多少。

有壹點讓我很驚訝,他們根本不做任何局部的生死分析,只是通過暴力訓練,訓練出了壹個相當不錯的估值網絡。這在壹定程度上說明DCNN具有自動將問題分解為子問題並分別求解的能力。

另外,我猜他們在取訓練樣本的時候,用中國規則來判斷最後的結果。所以我們在3月對陣李世石的時候,也要求使用中國規則,否則如果換成其他規則,就需要重新訓練估值網(雖然我覺得結果差距不會太大)。至於當初為什麽用中國規則,我的猜測是編程很方便(我寫DarkForest的時候也有這種感覺)。

4.蒙特卡羅樹搜索

這部分基本用的是傳統方法,沒有太多評論。他們用的是帶先驗的UCT,即先考慮DCNN認為更好的方法,然後等到每種方法都有更多的探索,選擇更值得信賴的勝率值。而DarkForest則直接選擇DCNN推薦的前3或前5的方法進行搜索。我的初步實驗幾乎有同樣的效果。當然,他們的方法更靈活。在允許大量搜索的情況下,他們的方法可以找到壹些DCNN認為不好但對情況至關重要的方法。

壹個有趣的事情是,每搜索壹個葉子節點,並不是立即展開,而是在訪問次數達到壹定數量(40)後才展開,這樣可以避免分支過多,分散搜索的註意力,節省GPU的寶貴資源。同時在擴展的時候,葉子節點的磁盤會更精確。此外,他們還使用了壹些技巧來防止多個線程在搜索開始時同時搜索更改,這壹點我們在DarkForest中也註意到了,並進行了改進。

5.摘要

總的來說,這壹整篇文章是壹個系統性的工作,不是壹兩個小點的突破就能取得的勝利。成功的背後是作者,尤其是兩位第壹作者David Silver和Aja Huang在博士階段和畢業後五年多的積累,不是壹朝壹夕可以完成的。他們值得能夠做出AlphaGo,享受現在的榮譽。

從上面的分析也可以看出,與之前的圍棋系統相比,AlphaGo對圍棋領域知識的依賴更少,但遠沒有達到壹般系統的水平。職業棋手看幾局就能明白對手的打法,采取相應的策略。壹個資深遊戲玩家玩幾遍新遊戲也可以很快上手,但是到目前為止,人工智能系統仍然需要大量的樣本訓練才能達到人類的水平。可以說,沒有圍棋幾千年來眾多棋手的積累,就沒有今天的圍棋AI。

  • 上一篇:英雄聯盟:如果用五個ADC代表五個段位,如何選擇?
  • 下一篇:北汽新能源EU5、EU400、EU快換版防盜報警系統如何運行?
  • copyright 2024編程學習大全網