Sayuri
Sayuri copied to clipboard
关于和leelazero对照的问题
作者您好,我一直在关注sayuri的训练过程(因为对gumbel是否能真正提升训练很感兴趣),我注意到您在最新的日志中和leelazero的早期网络进行了对比,但是据我所知leelazero在早期很长一段时间的训练有比较严重的问题(具体是什么忘了,很久以前的事了),所以如果想要对比训练速度的话和sai比leelazero更合适,考虑到sayuri使用了一些kata的算法来改进训练,如果想要证明gumbel有效可能和kata的早期网络对比是最合适的。
你好 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 方法,這裡將描述之
每一輪的搜索過程分為兩個階段。
- Gumbel 階段,使用 Sequential Halving with Gumbel 的演算法。
- PUCT 階段,沒有特別的算法。
搜索完後使用 completed Q-values 混合的機率分佈當作訓練的資料取代原本的機率分佈。
之所以這樣處理,想法來於 Forced Playouts and Policy Target Pruning,此方法出於 KataGo,它分為兩個階段。
- Forced Playouts,強置搜索可能的後選手。它可以對應到 Sequential Halving with Gumbel。
- Policy Target Pruning,裁剪勝率不好的後選手。它可以對應到 completed Q-values 混合的機率分佈。