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