AI 科技評論報道:今天 DeepMind 悄悄放出了一篇新論文,介紹了一個「AlphaZero」。一開始我們差點(diǎn)以為 DeepMind 也學(xué)會炒冷飯了,畢竟「從零開始學(xué)習(xí)」的 AlphaGo Zero 論文 10 月就發(fā)出來、大家已經(jīng)討論了許多遍了。
可定睛一看,這次的 AlphaZero 不是以前那個只會下圍棋的人工智能了,它是通用的,國際象棋、日本象棋也會下,所以去掉了名字里表示圍棋的「Go」;不僅如此,圍棋還下得比上次的 AlphaGo Zero 還要好——柯潔在得知 AlphaGo Zero 之后已經(jīng)感嘆道人類是多余的了,這次一眾圍棋選手可以牽著國際象棋選手們再痛哭一次了。
從技術(shù)的角度講,一個通用的強(qiáng)化學(xué)習(xí)模型還比之前的已經(jīng)足夠簡單的專用于下圍棋的模型表現(xiàn)更好?「沒有免費(fèi)的午餐」定律難道失效了?
AlphaGo 的這一路進(jìn)化中,我們見證了 DeepMind 的工程師們對深度強(qiáng)化學(xué)習(xí)本質(zhì)的思考和嘗試,也看到了不斷的優(yōu)化中帶來的無需先驗(yàn)知識、降低資源消耗、提高訓(xùn)練速度等等可喜的技術(shù)進(jìn)步?,F(xiàn)在,在 AlphaGo Zero 論文發(fā)布的一個多月之后,在我們覺得 AlphaGo Zero 已經(jīng)成為盡善盡美的圍棋之神的時候,DeepMind 又悄悄地放出了一篇新論文。這次 DeepMind 去掉了「AlphaGo Zero」中表示圍棋的「Go」,這是一個更通用的、能下各種棋類的、而且在圍棋中的表現(xiàn)更上一層樓的通用強(qiáng)化學(xué)習(xí)模型,「AlphaZero」。
過往幾個版本的 AlphaGo Zero 大家想必都比較熟悉了,不過我們還是簡單回顧一下,方便和新的 AlphaZero 對比。AlphaGo 中一直都有深度有限的蒙特卡羅樹搜索(MCTS),然后主要靠策略網(wǎng)絡(luò)和價值網(wǎng)絡(luò)分別預(yù)測下一步落子的點(diǎn)以及評估當(dāng)前的局勢。在更早版本的 AlphaGo 中,策略網(wǎng)絡(luò)和價值網(wǎng)絡(luò)是兩個不同的深度神經(jīng)網(wǎng)絡(luò),Zero 版本中是同一個 ResNet 的兩組輸出;AlphaGo Zero 之前幾個版本中都需要先把局面轉(zhuǎn)換為高一層的人工特征再作為網(wǎng)絡(luò)的輸入、需要先學(xué)習(xí)人類棋譜再轉(zhuǎn)變到自我對弈的強(qiáng)化學(xué)習(xí)、有一個單獨(dú)的快速走子網(wǎng)絡(luò)進(jìn)行隨機(jī)模擬,AlphaGo Zero 則把局面落子情況直接作為網(wǎng)絡(luò)的輸入、由隨機(jī)的網(wǎng)絡(luò)權(quán)值直接開始強(qiáng)化學(xué)習(xí)、舍棄快速走子網(wǎng)絡(luò)直接用主要的神經(jīng)網(wǎng)絡(luò)模擬走子??梢钥吹?,AlphaGo Zero 的思路和模型結(jié)構(gòu)都得到了大幅度簡化,帶來的是更快的訓(xùn)練和運(yùn)行速度,以及更高的棋力。而這樣簡單的模型就能帶來這樣好的結(jié)果,也是讓研究者們對 AlphaGo Zero 發(fā)出驚嘆的原因。
如何從圍棋到更多
其實(shí)一直以來人們在編寫下棋的 AI 的過程中,都會針對每一種棋的不同特點(diǎn)設(shè)計一些專門的技巧在其中。AlphaGo Zero 中實(shí)現(xiàn)策略和價值兩個網(wǎng)絡(luò)的帶有殘差的 CNN 網(wǎng)絡(luò)其實(shí)剛好就利用到了圍棋的一些特點(diǎn):比賽規(guī)則是平移不變的,這和卷積神經(jīng)網(wǎng)絡(luò)的共享權(quán)值相吻合;棋子的氣和卷積網(wǎng)絡(luò)的局部結(jié)構(gòu)相吻合;整張棋盤是旋轉(zhuǎn)、對稱不變的,在訓(xùn)練中可以方便地運(yùn)用現(xiàn)有的數(shù)據(jù)增強(qiáng)和組合方法;動作空間簡單,只需要在一個位置落單一類別的棋子;結(jié)果空間簡單,要么是贏,要么是輸,沒有平局。以上種種特點(diǎn)都可以幫助 AlphaGo Zero 順利、快速地訓(xùn)練。
現(xiàn)在 DeepMind 的研究人員們想要把 AlphaGo Zero 變成更通用化、能下更多不同棋的算法時候,就需要重新思考其中的一些處理方法。比如國際象棋和日本象棋中,如何走子高度取決于當(dāng)前的子所在的位置,而每個子又有各自不同的走法;棋盤的局勢是不可旋轉(zhuǎn)、不可鏡像的,這會影響行棋的方向;象棋可以有平局;日本象棋中甚至可以把捕獲的對手的棋子重新放到棋盤上來。相比圍棋,這些特點(diǎn)都讓計算過程變得更復(fù)雜、更不適合 AlphaGo Zero 這樣的 CNN 網(wǎng)絡(luò)。相比之下,2016 年世界象棋算法錦標(biāo)賽(TCEC)的冠軍 Stockfish 就是一個使用人類高手的手工特征、精細(xì)調(diào)節(jié)過的權(quán)重、alpha-beta 剪枝算法、加上大規(guī)模啟發(fā)式搜索和不少專門的國際象棋適配的程序。最近剛剛擊敗了人類日本圍棋冠軍的最強(qiáng)算法 Elmo 也是差不多的情況。
AlphaZero 是 AlphaGo Zero 的通用化進(jìn)化版本,它繼續(xù)保持了 AlphaGo Zero 中不需要人工特征、利用深度神經(jīng)網(wǎng)絡(luò)從零開始進(jìn)行強(qiáng)化學(xué)習(xí)、結(jié)合蒙特卡洛樹搜索的特點(diǎn),然后更新網(wǎng)絡(luò)參數(shù),減小網(wǎng)絡(luò)估計的比賽結(jié)果和實(shí)際結(jié)果之間的誤差,同時最大化策略網(wǎng)絡(luò)輸出動作和蒙特卡洛樹搜索可能性之間的相似度。
AlphaZero 與 AlphaGo Zero 之間的具體區(qū)別有以下幾個:
AlphaGo Zero 會預(yù)計勝率,然后優(yōu)化勝率,其中只考慮勝、負(fù)兩種結(jié)果;AlphaZero 會估計比賽結(jié)果,然后優(yōu)化達(dá)到預(yù)計的結(jié)果的概率,其中包含了平局甚至別的一些可能的結(jié)果。
由于圍棋規(guī)則是具有旋轉(zhuǎn)和鏡像不變性的,所以專為圍棋設(shè)計的 AlphaGo Zero 和通用的 AlphaZero 就有不同的實(shí)現(xiàn)方法。AlphaGo Zero 訓(xùn)練中會為每個棋局做 8 個對稱的增強(qiáng)數(shù)據(jù);并且在蒙特卡洛樹搜索中,棋局會先經(jīng)過隨機(jī)的旋轉(zhuǎn)或者鏡像變換之后再交給神經(jīng)網(wǎng)絡(luò)評估,這樣蒙特卡洛評估就可以在不同的偏向之間得到平均。國際象棋和日本象棋都是不對稱的,以上基于對稱性的方法就不能用了。所以 AlphaZero 并不增強(qiáng)訓(xùn)練數(shù)據(jù),也不會在蒙特卡洛樹搜索中變換棋局。
在 AlphaGo Zero 中,自我對局的棋局是由所有之前的迭代過程中出現(xiàn)的表現(xiàn)最好的一個版本生成的。在每一次訓(xùn)練迭代之后,新版本棋手的表現(xiàn)都要跟原先的表現(xiàn)最好的版本做對比;如果新的版本能以超過 55% 的勝率贏過原先版本,那么這個新的版本就會成為新的「表現(xiàn)最好的版本」,然后用它生成新的棋局供后續(xù)的迭代優(yōu)化使用。相比之下,AlphaZero 始終都只有一個持續(xù)優(yōu)化的神經(jīng)網(wǎng)絡(luò),自我對局的棋局也就是由具有最新參數(shù)的網(wǎng)絡(luò)生成的,不再像原來那樣等待出現(xiàn)一個「表現(xiàn)最好的版本」之后再評估和迭代。這實(shí)際上增大了訓(xùn)練出一個不好的結(jié)果的風(fēng)險。
AlphaGo Zero 中搜索部分的超參數(shù)是通過貝葉斯優(yōu)化得到的。AlphaZero 中直接對所有的棋類使用了同一套超參數(shù),不再對每種不同的棋做單獨(dú)的調(diào)節(jié)。唯一的例外在于訓(xùn)練中加在先前版本策略上的噪聲的大小,這是為了保證網(wǎng)絡(luò)有足夠的探索能力;噪聲的大小根據(jù)每種棋類的典型可行動作數(shù)目做了成比例的縮放。
AlphaZero 釋放威力
作者們用同樣的算法設(shè)定、網(wǎng)絡(luò)架構(gòu)和超參數(shù)(只有剛剛說到的噪聲大小不同),分別訓(xùn)練了下國際象棋、日本象棋、圍棋的三個 AlphaZero 實(shí)例。訓(xùn)練從隨機(jī)初始化的參數(shù)開始,步數(shù)一共是 70 萬步,mini-batch 大小 4096;5000 個第一代 TPU 用來生成自我對局,64 個第二代 TPU 用來訓(xùn)練神經(jīng)網(wǎng)絡(luò)(AI 科技評論注:第二代 TPU 的存儲器帶寬更高)。
以 Elo 分?jǐn)?shù)為標(biāo)準(zhǔn),AlphaZero 在完成全部的 70 萬步訓(xùn)練之前就分別超過了此前最好的國際象棋、日本象棋和圍棋程序 Stockfish、Elmo 和 AlphaGo Zero。如果說在數(shù)千個 TPU 的幫助下用 8 小時的訓(xùn)練時間就能超過 AlphaGo Lee 版本還算合理,大約 40 萬步訓(xùn)練之后繼續(xù)以不小的優(yōu)勢勝過 AlphaGo Zero 還是讓人吃了一驚的,AlphaZero 中放棄了一些(可能)會帶來優(yōu)勢的細(xì)節(jié)之后,以通用算法的身份擊敗了已經(jīng)看起來很完美的專門下圍棋的 AlphaGo Zero,「沒有免費(fèi)的午餐」定律仿佛在這里暫時失效了一樣。
DeepMind 在論文當(dāng)然也讓完全訓(xùn)練后的 AlphaZero 與 Stockfish、Elmo 和 AlphaGo Zero(訓(xùn)練時間為 3 天)進(jìn)行了實(shí)際的比賽,分別 100 場,每步的思考時間限制為一分鐘;AlphaGo Zero 和 AlphaZero 都運(yùn)行在配備 4 塊 TPU 的單個服務(wù)器上。
結(jié)果并不意外,AlphaZero 在國際象棋中面對 Stockfish 一局未輸,日本象棋中共輸 8 局,面對 AlphaGo Zero 也拿下了 60% 的勝率。
在 AlphaZero 和各個版本的 AlphaGo 中,我們都知道算法在深度神經(jīng)網(wǎng)絡(luò)的幫助下大大減小了蒙特卡洛樹搜索的規(guī)模。在與 Stockfish 和 Elmo 的對比中,這個提升顯得相當(dāng)明顯:AlphaZero 下國際象棋只需要每秒搜索 8 萬個位置,Stockfish 的數(shù)字是 7 千萬;AlphaZero 下日本象棋要每秒搜索 4 萬個位置,而 Elmo 的數(shù)字是 3 千 5 百萬;同時 AlphaZero 還都取得了壓倒性的棋力優(yōu)勢。這里的深度神經(jīng)網(wǎng)絡(luò)就像人類一樣,能有選擇地思考更有潛力的下法。論文中還測試了思考時間的效率。以 40ms 思考時間的 Stockfish 和 Elmo 為基準(zhǔn),AlphaZero 的棋力隨思考時間增加得更快。DeepMind 的研究人員甚至由此開始質(zhì)疑以往人們認(rèn)為下棋任務(wù)中 alpha-beta 剪枝算法優(yōu)于蒙特卡洛樹搜索的觀念到底是不是正確的。
作者們最后還和人類對比驗(yàn)證了 AlphaZero 學(xué)到的國際象棋知識如何。他們從人類在線下棋的棋譜中找了出現(xiàn)次數(shù)多于十萬次的常見開局形式,發(fā)現(xiàn) AlphaZero 也能獨(dú)立學(xué)到這些開局,而且經(jīng)常在自我對局中使用。而且,如果比賽是以這些人類常用的開局形式開始的,AlphaZero 也總能打敗 Stockfish,這說明 AlphaZero 確實(shí)學(xué)到了國際象棋中的各種局勢變化。
總結(jié)
在人類把棋類作為人工智能研究的重要關(guān)卡以來的幾十年間,研究者們開發(fā)出的下棋算法幾乎總是避免不了人工特征和為具體的棋類做的特定性優(yōu)化。如今,完全無需人工特征、無需任何人類棋譜、甚至無需任何特定優(yōu)化的通用強(qiáng)化學(xué)習(xí)算法 AlphaZero 終于問世,而且只需要幾個小時的訓(xùn)練時間就可以超越此前最好的算法甚至人類世界冠軍,這是算法和計算資源的勝利,更是人類的頂尖研究成果。DeepMind 愿景中能解決各種問題的通用 AI,看起來也離我們越來越近了。
論文地址:https://arxiv.org/pdf/1712.01815.pdf
AI 科技評論編譯。
聯(lián)系客服