AlphaGo 再進化!通用演算法 AlphaZero 再攻克幾種棋又有何難

DeepMind 悄悄放出了一篇新論文,介紹了「AlphaZero」。一開始以為 DeepMind 也學會炒冷飯了,畢竟「從零開始學習」的 AlphaGo Zero 論文 10 月發表,大家已討論許多遍了。可定睛一看,這次的 AlphaZero 不是以前只會下圍棋的人工智慧了,它是通用的,西洋棋、日本將棋也會下,所以去掉了名字裡表示圍棋的「Go」;不僅如此,圍棋下得比 AlphaGo Zero 還好──柯潔得知 AlphaGo Zero 之後已經感嘆人類是多餘的了,這次圍棋棋士可以牽著西洋棋選手再痛哭一次了。

從技術角度講,一個通用的強化學習模型比之前夠簡單的專門下圍棋的模型表現更好?「沒有免費的午餐」定律難道失效了?

AlphaGo 一路進化中,我們見證了 DeepMind 工程師對深度強化學習本質的思考和嘗試,也看到不斷最佳化帶來的無需先驗知識、降低資源消耗、提高訓練速度等可喜的技術進步。從使用人工特徵、出山之戰全勝打敗樊麾、發表第一篇論文的 AlphaGo Fan,到 4:1 擊敗李世乭、在 50 塊 TPU 上執行、紀錄片已上映的 AlphaGo Lee,再到烏鎮 3:0 擊敗柯潔、只用 4 塊 TPU 就打碎人類所有擊敗 AlphaGo 幻想的 AlphaGo Master 之後,我們又等到了拋棄人工特徵、拋棄所有人類高手棋局,全靠自學成材超越 AlphaGo Master 的 AlphaGo Zero。在我們覺得 AlphaGo Zero 已是盡善盡美的圍棋之神時,DeepMind 出人意料帶來更通用、能下各種棋類,且圍棋表現更上一層樓的通用強化學習模型──AlphaZero。

過往幾版 AlphaGo Zero 大家想必都頗熟悉了,不過還是簡單回顧一下,方便和新的 AlphaZero 對比。AlphaGo 一直都有深度有限的蒙地卡羅樹狀搜尋(MCTS),然後主要靠策略網路和價值網路分別預測下一步落子點及評估局勢。更早版本的 AlphaGo 中,策略網路和價值網路是兩個不同的深度神經網路,Zero 版是同一個 ResNet 的兩組匯出;AlphaGo Zero 之前幾版都需先把局面轉換為高一層的人工特徵再為網路匯入、需要先學習人類棋譜再轉變到自我對弈的強化學習、有一個單獨的快速走子網路進行隨機模擬;AlphaGo Zero 則把局面落子情況直接當作網路匯入、由隨機的網路權值直接開始強化學習、捨棄快速走子網路直接用主要神經網路模擬走子。可以看到,AlphaGo Zero 的思路和模型架構都有大幅簡化,造成更快的訓練和執行速度,以及更高的棋力。而這麼簡單的模型就有這麼好的結果,也是讓研究者對 AlphaGo Zero 發出驚歎的原因。

如何從圍棋到更多

其實一直以來人們在編寫下棋 AI 的過程中,都會針對每種棋的不同特點設計專門技巧。AlphaGo Zero 達成策略和價值兩個網路帶有殘差的 CNN 網路,其實剛好利用圍棋一些特點:比賽規則平移不變,這和卷積神經網路的共用權值相吻合;棋子的氣和卷積網路的局部架構相吻合;整張棋盤旋轉、對稱不變,訓練時可方便地運用現有的資料增強和組合方法;動作空間簡單,只需要在一個位置落單一類別的棋子;結果空間簡單,要麼是贏,要麼是輸,沒有平局。以上種種特點都可幫助 AlphaGo Zero 順利快速地訓練。

現在 DeepMind 研究人員想把 AlphaGo Zero 變成更通用化、能下更多不同棋的演算法時,就需要重新思考處理方法。比如西洋棋和將棋,如何走子高度取決於目前棋子所在位置,而每種子又有不同走法;棋盤的局勢不可旋轉、不可鏡像,這會影響行棋的方向;西洋棋可以平局;將棋甚至可把吃掉的對手棋子重新放到棋盤上。相比圍棋,這些特點都讓計算過程變得更複雜、更不適合 AlphaGo Zero 這樣的 CNN 網路。相比之下,2016 年西洋棋演算法錦標賽(TCEC)的冠軍 Stockfish 是一個使用人類高手特徵、精細調節權重、alpha-beta 剪枝演算法,加上大規模啟發式搜尋和不少專門適配西洋棋的程式。最近剛擊敗了人類日本圍棋冠軍的最強演算法 Elmo 也是差不多的情況。

AlphaZero 是 AlphaGo Zero 的通用化進化版本,繼續保持 AlphaGo Zero 中不需要人工特徵、利用深度神經網路從零開始強化學習、結合蒙地卡羅樹狀搜尋特點,然後更新網路參數,減小網路估計的比賽結果和實際結果間的誤差,同時最大化策略網路匯出動作和蒙地卡羅樹狀搜尋可能性之間的相似度。

