【重磅】AlphaZero煉成最強通用棋類AI,DeepMind強化學習演算法8小時完爆人類棋類遊戲

姬子玉發表於2017-12-08

或許“智慧爆炸”不會發生,但永遠不要低估人工智慧的發展。推出最強圍棋AI AlphaGo Zero不到50天,DeepMind又一次超越了他們自己,也重新整理了世人對人工智慧的認知。12月5日,包括David Silver、Demis Hassabis等人在內的DeepMind團隊發表論文,提出通用棋類AI AlphaZero,從零開始訓練,除了基本規則沒有任何其他知識,4小時擊敗最強國際象棋AI、2小時擊敗最強將棋AI,8小時擊敗李世石版AlphaGo,連最強圍棋AI AlphaGo Zero也不能倖免:訓練34小時的AlphaZero勝過了訓練72小時的AlphaGo Zero。

世界最強圍棋AI AlphaGo Zero帶給世人的震撼並沒有想象中那麼久——不是因為大家都去看誰(沒)跟誰吃飯了,而是DeepMind再次迅速超越了他們自己,超越了我們剩下所有人的想象。

12月5日,距離釋出AlphaGo Zero論文後不到兩個月,他們在arXiv上傳最新論文《用通用強化學習演算法自我對弈,掌握國際象棋和將棋》(Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm),用看似平淡的標題,平淡地丟擲一個炸彈。

其中,DeepMind團隊描述了一個通用棋類AI“AlphaZero”,在不同棋類遊戲中,戰勝了所有對手,而這些對手都是各自領域的頂級AI:

其中,Stockfish是世界上最強的國際象棋引擎之一,它比最好的人類國際象棋大師還要強大得多。與大多數國際象棋引擎不同,Stockfish是開源的(GPL license)。使用者可以閱讀程式碼,進行修改,回饋,甚至在自己的專案中使用它,而這也是它強大的一個原因。

將棋AI Elmo的開發者是日本人瀧澤城,在第27屆世界計算機將棋選手權賽中獲得優勝。Elmo的策略是在對戰中搜尋落子在哪個位置勝率更高,判斷對戰形勢,進而調整策略。Elmo名字的由來是electric monkey(電動猴子,越來越強大之意),根據作者的說法也有elastic monkey(橡皮猴子,愈挫愈勇)之意。

a10a09b75e6d8fbd85c0d243b5c3b6fb760ddf22

而AlphaGo Zero更是不必介紹,相信“阿法元”之名已經傳遍中國大江南北。而AlphaZero在訓練34小時後,也勝過了訓練72小時的AlphaGo Zero。

AlphaZero橫空出世,網上已經炸開了鍋,Reddit網友紛紛評論:AlphaZero已經不是機器的棋了,是神仙棋,非常優美,富有策略性,更能深刻地謀劃(maneuver),完全是在調戲Stockfish。

看著AlphaZero贏,簡直太不可思議了!這根本就不是計算機,這壓根兒就是人啊!

Holy fu*ck,第9場比賽太特麼瘋狂了!

DeepMind太神了!

我的神啊!它竟然只玩d4/c4。總體上來看,它似乎比我們訓練的要少得多。

這條訊息太瘋狂了。

而知乎上,短短几小時內也有很多評論:

知乎使用者fffasttime:專治各種不服的DeepMind又出師了,但這次的主攻的內容不再是圍棋了,而是所有的棋類遊戲。……之前AlphaGo把圍棋界打得心態崩了,而現在AlphaZero贏的不光是人類棋手,還包括各路象棋的AI作者。

知乎使用者陸君慨:棋類的解決框架一直都是基於 minimax + heuristic。以前圍棋難是因為minimax在有著很大分支的遊戲上無法產生足夠的深度,並且heuristic難以設計。Alphago Zero時候就已經證明了cnn很適合做heuristic,而mcts也可以解決深度問題。那為什麼別人不做呢?

因為貧窮限制了我們的想象力。

有錢真的是可以為所欲為。

9419abb9048779e3f78eab52bd55d89b1aca56dd

比AlphaGo Zero更強的AlphaZero來了!8小時解決一切棋類!

