「全民體驗」AlphaZero:FAIR田淵棟首次開源超級圍棋AI

如今,一塊 GPU 的計算機就能夠運行超越人類水平的圍棋程序了。剛剛,Facebook 人工智能研究所(FAIR)的 ELF OpenGo 預訓練模型與代碼已經開源。田淵棟等人重現了 DeepMind 圍棋程序 AlphaZero,這是超級圍棋 AI 的首次開源。與此同時,研究人員順便也發現了人工智能圍棋的一個「bug」。算法

對於有計算機基礎的圍棋愛好者來講,你也能夠下載 ELF OpenGo 最終版本模型進行編譯,體驗與超越人類頂尖水平的 AI 圍棋對戰了(這須要你的電腦裏有支持英偉達 CUDA 的 GPU)。性能

圍棋程序連接:dl.fbaipublicfiles.com/elfopengo/p…學習

田淵棟等人開源的 ELF OpenGo 基於 DeepMind 著名人工智能圍棋 AlphaGoZero / AlphaZero,但無需使用谷歌 TPU 進行訓練。OpenGo 的最新版本使用 2000 塊 GPU 訓練了 15 天實現了超人類的性能。在只有一塊 GPU 的狀況下,OpenGo 在與 4 我的類排名前 30 的的職業選手進行比賽時,在慢棋賽中取得了 20 比 0 全勝的戰績,人類棋手沒有時間限制。測試

「我能夠確定地說,ELF OpenGo 項目爲韓國圍棋界帶來了巨大影響,」韓國圍棋協會公關助理負責人 Beomgeun Cho 表示,「自從它問世以來,幾乎全部韓國的職業比賽選手都在使用 ELF Go 分析本身和其餘棋手的對局。這不只使得韓國棋手的水平提高,也對整個世界的圍棋水平有很大幫助。」人工智能

ELF OpenGo 的最終模型是 2000 萬局自我對弈訓練的結果,其水平穩超人類。但正如 AlphaGo 曾經展現出本身在「打劫」問題上的 bug 同樣,研究人員也發現了 ELF OpenGo 在訓練過程當中展現出了強化學習特有的限制:OpenGo 和 AlphaZero 同樣沒法徹底理解圍棋的「扭羊頭」(又稱徵吃)概念,而這是圍棋初學者就能理解的常見狀況。與其餘變化相比,徵吃更多依賴於稍遠期的預測。雖然對於人類棋手來講,預計將來 30 步或更多的徵吃局面是垂手可得的,但 DeepMind 曾經指出這些預測是在計算機訓練後期才能完成的。設計

圍棋徵吃的示意圖。人類玩家很快就能學會預測這種局面的發展,但計算機學習的速度要慢得多,並且沒法從個別例子中進行推廣。

有趣的是,研究人員發現 ELF OpenGo 以和人類玩家相反的方式學習圍棋。其基於強化學習的方法更多關注遊戲的後半段,而不是開局或中盤階段。經過設置激勵 AI 獲勝的機制,強化學習會推進 OpenGo 更多地瞭解棋局如何收官——而非如何佈局。與此同時,人類則傾向於評價當前棋盤上的局面,專一於近期變化和局部形式,同時逐步推動。orm

儘管這一研究結論僅限於圍棋,但它也代表了強化學習具備某些侷限性,可能會致使總體表現使人印象深入卻又遭遇失敗——或被利用,由於 AI 過於關注最終結果,忽視了近期變化。cdn

如下摘取介紹了 ELF OpenGo 論文的部份內容。

FAIR 的 ELF OpenGo 分析了從 GoGod 數據集中抽取的 87,000 盤職業棋手對決與計算機落子的匹配程度,其時間跨度從 1700 年到 2018 年。

圍棋有超過 4000 年的傳奇歷史,並被視爲一種最複雜的具備完整信息的回合制棋盤遊戲。AlphaGo(Silver et al., 2016)及其後代 AlphaGo Zero(Silver et al., 2017)和 AlphaZero(Silver et al., 2018)的出現代表,即便沒有人類對弈數據集的監督,深度強化學習(deep RL)也能達到超越人類的表現。

