新智元編譯1
來源:Nature
參與:王嘉俊 王婉婷 張巨巖 李宏菲 林坤
特別感謝:陳雷
Nature 封面論文:Mastering the game of Go with deep neural networks and tree search(通過深度神經(jīng)網(wǎng)絡(luò)和樹搜索,學會圍棋游戲)
AlphaGo 給圍棋帶來了新方法,它背后主要的方法是 Value Networks(價值網(wǎng)絡(luò))和 Policy Networks(策略網(wǎng)絡(luò)),其中 Value Networks 評估棋盤位置,Policy Networks 選擇下棋步法。這些神經(jīng)網(wǎng)絡(luò)模型通過一種新的方法訓練,結(jié)合人類專家比賽中學到的監(jiān)督學習,以及在自己和自己下棋(Self-Play)中學到強化學習。這不需要任何前瞻式的 Lookahead Search,神經(jīng)網(wǎng)絡(luò)玩圍棋游戲的能力,就達到了最先進的蒙特卡洛樹搜索算法的級別(這種算法模擬了上千種隨機自己和自己下棋的結(jié)果)。我們也引入了一種新搜索算法,這種算法將蒙特卡洛模擬和價值、策略網(wǎng)絡(luò)結(jié)合起來。
通過將 Value Networks、Policy Networks 與樹搜索結(jié)合起來,AlphaGo 達到了專業(yè)圍棋水準,讓我們看到了希望:在其他看起來無法完成的領(lǐng)域中,AI 也可以達到人類級別的表現(xiàn)!
DeepMind 團隊對圍棋項目的介紹(新智元翻譯)
所有完全信息(perfect information)博弈都有一個最優(yōu)值函數(shù)(optimal value function),
譯者注:圍棋為何如此復雜?
圍棋難的地方在于它的估值函數(shù)非常不平滑,差一個子盤面就可能天翻地覆,同時狀態(tài)空間大,也沒有全局的結(jié)構(gòu)。這兩點加起來,迫使目前計算機只能用窮舉法并且因此進展緩慢。但人能下得好,能在幾百個選擇中知道哪幾個位置值得考慮,說明它的估值函數(shù)是有規(guī)律的。這些規(guī)律遠遠不是幾條簡單公式所能概括,但所需的信息量還是要比狀態(tài)空間本身的數(shù)目要少得多(得多)。一句話,窮舉狀態(tài)并不是最終目標,就算以后超超級計算機能做到這一點,也不能說解決了人工智能。只有找到能學出規(guī)律的學習算法,才是解決問題的根本手段。By 田淵棟
蒙特卡洛樹搜索(MCTS)使用蒙特卡洛算法的模擬結(jié)果來估算一個搜索樹中每一個狀態(tài)(state)的值。隨著進行了越來越多的模擬,搜索樹會變得越來越龐大,而相關(guān)的值也會變得越來越精確。通過選取值更高的子樹,用于選擇行動的策略概率在搜索的過程中會一直隨著時間而有所改進。目前最強大的圍棋程序都是基于蒙特卡洛樹搜索的,通過配置經(jīng)訓練后用于預(yù)測人類棋手行動的策略概率進行增強。這些策略概率用于將搜索范圍縮小到一組概率很高的行動、以及在模擬中抽樣行動。這種方法已經(jīng)取得了高級業(yè)余愛好者水平的表現(xiàn)。然而,先前的工作僅局限于基于輸入特征(input features)的線性組合的粗淺策略概率和值函數(shù)。
近期,深度卷積神經(jīng)網(wǎng)絡(luò)在視覺領(lǐng)域有很多前所未有的表現(xiàn):例如,圖像分類、臉部識別、玩雅特麗游戲等。他們使用很多層神經(jīng)元,每個被安排在交疊的區(qū)塊(Tiles)中來構(gòu)建越來越抽象和本地化的圖片表示。我們在圍棋游戲中采用了一個相似的構(gòu)架。我們用19X19的圖像來傳遞棋盤位置,使用卷積層來構(gòu)建位置的表示。我們使用這些神經(jīng)網(wǎng)絡(luò)來減少搜索樹的有效深度和寬度(breadth):使用一個Value Networks(價值網(wǎng)絡(luò))來估算位置,使用Policy Network(策略網(wǎng)絡(luò))來對動作進行抽樣。
我們使用由若干機器學習階段(Stages)構(gòu)成的流水線來訓練神經(jīng)網(wǎng)絡(luò)(例1)。我們直接使用人類專家的步法來訓練監(jiān)督學習策略網(wǎng)絡(luò)pσ。這為快速而有效的學習更新(Learning Updates)提供了高質(zhì)量的梯度和即時反饋。與之前的工作相似,我們也訓練了一個快速策略網(wǎng)絡(luò)pπ,它可以快速地在模擬中對動作進行抽樣。接下來,我們訓練了強化學習(RL)策略網(wǎng)絡(luò)pρ,這個網(wǎng)絡(luò)通過優(yōu)化“自己對抗自己”的最終結(jié)果來改善監(jiān)督學習策略網(wǎng)絡(luò)。這將策略調(diào)整到贏棋這一正確目標上,而非讓預(yù)測精確率最大。最后,我們訓練了價值網(wǎng)絡(luò)vθ,它可以預(yù)測出RL策略網(wǎng)絡(luò)通過模擬“自己對抗自己”而得出的策略中哪種是最佳策略。我們的程序AlphaGo高效地結(jié)合將策略和價值網(wǎng)絡(luò)與蒙特卡洛樹搜索結(jié)合起來。
為了評估AlphaGo,我們在諸多AlphaGo變體和一些其他圍棋程序中進行了內(nèi)部比賽,這其中包括了最強大的商業(yè)程序Crazy Stone和Zen,還有最大的開源程序Pachi和Fuego。所有這些程序都是基于高性能MCTS算法。此外,比賽也包含了開源程序GnuGo,這個程序使用了在MCTS之前出現(xiàn)的最先進的方法。規(guī)定所有程序每次落子有5秒的計算時間。
比賽的結(jié)果表明單機AlphaGo領(lǐng)先任何之前的圍棋程序很多段位,取得了495局比賽中494次勝利的成績(99.8%)。為了給AlphaGo提出更大的挑戰(zhàn),我們也讓AlphaGo讓四子(讓子,即對手自由落子)來比賽;AlphaGo讓子競賽中對陣Crazy Stone、Zen和Pachi時分別取得了77%、86%和99%的成績。分布式AlphaGo明顯更強大,對陣單機AlphaGo取得77%的成績,完勝其他程序。
詳解:AlphaGo 如何在對弈中選擇步法
黑色棋子代表AlphaGo正處于下棋狀態(tài),對于下面的每一個統(tǒng)計,橙色圓圈代表的是最大值所處的位置。
a.用價值網(wǎng)絡(luò)(value network)
b.計算樹中從根節(jié)點s處伸出來的邊(其中每條邊用(s,a)來表示)的動作值Q(s,a),僅當(λ=0)時,取價值網(wǎng)絡(luò)估值的平均值。
c.計算了根位置處伸出的邊的動作值Q(s,a),僅當(λ=1)時,取模擬估計值的平均值。
d.直接從SL策略網(wǎng)絡(luò)
e.計算了在模擬過程中,從根節(jié)點選出的某個動作的頻率百分比。
f.表示來自于AlphaGo搜索樹的主要變異性(principal variation)(最大訪問數(shù)路徑),移動路徑以序號形式呈現(xiàn)出來。
紅色圓圈表示AlphaGo選擇的步法;白方格表示樊麾作出的回應(yīng);樊麾賽后評論說:他特別欣賞AlphaGo預(yù)測的(標記為1)的步法。
AlphaGo與樊麾的比賽結(jié)果
以編號形式展示了AlphaGo和樊麾進行圍棋比賽時各自的落子順序。棋盤下方成對放置的棋子表示了相同交叉點處的重復落子。每對中的第一個棋子上的數(shù)字表示了何時發(fā)生重復落子,而落子位置由第二個棋子上的數(shù)字決定。(見補充信息 Supplementary Information)
第二盤:AlphaGo 中盤勝
第三盤:AlphaGo 中盤勝
第四盤:AlphaGo 中盤勝
第五盤:AlphaGo 中盤勝
最終,我們評估了分布式AlphaGo與樊麾的比賽,他是專業(yè)2段位選手,2013、14和15年歐洲圍棋賽冠軍。在2015年10月5日到9日,AlphaGo和樊麾正式比賽了5局。AlphaGo全部獲勝。這是第一次一個電腦圍棋程序,在沒有讓子、全尺寸(19X19)的情況下?lián)魯∪祟悓I(yè)選手,這一成果過去認為至少需要 10 年才能實現(xiàn)。
在我們的工作中,我們開發(fā)了圍棋程序,它將深度神經(jīng)網(wǎng)絡(luò)和樹搜索結(jié)合起來。這個程序可以達到最強的人類選手的表現(xiàn),因此完成了一個人工智能“偉大挑戰(zhàn)”。我們也為圍棋首創(chuàng)了高效步法選擇和位置評估函數(shù),這是通過具有創(chuàng)新性地將監(jiān)督和強化學習兩種方法結(jié)合起來從而訓練深度神經(jīng)網(wǎng)絡(luò)。我們也引入了一個新搜索算法,這一算法成功的整合了神經(jīng)網(wǎng)絡(luò)評估和蒙特卡洛樹模擬算法。我們的程序AlphaGo在高性能樹搜索引擎中從一定規(guī)模上將這些成分整合在一起。
在和樊麾的比賽中,AlphaGo在評估位置方面要比深藍與Kasparov4比賽時所評估的位置少幾千倍,這是由于我們使用了策略網(wǎng)絡(luò)更智能地選擇那些位置,還使用了價值網(wǎng)絡(luò)更精確地評估它們,而價值網(wǎng)絡(luò)更接近人類的下棋方式。另外,深藍依靠手工設(shè)計評估方程,而AlphaGo的神經(jīng)網(wǎng)絡(luò)是直接通過純比賽數(shù)據(jù)訓練,也使用了通用監(jiān)督和強化學習方法。
圍棋代表了很多人工智能所面臨的困難:具有挑戰(zhàn)性的決策制定任務(wù)、難以破解的查找空間問題和優(yōu)化解決方案如此復雜以至于用一個策略或價值函數(shù)幾乎無法直接得出。之前在電腦圍棋方面的主要突破是引入MCTS,這導致了很多其他領(lǐng)域的相應(yīng)進步:例如,通用博弈,經(jīng)典的計劃問題,計劃只有部分可觀測問題、日程安排問題和約束滿足問題。通過將策略和價值網(wǎng)絡(luò)與樹搜索結(jié)合起來,AlphaGo終于達到了專業(yè)圍棋水準,讓我們看到了希望:在其他看起來無法完成的領(lǐng)域中,AI也可以達到人類級別的表現(xiàn)。