知乎使用者PENG Bo迅速就發表了感慨,我們取得了他的授權,轉載如下(知乎連結見文末):

讀過AlphaGo Zero論文的同學,可能都驚訝於它的方法的簡單。另一方面,深度神經網路,是否能適用於國際象棋這樣的與圍棋存在諸多差異的棋類?MCTS(蒙特卡洛樹搜尋)能比得上alpha-beta搜尋嗎?許多研究者都曾對此表示懷疑。

但今天AlphaZero來了(https://arxiv.org/pdf/1712.01815.pdf),它破除了一切懷疑,通過使用與AlphaGo Zero一模一樣的方法(同樣是MCTS+深度網路,實際還做了一些簡化),它從零開始訓練:

在訓練後,它面對Stockfish取得100盤不敗的恐怖戰績,而且比之前的AlphaGo Zero也更為強大(根據論文後面的表格,訓練34小時的AlphaZero勝過訓練72小時的AlphaGo Zero)。

這令人震驚,因為此前大家都認為Stockfish已趨於完美,它的程式碼中有無數人類精心構造的演算法技巧。

然而,現在Stockfish就像一位武術大師,碰上了用槍的AlphaZero,被一槍斃命。

喜歡國象的同學注意了:AlphaZero不喜歡西西里防禦。

訓練過程極其簡單粗暴。超引數,網路架構都不需要調整。無腦上算力,就能解決一切問題。

Stockfish和Elmo,每秒種需要搜尋高達幾千萬個局面。

AlphaZero每秒種僅需搜尋幾萬個局面,就將他們碾壓。深度網路真是狂拽炫酷。

b03f3154289609ea13de471353acb333a5692460

當然,訓練AlphaZero所需的計算資源也是海量的。這次DeepMind直接說了,需要5000個TPU v1作為生成自對弈棋譜。

不過,隨著硬體的發展,這樣的計算資源會越來越普及。未來的AI會有多強大,確實值得思考。

個人一直認為,MCTS+深度網路是非常強的組合,因為MCTS可為深度網路補充邏輯性。我預測,這個組合未來會在更多場合顯示威力,例如有可能真正實現自動寫程式碼,自動數學證明。

為什麼說程式設計和數學,因為這兩個領域和下棋一樣,都有明確的規則和目標,有可模擬的環境。(在此之前,深度學習的調參黨和架構黨估計會先被幹掉...... 目前很多灌水論文,電腦以後自己都可以寫出來。)

也許在5到20年內,我們會看到《Mastering Programming and Mathematics by General Reinforcement Learning》。然後許多人都要自謀出路了......

一個通用強化學習演算法,橫跨多個高難度領域,實現超人效能

David Silver曾經說過,強化學習+深度學習=人工智慧(RL+DL=AI)。而深度強化學習也是DeepMind一直以來致力探索的方向。AlphaZero論文也體現了這個思路。論文題目是《用通用強化學習自我對弈,掌握國際象棋和將棋》。可以看見,AlphaGo Zero的作者Julian Schrittwieser也在其中。

20ed6c3174aa33704175359af285c4de358392e0

摘要:國際象棋是人工智慧史上最被廣泛研究的領域。最強大的象棋程式是基於複雜的搜尋技術、特定領域適應性以及人工評估函式的結合,這些函式在過去幾十年裡由人類專家不斷完善改進。相比之下,AlphaGo Zero最近在圍棋中取得了超越人類的成績,利用的是自我下棋的“白板”強化學習(譯註:tabula rasa,意為“白板”,指所有知識均由感官和經驗而來,即從零開始的學習)。在這篇論文中,我們將這種方法推廣到一個單一的AlphaZero演算法,它可以在多個具有挑戰性的領域實現超越人類的效能,同樣是以“白板”的學習方式。從隨機下棋開始,除了遊戲規則之外,沒有給它任何專門領域的知識,AlphaZero在24小時內實現了在國際象棋、日本將棋和圍棋上超越人類水平的表現,並且在這三種棋都以令人信服的成績擊敗了當前世界冠軍的程式。

對計算機國際象棋的研究和電腦科學一樣古老。巴貝奇、圖靈、夏農和馮·諾依曼都設計過硬體、演算法和理論來分析國際象棋,以及下國際象棋。象棋後來成為了一代人工智慧研究者的挑戰性任務,在高效能的計算機的助力下,象棋程式達到了頂峰,超越了人類的水平。然而,這些系統高度適應它們的領域,如果沒有大量的人力投入,就不能歸納到其他問題。

人工智慧的長期目標是創造出可以從最初的原則自我學習的程式。最近,AlphaGo Zero演算法通過使用深度卷積神經網路來表示圍棋知識,僅通過自我對弈的強化學習來訓練,在圍棋中實現了超越人類的表現。在本文中,除了遊戲規則之外,我們還應用了一個類似的但是完全通用的演算法,我們把這個演算法稱為AlphaZero,除了遊戲規則之外,沒有給它任何額外的領域知識,這個演算法證明了一個通用的強化學習演算法可以跨越多個具有挑戰性的領域實現超越人類的效能,並且是以“白板”(tabula rasa)的方式

1997年,“深藍”在國際象棋上擊敗了人類世界冠軍,這是人工智慧的一個里程碑。計算機國際象棋程式在自那以後的20多年裡繼續穩步超越人類水平。這些程式使用人類象棋大師的知識和仔細調整的權重來評估落子位置,並結合高效能的alpha-beta搜尋函式,利用大量的啟發式和領域特定的適應性來擴充套件巨大的搜尋樹。我們描述了這些增強方法,重點關注2016年TCEC世界冠軍Stockfish;其他強大的國際象棋程式,包括深藍,使用的是非常相似的架構。

在計算複雜性方面,將棋比國際象棋更難:在更大的棋盤上進行比賽,任何被俘的對手棋子都會改變方向,隨後可能會掉到棋盤的任何位置。計算機將棋協會(CSA)的世界冠軍Elmo等最強大的將棋程式,直到最近才擊敗了人類冠軍。這些程式使用與計算機國際象棋程式類似的演算法,再次基於高度優化的alpha-beta搜尋引擎,並具有許多特定領域的適應性。

圍棋非常適合AlphaGo中使用的神經網路架構,因為遊戲規則是平移不變的(匹配卷積網路的權重共享結構),是根據棋盤上落子點之間的相鄰點的自由度來定義的,並且是旋轉和反射對稱的(允許資料增加和合成)。此外,動作空間很簡單(可以在每個可能的位置放置一個棋子),而且遊戲結果僅限於二元輸贏,這兩者都可能有助於神經網路的訓練。

國際象棋和將棋可能不太適合AlphaGo的神經網路架構。這些規則是依賴於位置的(例如棋子可以從第二級向前移動兩步,在第八級晉級)和不對稱的(例如棋子只向前移動,而王翼和後翼易位則不同)。規則包括遠端互動(例如,女王可能在一步之內穿過棋盤,或者從棋盤的遠側將死國王)。國際象棋的行動空間包括棋盤上所有棋手的所有符合規則的目的地;將棋也可以將被吃掉的棋子放回棋盤上。國際象棋和將棋都可能造成勝負之外的平局;實際上,人們認為國際象棋的最佳解決方案就是平局。

AlphaZero:更通用的AlphaGo Zero

AlphaZero演算法是AlphaGo Zero演算法更通用的版本。它用深度神經網路和白板(tabula rasa)強化學習演算法,替代傳統遊戲程式中所使用的手工編碼知識和領域特定增強。

AlphaZero不使用手工編碼評估函式和移動排序啟發式演算法,而是利用引數為θ的深度神經網路(p,v)=fθ(s)。這個神經網路把棋盤的位置作為輸入,輸出一個落子移動概率向量p,其中每個動作a的分量為pa = Pr(a | s),標量值v根據位置s估計預期結果z,v ≈E [L| S]。AlphaZero完全從自我對弈中學習這些移動概率和價值估計,然後用學到的東西來指導其搜尋。

AlphaZero使用通用的蒙特卡洛樹搜尋(MCTS)演算法。每個搜尋都包含一系列自我對弈模擬,模擬時會從根節點到葉節點將一棵樹遍歷。每次模擬都是通過在每個狀態s下,根據當前的神經網路fθ,選擇一步棋的走法移動a,這一步具有低訪問次數、高移動概率和高的價值(這些值是從s中選擇a的模擬葉節點狀態上做了平均的)。搜尋返回一個向量π,表示移動的概率分佈。

AlphaZero中的深度神經網路引數θ通過自我對弈強化學習(self-play reinforcement learning)來訓練,從隨機初始化引數θ開始。遊戲中,MCTS輪流為雙方選擇下哪步棋,at〜πt。遊戲結束時,根據遊戲規則,按照最終的位置sT進行評分,計算結果z:z為-1為輸,0為平局,+1為贏。在反覆自我對弈過程中,不斷更新神經網路的引數θ,讓預測結果vt和遊戲結果z之間的誤差最小化,同時使策略向量pt與搜尋概率πt的相似度最大化。具體說,引數θ通過在損失函式l上做梯度下降進行調整,這個損失函式l是均方誤差和交叉熵損失之和。

852093c971043dcea3e101e609a737434c193e2b

其中,c是控制L2權重正則化水平的引數。更新的引數將被用於之後的自我對弈當中。

AlphaZero與AlphaGo Zero的4大不同

AlphaZero演算法與原始的AlphaGo Zero演算法有以下幾大不同:

1、AlphaGo Zero是在假設結果為贏/輸二元的情況下,對獲勝概率進行估計和優化。而AlphaZero會將平局或其他潛在結果也納入考慮,對結果進行估計和優化

2、AlphaGo和AlphaGo Zero會轉變棋盤位置進行資料增強,而AlphaZero不會。根據圍棋的規則,棋盤發生旋轉和反轉結果都不會發生變化。對此,AlphaGo和AlphaGo Zero使用兩種方式應對。首先,為每個位置生成8個對稱影象來增強訓練資料。其次,在MCTS期間,棋盤位置在被神經網路評估前,會使用隨機選擇的旋轉或反轉進行轉換,以便MonteCarlo評估在不同的偏差上進行平均。而在國際象棋和將棋中,棋盤是不對稱的,一般來說對稱也是不可能的。因此,AlphaZero不會增強訓練資料,也不會在MCTS期間轉換棋盤位置。

3、在AlphaGo Zero中,自我對弈是由以前所有迭代中最好的玩家生成的。而這個“最好的玩家”是這樣選擇出來的:每次訓練結束後,都會比較新玩家與最佳玩家;如果新玩家以55%的優勢獲勝,那麼它將成為新的最佳玩家,自我對弈也將由這個新玩家產生的。AlphaZero只維護單一的一個神經網路,這個神經網路不斷更新,而不是等待迭代完成。自我對弈是通過使用這個神經網路的最新引數生成的,省略了評估步驟和選擇最佳玩家的過程。

4、使用的超引數不同:AlphaGo Zero通過貝葉斯優化調整搜尋的超引數;AlphaZero中,所有對弈都重複使用相同的超引數,因此無需進行鍼對特定某種遊戲的調整。唯一的例外是為保證探索而新增到先驗策略中的噪音;這與棋局型別典型移動數量成比例。

奢華的計算資源:5000個第一代TPU,64個第二代TPU,碾壓其他棋類AI

像AlphaGo Zero一樣,棋盤狀態僅由基於每個遊戲的基本規則的空間平面編碼。下棋的行動則是由空間平面或平面向量編碼,也是僅基於每種遊戲的基本規則。

作者將AlphaZero應用在國際象棋、將棋和圍棋中,都使用同樣的演算法設定、網路架構和超引數。他們為每一種棋都單獨訓練了一個AlphaZero。訓練進行了700,000步(minibatch大小為4096),從隨機初始化的引數開始,使用5000個第一代TPU生成自我對弈,使用64個第二代TPU訓練神經網路

下面的圖1展示了AlphaZero在自我對弈強化學習中的效能。下國際象棋,AlphaZero僅用了4小時(300k步)就超越了Stockfish;下將棋,AlphaZero僅用了不到2小時(110k步)就超越了Elmo;下圍棋,AlphaZero不到8小時(165k步)就超越了李世石版的AlphaGo。

35b7abc3571f1f28413d0badb53f5f63e5fa74e3

圖1:訓練AlphaZero 70萬步。Elo 等級分是根據不同玩家之間的比賽評估計算得出的,每一步棋有1秒的思考時間。a. AlphaZero在國際象棋上的表現,與2016 TCEC世界冠軍程式Stockfish對局;b. AlphaZero在將棋上的表現,與2017 CSA世界冠軍程式Elmo對局;c. AlphaZero在圍棋上的表現,與AlphaGo Lee和AlphaGo Zero(20 block / 3 天)對戰。


23bd76fdb13a4e7e66928a0ef716a98dde5dbf7f

表1:AlphaZero視角下,在比賽中贏,平局或輸的局數。經過3天的訓練,AlphaZero分別與Stockfish,Elmo以及之前釋出的AlphaGo Zero在國際象棋、將棋和圍棋分別進行100場比賽。每個AI每步棋都有1分鐘的思考時間。

他們還使用完全訓練好的AlphaZero與Stockfish、Elmo和AlphaGo Zero(訓練了3天)分別在國際象棋、將棋和圍棋中對比,對局100回,每下一步的時長控制在1分鐘。AlphaZero和前一版AlphaGo Zero使用一臺帶有4個TPU的機器訓練。Stockfish和Elmo都使用最強版本,使用64線1GB hash的機器。AlphaZero擊敗了所有選手,與Stockfish對戰全勝,與Elmo對戰輸了8局。

此外,他們還比較了Stockfish和Elmo使用的state-of-the-art alpha-beta搜尋引擎,分析了AlphaZero的MCTS搜尋的相對效能。AlphaZero在國際象棋中每秒搜尋8萬個局面(position),在將棋中搜尋到4萬個。相比之下,Stockfish每秒搜尋7000萬個,Elmo每秒能搜尋3500萬個局面。AlphaZero通過使用深度神經網路,更有選擇性地聚焦在最有希望的變化上來補償較低數量的評估,就像夏農最初提出的那樣,是一種更“人性化”的搜尋方法。圖2顯示了每個玩家相對於思考時間的可擴充套件性,通過Elom量表衡量,相對於Stockfish或者Elmo 40ms的思考時間。AlphaZero的MCTS的思維時間比Stockfish或Elmo更有效,這對人們普遍持有的觀點,也即認為alpha-beta搜尋在這些領域本質上具有優越性,提出了質疑。

ca26905207b5f115d28368d7a8f0633eb3d8c0bd

圖2:用每步棋的思考時間來衡量AlphaZero的可擴充套件性,以Elo作為衡量標準。a. 在國際象棋中,AlphaZero和Stockfish的表現,橫軸表示每步棋的思考時間。b. 在將棋中,AlphaZero和Elmo的表現,橫軸表示每步棋的思考時間。

分析10萬+人類開局,AlphaZero確實掌握了國際象棋,alpha-beta搜尋並非不可超越

最後,我們分析了AlphaZero發現的國際象棋知識。表2分析了人類最常用的開局方式(在人類國際象棋遊戲線上資料庫中玩過超過10萬次的opening)。在自我訓練期間,這些開局方式被AlphaZero獨立地發現和對弈。以每個人類開局方式為開始,AlphaZero徹底擊敗Stockfish,表明它確實掌握了廣泛的國際象棋知識。

10e8aef2480d7a067dc4559a220337d73e7eec5f

表2:對12種最受歡迎的人類的開局(在一個線上資料庫的出現次數超過10萬次)的分析。每個開局都用ECO程式碼和通用名稱標記。這張圖顯示了自我對弈的比例,其中AlphaZero都是先手。

在過去的幾十年裡,國際象棋代表了人工智慧研究的頂峰。State-of-the-art的程式是建立在強大的engine的基礎上的,這些engine可以搜尋數以百萬計的位置,利用人工的特定領域的專業知識和複雜的領域適應性。

AlphaZero是一種通用的強化學習演算法,最初是為了圍棋而設計的,它在幾小時內取得了優異AI的成績,搜尋次數減少了1000倍,而且除了國際象棋的規則外,不需要任何領域知識。此外,同樣的演算法在沒有修改的情況下,也適用於更有挑戰性的遊戲,在幾小時內再次超越了當前最先進的水平


原文連結


相關文章