在下棋能力方面的這些進展具備顯著的計算成本。單次訓練過程就須要數百萬局自我對弈,這須要在數千個 TPU 上訓練數天時間;但研究社區中絕大多數人都沒法得到這樣的計算能力。再加上沒法得到代碼和模型,就致使這種方法很是難以甚至不可能獲得重現、研究、改進和擴展。

咱們在這篇論文中提出了 ELF OpenGo,這是針對圍棋的 AlphaZero(Silver et al., 2018)算法的開源的再實現。咱們還應用了 ELF OpenGo,實現了下列另外三個貢獻。

第一,咱們爲 ELF OpenGo 訓練了一個超人級模型。在 2000 個 GPU 上運行了咱們的 AlphaZero 風格的訓練軟件 9 天時間後,咱們的有 20 個模塊的模型超越了人類水平,而且能夠說達到了與 Silver et al. (2017) 和 Silver et al. (2018) 中描述的 20 模塊模型相媲美的程度。爲了助力這一領域的研究,咱們將提供預訓練過的超人級模型、用於訓練該模型的代碼、全面的訓練軌跡數據集(包含 2000 萬局自對弈,分爲 150 多萬個訓練 minibatch)、以及輔助數據。咱們將深刻描述該系統和算法的設計,並且咱們會包含不少在開發和訓練咱們的模型時獲得的經驗教訓,咱們但願這能幫助社區更好地理解大規模深度強化學習的不少考慮因素。

第二,咱們會提供對模型在訓練過程當中的行爲的分析。(1)隨着訓練的推動,咱們觀察到,與其它模型相比,該模型的棋力存在較大的變化。即便學習率降低了,這一性質依然會保持。(2)對於須要顯著的前瞻才能決定是否應該下的落子(好比「徵子」), 模型學習的速度較慢,也永遠不能徹底掌握。(3)咱們探索了模型學習一局對弈中不一樣階段的高質量下法的速度。相對於 tabular RL(表格式強化學習)的典型行爲,該模型學習遊戲中期和遊戲末期走法的進展速度基本相同。

第三,咱們執行了普遍的 ablation 實驗,以研究 AlphaZero 風格算法的性質。咱們肯定了幾個 Silver et al. (2018) 中沒有描述清楚的重要參數,並會給出它們對成功訓練的做用的看法。咱們簡單比較了 AlphaGoZero 和 AlphaZero 的訓練過程。最後咱們發現,即便對於最終模型而言,在對弈中將 rollout 加倍依然能將其棋力提高大約 200 ELO,這說明 AI 的棋力會受到模型體量的限制。

咱們的最終目標是提供必要的資源和探索性看法,讓 AI 研究社區和圍棋界都能研究、改進和測試這些頗有前景的先進方法。

OpenGo 分析了 19 世紀日本著名棋手本因坊秀策的名局「耳赤之局」,秀策執黑爲世人稱道的第 127 手置於 a 位,但人工智能認爲黑棋應該下在 b 位。

ELF OpenGo

咱們提出的 ELF OpenGo 的目標是忠實地從新實現 AlphaGoZero(AGZ)和 AlphaZero(AZ),消除原始論文中含混不清的地方,並提出多種創新讓咱們的系統能夠徹底在商品級硬件上工做。爲了行文簡潔,咱們會在附錄 A 中詳細全面地討論 ELF OpenGo 的系統和軟件設計;亮點包括(1)在 GPU 上多個自對弈的工做器(worker)的共同安置(colocation),從而提高吞吐量,(2)一種異步的自對弈工做流程,用以處理愈來愈高的每局遊戲延遲。

咱們的訓練和推理都使用了英偉達 Tesla V100 GPU,帶有 16GB 內存;可是能夠預期模型在大多數有 Tensor Core 的英偉達 GPU 上的表現都差很少(好比 RTX 2060 商品級 GPU)。

表 1:AGZ、AZ 和 ELF OpenGo 的超參數和訓練細節。「?」表示 Silver et al. (2017) 或 Silver et al. (2018) 中模糊不清或沒有明確指出的細節。

