Sayuri icon indicating copy to clipboard operation
Sayuri copied to clipboard

关于和leelazero对照的问题

Open shengkelong opened this issue 1 year ago • 1 comments

作者您好,我一直在关注sayuri的训练过程(因为对gumbel是否能真正提升训练很感兴趣),我注意到您在最新的日志中和leelazero的早期网络进行了对比,但是据我所知leelazero在早期很长一段时间的训练有比较严重的问题(具体是什么忘了,很久以前的事了),所以如果想要对比训练速度的话和sai比leelazero更合适,考虑到sayuri使用了一些kata的算法来改进训练,如果想要证明gumbel有效可能和kata的早期网络对比是最合适的。

shengkelong avatar Feb 20 '23 01:02 shengkelong

你好 shengkelong:

感謝你對本專案的關注。我直接說你可能比較感興趣的結論,目前我的訓練效率的理論值和 KataGo 在 2019 年 2 月的版本 (v1.0) 是同一量級的,此結果由 KataGo 的第一版論文 中換算得知。

和 Leela Zero 比較

至於和 Leela Zero 比較的問題,你說的是正確的,與其相比理論性能的確非常不公平,依我所知 Leela Zero 的問題至少包括

  • MCTS 搜索上的 bug。
  • MCTS 沒有優化。這屬於時代的問題,因為當時並不知道 MCTS 和神經網路的結合要怎麼處理比較好,原 AlphaGo Zero 論文仍有沒說明的部份。
  • 訓練網路的流程沒有優化,這導致強度比理論值下降非常多。早期的 Leela Zero 網路容易無視大龍死活(至少約 300 萬盤棋前),應該也是這個原因。
  • 網路結構設計有缺陷。
  • 一開始選用的網路太小 (5x64),且練的太久,導致進步速度不如預期。

雖然 Leela Zero 有不少問題,但之所以和 Leela Zero 比較,有以下考量點

  • 寫報告時,數據會比較好看,這個也是主要目的。
  • 容易比較性能,因為 Leela Zero 的數據比較透明,且參數固定,容易算出理論性能。

至於你提到要證明 Gumbel 的有效性,這個只能通過 Sayuri 調不同參數互相比較,和 KataGo 比較可能還是無法確認有效性。目前我處於硬體資源匱乏的狀態,不太能再跑一個對照組,因此要驗證有效性,可能還要等一段時間,看看有沒有教授願意贊助我。

Gumbel 相關

你可能有興趣我怎麼使用 Gumbel 方法,這裡將描述之

每一輪的搜索過程分為兩個階段。

  1. Gumbel 階段,使用 Sequential Halving with Gumbel 的演算法。
  2. PUCT 階段,沒有特別的算法。

搜索完後使用 completed Q-values 混合的機率分佈當作訓練的資料取代原本的機率分佈。

之所以這樣處理,想法來於 Forced Playouts and Policy Target Pruning,此方法出於 KataGo,它分為兩個階段。

  1. Forced Playouts,強置搜索可能的後選手。它可以對應到 Sequential Halving with Gumbel。
  2. Policy Target Pruning,裁剪勝率不好的後選手。它可以對應到 completed Q-values 混合的機率分佈。

CGLemon avatar Feb 20 '23 13:02 CGLemon