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