整體而言,咱們很大程度上遵守了 AZ 的訓練細節。但咱們沒有使用 5000 個自對弈 TPU 和 64 個訓練 TPU,而是使用了 2000 個自對弈 GPU 和 8 個訓練 GPU。由於 Silver et al. (2018) 中沒有明確說明 AZ 的 replay buffer(重放緩衝)大小,因此咱們使用了 AGZ 的 50 萬局遊戲的設置。咱們也使用了 AGZ 的每一步 1600 的自對弈 rollout 設置。

圖 2:訓練期間模型能力的發展。「Selfplay ELO 25,000」和「Selfplay ELO 50,000」分別指基於間隔爲 25000 和 50000 的訓練 minibatch 的連續模型對而計算獲得的未歸一化的自對弈 ELO 等級。「Nash Averaging 50,000」是指納什平均等級(Balduzzi et al., 2018),基於與「Selfplay ELO 50,000」中那樣的一樣模型之間進行輪詢調度(round-robin)(成對的)競標賽而計算獲得。

與人類對弈的比較

由於咱們的模型顯著強於表現出了超人級棋力的原型模型,因此咱們假設咱們的模型的棋力也超過人類。在圖 3(c) 中,咱們代表該模型預測的下法與人類職業棋手給出的下法是一致的。這些下法是從 2011 年到 2015 年的 1000 場職業比賽中提取出來的。模型的人類下法匹配率很快在 minibatch 125000 左右收斂到了大約 46%。這代表超過這一點後該模型的棋力可能並非因爲更好的人類專業預測,並且正如 Silver et al. (2016) 代表的那樣,使用人類對弈來監督訓練可能存在侷限性。

MCTS rollout 數量

直觀而言,增大 MCTS 迭代次數(rollout 數量)能經過探索博弈樹中的更多部分來提高 AI 的棋力。爲了更好地理解 rollout 數量對棋力的影響,咱們使用最終模型進行了自對弈分析,其中一個棋手使用的 MCTS rollout 數是另外一個的兩倍。咱們在範圍普遍的 rollout 數量上執行了這一分析(800-25600)。

圖 9:使用 2 倍 rollout 的模型相對於使用 1 倍 rollout 的一樣模型的勝率

結果如圖 9 所示,能夠發現當將執白子者的 rollout 數量翻倍時,ELF OpenGo 能穩定地享有 80%-90% 的勝率(ELO 大約多 250-400)。另外一方面,當將執黑子者的 rollout 數量翻倍時,ELF OpenGo 的勝率僅有 55%-75%(ELO 大約多 35-200)。此外,隨着 rollout 數量增大,執黑時 rollout 翻倍的增量收益縮減至近 50%,這說明咱們的模型在執黑時在 rollout 數量方面存在一個能力的天花板。而在模型執白時這個天花板卻不存在,這說明 7.5 貼目(白棋分數獎勵)對黑棋有至關大的影響。

由於雙方都使用一樣的模型可能引入誤差(rollout 更多的一方能看到對方探索過的全部分支),因此咱們還實驗了原型/最終模型,一樣也觀察了相似的趨勢——rollout 翻倍能爲 ELO 帶來約 200 的提高。

論文:ELF OpenGo:對AlphaZero的分析和開放再實現

arxiv.org/abs/1902.04…

AlphaGo、AlphaGo Zero 和 AlphaZero 算法系列出色地代表了深度強化學習的能力,在複雜的圍棋遊戲上達到了超人級水平,並且自主性也愈來愈高。可是,研究界在理解和使用這些頗有前景的方法上仍存在不少障礙。爲了闡明還沒有解決的謎題和促進將來的研究,咱們提出了 ELF OpenGo,這是 AlphaZero 算法的一個開源的再實現。ELF OpenGo 是首個開源的超人級圍棋人工智能,其在與全球頂級職業棋手的對弈中得到了使人信服的完美戰績(20:0)。咱們應用 ELF OpenGo 進行了普遍的 ablation 研究,也識別和分析了模型訓練以及對弈推理過程當中不少有趣的現象。咱們的代碼、模型、自對弈數據集和輔助數據都會公開。

相關文章
相關標籤/搜索