AlphaZero 的經驗教訓:四子棋

歡迎回來!在我們的上一期 中,我們簡要回顧了 DeepMind 的 AlphaZero 算法如何快速學會比最優秀的人類(有時甚至是最好的現有算法)更好地玩遊戲。回想一下,它使用基於神經網絡的蒙特卡洛樹搜索 (MCTS) 與自己對戰,並使用這些自我對弈的結果在自我強化循環中進一步訓練網絡。

在接下來的幾篇文章中,我們將分享我們從教它玩Connect Four中學到的一些經驗教訓。

爲什麼要連接四?

爲了實現和測試 AlphaZero,我們首先必須選擇一個遊戲來玩。與圍棋(一種極端的難度)或井字遊戲(另一種)不同,Connect Four 似乎提供了足夠有趣的複雜性,同時仍然足夠小以快速迭代。特別是,我們選擇了常見的 6x7 變體(如上圖所示)。

它還有另一個好處:作爲一個完全解決的遊戲,我們可以根據最佳策略測試我們的模型。也就是說,一旦我們使用 AlphaZero 訓練了我們的網絡,我們就可以向它提供我們知道正確答案的測試板位置,以獲得有意義的“基本事實”準確性。

此外,它使我們能夠發現在給定架構下我們的網絡可以變得多麼接近完美。讓我們來看看它是如何工作的。

訓練

訓練和評估過程如下:

  1. 使用 Connect Four求解器(即會告訴您任何棋盤位置的正確移動的程序)來生成標記的訓練和測試集。
  2. 選擇神經網絡架構。AlphaZero 論文提供了一個很好的起點,但有理由認爲不同的遊戲將受益於對其的調整。
  3. 使用監督學習訓練網絡標記的訓練集。這爲我們提供了架構應該能夠學習的程度的上限
  4. 使用相同的網絡架構訓練 AlphaZero,並使用標記的測試集對其進行評估,以查看它與上限的接近程度。

假設 AlphaZero 訓練的網絡達到 90% 的測試準確率。這告訴我們什麼?

  • 如果同樣的架構在有監督的訓練下達到了 99%,那麼網絡可以學到比 AlphaZero 教的更多的東西,我們應該改進 AlphaZero 的 self-play 組件。
  • 如果監督訓練只達到 91%,那麼網絡架構本身可能是限制因素,應該改進。

使用這種策略幫助我們調整網絡架構,發現錯誤,並在我們的 MCTS 自我播放中進行其他改進。

挑戰

在生成帶標籤的訓練數據時,我們將隨機板位置提供給 Connect Four 求解器。問題是,什麼是“隨機”?

因爲 AlphaZero 應該學會只玩完美的遊戲,它的網絡最終將不再看到糟糕的位置。因此,對它們進行測試是不公平的。另一方面,Connect Four 非常簡單,只有少數完美的遊戲,因此不可能僅使用完美的棋盤位置來構建大型訓練集。

另一個困難是確定什麼是職位的正確答案。在任何給定的位置,可能有多個移動導致勝利。贏得越快越好嗎?好多少?如果不能保證贏,你應該選擇輸得最慢的棋(假設對手是完美的),還是最有可能絆倒他們的棋(如果他們不完美)?你如何做到這一點?

最後,我們決定使用來自高度不完美遊戲的位置來生成我們的標記集,使我們的 AlphaZero 訓練網絡在比較中處於劣勢。然而,正如我們很快就會看到的那樣,它在這個障礙上表現出奇的好。

我們還決定使用兩種不同的“最佳移動”定義。在生成“強”訓練/測試集時,我們僅在導致最快可能獲勝(或最慢可能失敗)的情況下才將其標記爲正確。在“弱”的情況下,所有獲勝的動作都被賦予相同的權重。爲了保持比較公平,我們還在強模式和弱模式下訓練 AlphaZero,鼓勵它在前一種情況下更喜歡更快的勝利(通過根據遊戲長度縮放最終結果值)。讓我們簡單地看一下。

強與弱 AlphaZero

在 MCTS 模擬過程中,非終端位置從網絡獲得一個初始,表示預期的遊戲結果(在 [-1, 1] 範圍內)。另一方面,終端位置不需要這樣的估計;我們可以直接爲它們分配 +/-1。這對於較弱的訓練來說很好,無論需要多長時間到達那裏,兩個獲勝位置都被認爲是同樣好的。對於訓練,我們按遊戲長度來衡量最終結果。

連四連勝最快的是 7 步,最長的是 42 步(用完整個棋盤)。一些快速代數表明,如果n是實際遊戲長度,那麼表達式 1.18–(9*n/350) 將產生一個 [0.1, 1] 中的值,表示獲勝。這使得 MCTS 更喜歡快贏(和慢輸)。

評價

我們進行了兩種評估:

  • 僅網絡:向網絡提供測試板位置並檢查其預測的移動是否正確。
  • MCTS:運行由網絡支持的 MCTS(具有 800 次模擬)並評估其首選移動。

回想一下,我們使用了兩種不同的訓練方法:

  • AlphaZero(“AZ”)訓練。
  • 監督訓練(即,使用來自求解器的標記訓練數據)。

這爲我們提供了四種評估組合:AZ-Network、AZ-MCTS、Supervised-Network、Supervised-MCTS。

最後,有兩種訓練模式(強與弱)。我們將依次查看每一個。

結果

強勁的結果

  • 監督網絡:96.20%
  • 監督-MCTS:97.29%
  • AZ-Network:95.70%
  • AZ-MCTS:96.95%

這告訴我們的是:

  1. 我們的 AlphaZero 訓練幾乎與監督訓練一樣好(儘管處於前面提到的劣勢)。
  2. 儘管單獨的網絡表現非常好,但在 MCTS 中使用它進一步將錯誤率降低了約 29%(從~4% 到~3%)。

結果不佳

  • 監督網絡:98.93%
  • 監督-MCTS:99.79%
  • AZ-Network:98.83%
  • AZ-MCTS:99.76%

這一次,AlphaZero 訓練更接近監督訓練,幾乎匹配它。此外,MCTS 將錯誤率降低了約 80%,幾乎每個位置都正確。

在弱測試集中,一個位置平均有 4.07 次正確移動(而強測試​​集中爲 2.16)。這意味着在 7 個可能的移動中隨機猜測只會讓我們達到 58.1%。

結論

Connect Four 是一款出色的遊戲,可用於訓練(並查找錯誤)您的 AlphaZero 實現。它允許快速迭代,並且足夠複雜以至於很有趣。由於這是一個已解決的遊戲,因此也可以客觀衡量培訓的成功程度。

當只尋找任何最佳走法時(不管它獲勝或避免失敗的速度有多快),再加上 MCTS,經過 AlphaZero 訓練的網絡在 400 個位置中只會走錯一次。即使必須找到最快的贏(或非輸),並且單獨使用網絡預測,它也只會在 25 個位置出錯一次。非常好!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章