或許“智能爆炸”不會發(fā)生,但永遠(yuǎn)不要低估人工智能的發(fā)展。推出最強圍棋AI AlphaGo Zero不到50天,DeepMind又一次超越了他們自己,也刷新了世人對人工智能的認(rèn)知。12月5日,包括David Silver、Demis Hassabis等人在內(nèi)的DeepMind團隊發(fā)表論文,提出通用棋類AI AlphaZero,從零開始訓(xùn)練,除了基本規(guī)則沒有任何其他知識,4小時擊敗最強國際象棋AI、2小時擊敗最強將棋AI,8小時擊敗李世石版AlphaGo,連最強圍棋AI AlphaGo Zero也不能幸免:訓(xùn)練34小時的AlphaZero勝過了訓(xùn)練72小時的AlphaGo Zero。
由于是通用棋類AI,因此去掉了代表圍棋的英文“Go”,沒有使用人類知識,從零開始訓(xùn)練,所以用Zero,兩相結(jié)合得到“AlphaZero”,這個新AI強在哪里?
世界最強圍棋AI AlphaGo Zero帶給世人的震撼并沒有想象中那么久——不是因為大家都去看誰(沒)跟誰吃飯了,而是DeepMind再次迅速超越了他們自己,超越了我們剩下所有人的想象。
12月5日,距離發(fā)布AlphaGo Zero論文后不到兩個月,他們在arXiv上傳最新論文《用通用強化學(xué)習(xí)算法自我對弈,掌握國際象棋和將棋》(Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm),用看似平淡的標(biāo)題,平淡地拋出一個炸彈。
其中,DeepMind團隊描述了一個通用棋類AI“AlphaZero”,在不同棋類游戲中,戰(zhàn)勝了所有對手,而這些對手都是各自領(lǐng)域的頂級AI:
戰(zhàn)勝最強國際象棋AI Stockfish:28勝,0負(fù),72平;
戰(zhàn)勝最強將棋AI Elmo:90勝,2平,8負(fù);
戰(zhàn)勝最強圍棋AI AlphaGo Zero:60勝,40負(fù)
其中,Stockfish是世界上最強的國際象棋引擎之一,它比最好的人類國際象棋大師還要強大得多。與大多數(shù)國際象棋引擎不同,Stockfish是開源的(GPL license)。用戶可以閱讀代碼,進行修改,回饋,甚至在自己的項目中使用它,而這也是它強大的一個原因。
將棋AI Elmo的開發(fā)者是日本人瀧澤城,在第27屆世界計算機將棋選手權(quán)賽中獲得優(yōu)勝。Elmo的策略是在對戰(zhàn)中搜索落子在哪個位置勝率更高,判斷對戰(zhàn)形勢,進而調(diào)整策略。Elmo名字的由來是electric monkey(電動猴子,越來越強大之意),根據(jù)作者的說法也有elastic monkey(橡皮猴子,愈挫愈勇)之意。
而AlphaGo Zero更是不必介紹,相信“阿法元”之名已經(jīng)傳遍中國大江南北。而AlphaZero在訓(xùn)練34小時后,也勝過了訓(xùn)練72小時的AlphaGo Zero。
AlphaZero橫空出世,網(wǎng)上已經(jīng)炸開了鍋,Reddit網(wǎng)友紛紛評論:AlphaZero已經(jīng)不是機器的棋了,是神仙棋,非常優(yōu)美,富有策略性,更能深刻地謀劃(maneuver),完全是在調(diào)戲Stockfish。
看著AlphaZero贏,簡直太不可思議了!這根本就不是計算機,這壓根兒就是人??!
Holy fu*ck,第9場比賽太特么瘋狂了!
DeepMind太神了!
我的神?。∷谷恢煌鎑4/c4。總體上來看,它似乎比我們訓(xùn)練的要少得多。
這條消息太瘋狂了。
而知乎上,短短幾小時內(nèi)也有很多評論:
知乎用戶fffasttime:專治各種不服的DeepMind又出師了,但這次的主攻的內(nèi)容不再是圍棋了,而是所有的棋類游戲?!癆lphaGo把圍棋界打得心態(tài)崩了,而現(xiàn)在AlphaZero贏的不光是人類棋手,還包括各路象棋的AI作者。
知乎用戶陸君慨:棋類的解決框架一直都是基于 minimax + heuristic。以前圍棋難是因為minimax在有著很大分支的游戲上無法產(chǎn)生足夠的深度,并且heuristic難以設(shè)計。Alphago Zero時候就已經(jīng)證明了cnn很適合做heuristic,而mcts也可以解決深度問題。那為什么別人不做呢?
因為貧窮限制了我們的想象力。
有錢真的是可以為所欲為。
比AlphaGo Zero更強的AlphaZero來了!8小時解決一切棋類!
知乎用戶PENG Bo迅速就發(fā)表了感慨,我們?nèi)〉昧怂氖跈?quán),轉(zhuǎn)載如下(知乎鏈接見文末):
讀過AlphaGo Zero論文的同學(xué),可能都驚訝于它的方法的簡單。另一方面,深度神經(jīng)網(wǎng)絡(luò),是否能適用于國際象棋這樣的與圍棋存在諸多差異的棋類?MCTS(蒙特卡洛樹搜索)能比得上alpha-beta搜索嗎?許多研究者都曾對此表示懷疑。
但今天AlphaZero來了(https://arxiv.org/pdf/1712.01815.pdf),它破除了一切懷疑,通過使用與AlphaGo Zero一模一樣的方法(同樣是MCTS+深度網(wǎng)絡(luò),實際還做了一些簡化),它從零開始訓(xùn)練:
4小時就打敗了國際象棋的最強程序Stockfish!
2小時就打敗了日本將棋的最強程序Elmo!
8小時就打敗了與李世石對戰(zhàn)的AlphaGo v18!
在訓(xùn)練后,它面對Stockfish取得100盤不敗的恐怖戰(zhàn)績,而且比之前的AlphaGo Zero也更為強大(根據(jù)論文后面的表格,訓(xùn)練34小時的AlphaZero勝過訓(xùn)練72小時的AlphaGo Zero)。
這令人震驚,因為此前大家都認(rèn)為Stockfish已趨于完美,它的代碼中有無數(shù)人類精心構(gòu)造的算法技巧。
然而,現(xiàn)在Stockfish就像一位武術(shù)大師,碰上了用槍的AlphaZero,被一槍斃命。
喜歡國象的同學(xué)注意了:AlphaZero不喜歡西西里防御。
訓(xùn)練過程極其簡單粗暴。超參數(shù),網(wǎng)絡(luò)架構(gòu)都不需要調(diào)整。無腦上算力,就能解決一切問題。
Stockfish和Elmo,每秒種需要搜索高達幾千萬個局面。
AlphaZero每秒種僅需搜索幾萬個局面,就將他們碾壓。深度網(wǎng)絡(luò)真是狂拽炫酷。
當(dāng)然,訓(xùn)練AlphaZero所需的計算資源也是海量的。這次DeepMind直接說了,需要5000個TPU v1作為生成自對弈棋譜。
不過,隨著硬件的發(fā)展,這樣的計算資源會越來越普及。未來的AI會有多強大,確實值得思考。
個人一直認(rèn)為,MCTS+深度網(wǎng)絡(luò)是非常強的組合,因為MCTS可為深度網(wǎng)絡(luò)補充邏輯性。我預(yù)測,這個組合未來會在更多場合顯示威力,例如有可能真正實現(xiàn)自動寫代碼,自動數(shù)學(xué)證明。
為什么說編程和數(shù)學(xué),因為這兩個領(lǐng)域和下棋一樣,都有明確的規(guī)則和目標(biāo),有可模擬的環(huán)境。(在此之前,深度學(xué)習(xí)的調(diào)參黨和架構(gòu)黨估計會先被干掉...... 目前很多灌水論文,電腦以后自己都可以寫出來。)
也許在5到20年內(nèi),我們會看到《Mastering Programming and Mathematics by General Reinforcement Learning》。然后許多人都要自謀出路了......
一個通用強化學(xué)習(xí)算法,橫跨多個高難度領(lǐng)域,實現(xiàn)超人性能
David Silver曾經(jīng)說過,強化學(xué)習(xí)+深度學(xué)習(xí)=人工智能(RL+DL=AI)。而深度強化學(xué)習(xí)也是DeepMind一直以來致力探索的方向。AlphaZero論文也體現(xiàn)了這個思路。論文題目是《用通用強化學(xué)習(xí)自我對弈,掌握國際象棋和將棋》??梢钥匆?,AlphaGo Zero的作者Julian Schrittwieser也在其中。
![]() |
對計算機國際象棋的研究和計算機科學(xué)一樣古老。巴貝奇、圖靈、香農(nóng)和馮·諾依曼都設(shè)計過硬件、算法和理論來分析國際象棋,以及下國際象棋。象棋后來成為了一代人工智能研究者的挑戰(zhàn)性任務(wù),在高性能的計算機的助力下,象棋程序達到了頂峰,超越了人類的水平。然而,這些系統(tǒng)高度適應(yīng)它們的領(lǐng)域,如果沒有大量的人力投入,就不能歸納到其他問題。
人工智能的長期目標(biāo)是創(chuàng)造出可以從最初的原則自我學(xué)習(xí)的程序。最近,AlphaGo Zero算法通過使用深度卷積神經(jīng)網(wǎng)絡(luò)來表示圍棋知識,僅通過自我對弈的強化學(xué)習(xí)來訓(xùn)練,在圍棋中實現(xiàn)了超越人類的表現(xiàn)。在本文中,除了游戲規(guī)則之外,我們還應(yīng)用了一個類似的但是完全通用的算法,我們把這個算法稱為AlphaZero,除了游戲規(guī)則之外,沒有給它任何額外的領(lǐng)域知識,這個算法證明了一個通用的強化學(xué)習(xí)算法可以跨越多個具有挑戰(zhàn)性的領(lǐng)域?qū)崿F(xiàn)超越人類的性能,并且是以“白板”(tabula rasa)的方式。
1997年,“深藍(lán)”在國際象棋上擊敗了人類世界冠軍,這是人工智能的一個里程碑。計算機國際象棋程序在自那以后的20多年里繼續(xù)穩(wěn)步超越人類水平。這些程序使用人類象棋大師的知識和仔細(xì)調(diào)整的權(quán)重來評估落子位置,并結(jié)合高性能的alpha-beta搜索函數(shù),利用大量的啟發(fā)式和領(lǐng)域特定的適應(yīng)性來擴展巨大的搜索樹。我們描述了這些增強方法,重點關(guān)注2016年TCEC世界冠軍Stockfish;其他強大的國際象棋程序,包括深藍(lán),使用的是非常相似的架構(gòu)。
在計算復(fù)雜性方面,將棋比國際象棋更難:在更大的棋盤上進行比賽,任何被俘的對手棋子都會改變方向,隨后可能會掉到棋盤的任何位置。計算機將棋協(xié)會(CSA)的世界冠軍Elmo等最強大的將棋程序,直到最近才擊敗了人類冠軍。這些程序使用與計算機國際象棋程序類似的算法,再次基于高度優(yōu)化的alpha-beta搜索引擎,并具有許多特定領(lǐng)域的適應(yīng)性。
圍棋非常適合AlphaGo中使用的神經(jīng)網(wǎng)絡(luò)架構(gòu),因為游戲規(guī)則是平移不變的(匹配卷積網(wǎng)絡(luò)的權(quán)重共享結(jié)構(gòu)),是根據(jù)棋盤上落子點之間的相鄰點的自由度來定義的,并且是旋轉(zhuǎn)和反射對稱的(允許數(shù)據(jù)增加和合成)。此外,動作空間很簡單(可以在每個可能的位置放置一個棋子),而且游戲結(jié)果僅限于二元輸贏,這兩者都可能有助于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
國際象棋和將棋可能不太適合AlphaGo的神經(jīng)網(wǎng)絡(luò)架構(gòu)。這些規(guī)則是依賴于位置的(例如棋子可以從第二級向前移動兩步,在第八級晉級)和不對稱的(例如棋子只向前移動,而王翼和后翼易位則不同)。規(guī)則包括遠(yuǎn)程互動(例如,女王可能在一步之內(nèi)穿過棋盤,或者從棋盤的遠(yuǎn)側(cè)將死國王)。國際象棋的行動空間包括棋盤上所有棋手的所有符合規(guī)則的目的地;將棋也可以將被吃掉的棋子放回棋盤上。國際象棋和將棋都可能造成勝負(fù)之外的平局;實際上,人們認(rèn)為國際象棋的最佳解決方案就是平局。
AlphaZero:更通用的AlphaGo Zero
AlphaZero算法是AlphaGo Zero算法更通用的版本。它用深度神經(jīng)網(wǎng)絡(luò)和白板(tabula rasa)強化學(xué)習(xí)算法,替代傳統(tǒng)游戲程序中所使用的手工編碼知識和領(lǐng)域特定增強。
AlphaZero不使用手工編碼評估函數(shù)和移動排序啟發(fā)式算法,而是利用參數(shù)為θ的深度神經(jīng)網(wǎng)絡(luò)(p,v)=fθ(s)。這個神經(jīng)網(wǎng)絡(luò)把棋盤的位置作為輸入,輸出一個落子移動概率矢量p,其中每個動作a的分量為pa = Pr(a | s),標(biāo)量值v根據(jù)位置s估計預(yù)期結(jié)果z,v ≈E [L| S]。AlphaZero完全從自我對弈中學(xué)習(xí)這些移動概率和價值估計,然后用學(xué)到的東西來指導(dǎo)其搜索。
AlphaZero使用通用的蒙特卡洛樹搜索(MCTS)算法。每個搜索都包含一系列自我對弈模擬,模擬時會從根節(jié)點到葉節(jié)點將一棵樹遍歷。每次模擬都是通過在每個狀態(tài)s下,根據(jù)當(dāng)前的神經(jīng)網(wǎng)絡(luò)fθ,選擇一步棋的走法移動a,這一步具有低訪問次數(shù)、高移動概率和高的價值(這些值是從s中選擇a的模擬葉節(jié)點狀態(tài)上做了平均的)。搜索返回一個向量π,表示移動的概率分布。
AlphaZero中的深度神經(jīng)網(wǎng)絡(luò)參數(shù)θ通過自我對弈強化學(xué)習(xí)(self-play reinforcement learning)來訓(xùn)練,從隨機初始化參數(shù)θ開始。游戲中,MCTS輪流為雙方選擇下哪步棋,at?πt。游戲結(jié)束時,根據(jù)游戲規(guī)則,按照最終的位置sT進行評分,計算結(jié)果z:z為-1為輸,0為平局,+1為贏。在反復(fù)自我對弈過程中,不斷更新神經(jīng)網(wǎng)絡(luò)的參數(shù)θ,讓預(yù)測結(jié)果vt和游戲結(jié)果z之間的誤差最小化,同時使策略向量pt與搜索概率πt的相似度最大化。具體說,參數(shù)θ通過在損失函數(shù)l上做梯度下降進行調(diào)整,這個損失函數(shù)l是均方誤差和交叉熵?fù)p失之和。
其中,c是控制L2權(quán)重正則化水平的參數(shù)。更新的參數(shù)將被用于之后的自我對弈當(dāng)中。
AlphaZero與AlphaGo Zero的4大不同
AlphaZero算法與原始的AlphaGo Zero算法有以下幾大不同:
1、AlphaGo Zero是在假設(shè)結(jié)果為贏/輸二元的情況下,對獲勝概率進行估計和優(yōu)化。而AlphaZero會將平局或其他潛在結(jié)果也納入考慮,對結(jié)果進行估計和優(yōu)化。
2、AlphaGo和AlphaGo Zero會轉(zhuǎn)變棋盤位置進行數(shù)據(jù)增強,而AlphaZero不會。根據(jù)圍棋的規(guī)則,棋盤發(fā)生旋轉(zhuǎn)和反轉(zhuǎn)結(jié)果都不會發(fā)生變化。對此,AlphaGo和AlphaGo Zero使用兩種方式應(yīng)對。首先,為每個位置生成8個對稱圖像來增強訓(xùn)練數(shù)據(jù)。其次,在MCTS期間,棋盤位置在被神經(jīng)網(wǎng)絡(luò)評估前,會使用隨機選擇的旋轉(zhuǎn)或反轉(zhuǎn)進行轉(zhuǎn)換,以便MonteCarlo評估在不同的偏差上進行平均。而在國際象棋和將棋中,棋盤是不對稱的,一般來說對稱也是不可能的。因此,AlphaZero不會增強訓(xùn)練數(shù)據(jù),也不會在MCTS期間轉(zhuǎn)換棋盤位置。
3、在AlphaGo Zero中,自我對弈是由以前所有迭代中最好的玩家生成的。而這個“最好的玩家”是這樣選擇出來的:每次訓(xùn)練結(jié)束后,都會比較新玩家與最佳玩家;如果新玩家以55%的優(yōu)勢獲勝,那么它將成為新的最佳玩家,自我對弈也將由這個新玩家產(chǎn)生的。AlphaZero只維護單一的一個神經(jīng)網(wǎng)絡(luò),這個神經(jīng)網(wǎng)絡(luò)不斷更新,而不是等待迭代完成。自我對弈是通過使用這個神經(jīng)網(wǎng)絡(luò)的最新參數(shù)生成的,省略了評估步驟和選擇最佳玩家的過程。
4、使用的超參數(shù)不同:AlphaGo Zero通過貝葉斯優(yōu)化調(diào)整搜索的超參數(shù);AlphaZero中,所有對弈都重復(fù)使用相同的超參數(shù),因此無需進行針對特定某種游戲的調(diào)整。唯一的例外是為保證探索而添加到先驗策略中的噪音;這與棋局類型典型移動數(shù)量成比例。
奢華的計算資源:5000個第一代TPU,64個第二代TPU,碾壓其他棋類AI
像AlphaGo Zero一樣,棋盤狀態(tài)僅由基于每個游戲的基本規(guī)則的空間平面編碼。下棋的行動則是由空間平面或平面矢量編碼,也是僅基于每種游戲的基本規(guī)則。
作者將AlphaZero應(yīng)用在國際象棋、將棋和圍棋中,都使用同樣的算法設(shè)置、網(wǎng)絡(luò)架構(gòu)和超參數(shù)。他們?yōu)槊恳环N棋都單獨訓(xùn)練了一個AlphaZero。訓(xùn)練進行了700,000步(minibatch大小為4096),從隨機初始化的參數(shù)開始,使用5000個第一代TPU生成自我對弈,使用64個第二代TPU訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
下面的圖1展示了AlphaZero在自我對弈強化學(xué)習(xí)中的性能。下國際象棋,AlphaZero僅用了4小時(300k步)就超越了Stockfish;下將棋,AlphaZero僅用了不到2小時(110k步)就超越了Elmo;下圍棋,AlphaZero不到8小時(165k步)就超越了李世石版的AlphaGo。
圖1:訓(xùn)練AlphaZero 70萬步。Elo 等級分是根據(jù)不同玩家之間的比賽評估計算得出的,每一步棋有1秒的思考時間。a. AlphaZero在國際象棋上的表現(xiàn),與2016 TCEC世界冠軍程序Stockfish對局;b. AlphaZero在將棋上的表現(xiàn),與2017 CSA世界冠軍程序Elmo對局;c. AlphaZero在圍棋上的表現(xiàn),與AlphaGo Lee和AlphaGo Zero(20 block / 3 天)對戰(zhàn)。
表1:AlphaZero視角下,在比賽中贏,平局或輸?shù)木謹(jǐn)?shù)。經(jīng)過3天的訓(xùn)練,AlphaZero分別與Stockfish,Elmo以及之前發(fā)布的AlphaGo Zero在國際象棋、將棋和圍棋分別進行100場比賽。每個AI每步棋都有1分鐘的思考時間。
他們還使用完全訓(xùn)練好的AlphaZero與Stockfish、Elmo和AlphaGo Zero(訓(xùn)練了3天)分別在國際象棋、將棋和圍棋中對比,對局100回,每下一步的時長控制在1分鐘。AlphaZero和前一版AlphaGo Zero使用一臺帶有4個TPU的機器訓(xùn)練。Stockfish和Elmo都使用最強版本,使用64線1GB hash的機器。AlphaZero擊敗了所有選手,與Stockfish對戰(zhàn)全勝,與Elmo對戰(zhàn)輸了8局。
此外,他們還比較了Stockfish和Elmo使用的state-of-the-art alpha-beta搜索引擎,分析了AlphaZero的MCTS搜索的相對性能。AlphaZero在國際象棋中每秒搜索8萬個局面(position),在將棋中搜索到4萬個。相比之下,Stockfish每秒搜索7000萬個,Elmo每秒能搜索3500萬個局面。AlphaZero通過使用深度神經(jīng)網(wǎng)絡(luò),更有選擇性地聚焦在最有希望的變化上來補償較低數(shù)量的評估,就像香農(nóng)最初提出的那樣,是一種更“人性化”的搜索方法。圖2顯示了每個玩家相對于思考時間的可擴展性,通過Elom量表衡量,相對于Stockfish或者Elmo 40ms的思考時間。AlphaZero的MCTS的思維時間比Stockfish或Elmo更有效,這對人們普遍持有的觀點,也即認(rèn)為alpha-beta搜索在這些領(lǐng)域本質(zhì)上具有優(yōu)越性,提出了質(zhì)疑。
圖2:用每步棋的思考時間來衡量AlphaZero的可擴展性,以Elo作為衡量標(biāo)準(zhǔn)。a. 在國際象棋中,AlphaZero和Stockfish的表現(xiàn),橫軸表示每步棋的思考時間。b. 在將棋中,AlphaZero和Elmo的表現(xiàn),橫軸表示每步棋的思考時間。
分析10萬+人類開局,AlphaZero確實掌握了國際象棋,alpha-beta搜索并非不可超越
最后,我們分析了AlphaZero發(fā)現(xiàn)的國際象棋知識。表2分析了人類最常用的開局方式(在人類國際象棋游戲在線數(shù)據(jù)庫中玩過超過10萬次的opening)。在自我訓(xùn)練期間,這些開局方式被AlphaZero獨立地發(fā)現(xiàn)和對弈。以每個人類開局方式為開始,AlphaZero徹底擊敗Stockfish,表明它確實掌握了廣泛的國際象棋知識。
表2:對12種最受歡迎的人類的開局(在一個在線數(shù)據(jù)庫的出現(xiàn)次數(shù)超過10萬次)的分析。每個開局都用ECO代碼和通用名稱標(biāo)記。這張圖顯示了自我對弈的比例,其中AlphaZero都是先手。
在過去的幾十年里,國際象棋代表了人工智能研究的頂峰。State-of-the-art的程序是建立在強大的engine的基礎(chǔ)上的,這些engine可以搜索數(shù)以百萬計的位置,利用人工的特定領(lǐng)域的專業(yè)知識和復(fù)雜的領(lǐng)域適應(yīng)性。
AlphaZero是一種通用的強化學(xué)習(xí)算法,最初是為了圍棋而設(shè)計的,它在幾小時內(nèi)取得了優(yōu)異的成績,搜索次數(shù)減少了1000倍,而且除了國際象棋的規(guī)則外,不需要任何領(lǐng)域知識。此外,同樣的算法在沒有修改的情況下,也適用于更有挑戰(zhàn)性的游戲,在幾小時內(nèi)再次超越了當(dāng)前最先進的水平。
-
AI
+關(guān)注
關(guān)注
87文章
31753瀏覽量
270544 -
AlphaGo
+關(guān)注
關(guān)注
3文章
79瀏覽量
27856
原文標(biāo)題:【重磅】AlphaZero煉成最強通用棋類AI,DeepMind強化學(xué)習(xí)算法8小時完爆人類棋類游戲
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論