AlphaZero 與 AlphaGo Zero 之間的具體區別有以下幾個:

  • AlphaGo Zero 會預計勝率,然後最佳化勝率,其中只考慮勝、負兩種結果;AlphaZero 會估計比賽結果,然後最佳化達到預計結果的機率,其中包含平局甚至別的可能結果。
  • 由於圍棋規則有旋轉和鏡像不變性,所以專為圍棋設計的 AlphaGo Zero 和通用的 AlphaZero 就有不同的實現方法。AlphaGo Zero 訓練中會為每局做 8 個對稱的增強資料;並在蒙地卡羅樹狀搜尋中,棋局會先經過隨機旋轉或鏡像變換之後再交給神經網路評估,這樣蒙地卡羅評估就可在不同偏向間得到平均。西洋棋和將棋都不對稱,以上基於對稱性的方法就無法使用了,所以 AlphaZero 並不增強訓練資料,也不會在蒙地卡羅樹狀搜尋中變換棋局。
  • 在 AlphaGo Zero 中,自我對局的棋局是由所有之前迭代過程中表現最好的版本生成。每次訓練迭代之後,新版棋手的表現都要跟原先表現最好的版本比較;如果新版能以超過 55% 的勝率贏過原先版,那麼新版就會成為新的「表現最好的版本」,然後用它生成新棋局供後續迭代最佳化使用。相比之下,AlphaZero 始終只有一個持續最佳化的神經網路,自我對局的棋局也就是由具最新參數的網路生成,不再像原來那樣等待出現一個「表現最好的版本」之後再評估和迭代。這實際上增加了訓練出不好結果的風險。
  • AlphaGo Zero 搜尋部分的超參數是透過貝氏定理最佳化得到的。AlphaZero 直接對所有棋類使用同一套超參數,不再單獨調節不同棋種。唯一的例外在加在先前版本策略的雜訊大小,這是為了保證網路有足夠的探索能力;雜訊大小根據每種棋類的典型可行動作數目做了等比縮放。

AlphaZero 釋放威力

研究員用同樣演算法設定、網路架構和超參數(只有剛說到的噪聲大小不同),分別訓練了下西洋棋、將棋、圍棋的 3 個 AlphaZero 實例。訓練從隨機起始化的參數開始,步數一共 70 萬步,mini-batch 大小 4096;5 千個第一代 TPU 用來生成自我對局,64 個第二代 TPU 用來訓練神經網路(註:第二代 TPU 的記憶體頻寬更高)。

以 Elmo 分數為標準,AlphaZero 完成全部 70 萬步訓練前就分別超過之前最好的西洋棋、將棋和圍棋程式 Stockfish、Elmo 和 AlphaGo Zero。如果說在數千個 TPU 幫助下用 8 小時訓練時間就能超過 AlphaGo Lee 版本還算合理,大約 40 萬步訓練之後繼續以不小的優勢勝過 AlphaGo Zero 還是讓人吃了一大驚。AlphaZero 放棄了一些(可能)會有優勢的細節後,以通用演算法的身分擊敗了看起來已很完美的 AlphaGo Zero,「沒有免費的午餐」定律彷彿暫時失效。

DeepMind 論文裡當然也讓完全訓練後的 AlphaZero 與 Stockfish、Elmo 和 AlphaGo Zero(訓練時間為 3 天)進行實際比賽,各下 100 場,每步思考時間限制為 1 分鐘;AlphaGo Zero 和 AlphaZero 都執行在配備 4 塊 TPU 的單個伺服器。

結果並不意外,AlphaZero 西洋棋面對 Stockfish 一局未輸,將棋共輸 8 局,面對 AlphaGo Zero 也拿下 60% 勝率。

AlphaZero 和各版 AlphaGo 中,我們都知道演算法在深度神經網路的幫助下大大減小了蒙地卡羅樹的規模。與 Stockfish 和 Elmo 的比賽中,提升相當明顯:AlphaZero 下西洋棋只需每秒搜尋 8 萬個位置,Stockfish 是 7 千萬;AlphaZero 下將棋每秒搜尋 4 萬個位置,Elmo 是 3,500 萬;同時 AlphaZero 還取得壓倒性的棋力優勢。這裡的深度神經網路就像人類一樣,可選擇性思考更有潛力的下法。論文裡還測試了思考時間的效率。以 40ms 思考時間的 Stockfish 和 Elmo 為基準,AlphaZero 的棋力隨思考時間增加得更快。DeepMind 研究人員甚至開始質疑以往人們認為下棋工作中 alpha-beta 剪枝演算法優於蒙地卡羅樹狀搜尋的觀念到底正不正確。

作者最後還和人類比較驗證 AlphaZero 學到的西洋棋知識如何。他們從人類線上棋譜找了出現次數多於十萬次的常見開局形式,發現 AlphaZero 也能獨立學到這些開局,且經常在自我對局使用。如果比賽是以這些人類常用的開局形式開始,AlphaZero 也總能打敗 Stockfish,這說明 AlphaZero 確實學到了西洋棋的各種局勢變化。

總結

人類把棋類做為人工智慧研究的重要關卡以來幾十年間,研究者開發的下棋演算法幾乎總是避免不了人工特徵和為個別棋類特性的最佳化。如今,完全無需人工特徵、無需任何人類棋譜,甚至無需任何特定最佳化的通用強化學習演算法 AlphaZero 問世,且只需幾小時的訓練時間就可以超越先前最好的演算法甚至人類世界冠軍,這是演算法和計算資源的勝利,更是人類的頂尖研究成果。DeepMind 的願景是能解決各種問題的通用 AI,看起來離我們越來越近了。

(本文由 雷鋒網 授權轉載;首圖來源:pixabay)原文出處: AlphaGo 再進化!通用演算法 AlphaZero 再攻克幾種棋又有何難