dlshogiのモデルサイズは、10ブロック192フィルタから初めて、精度が飽和するたびに、15ブロック224フィルタ、20ブロック256フィルタと段階的に大きくしている。
参考:
- 将棋でディープラーニングする その48(ResNet) - TadaoYamaokaの開発日記
- 第2回 電竜戦TSEC 結果報告 - TadaoYamaokaの開発日記
- 将棋AI実験ノート:20ブロックの学習 - TadaoYamaokaの開発日記
直近の大会(第32回世界コンピュータ将棋選手権、第3回電竜戦TSEC)では、20ブロック256フィルタのモデルを使用していた。
その後も、20ブロック256フィルタのモデルで、強化学習を続けていたが、精度が飽和したため、並行して30ブロック384フィルタのモデルの学習も行っている。
20ブロック256フィルタのモデル
30ブロックモデルとの強さを比較するために、まずは、20ブロック256フィルタのモデルが、第32回世界コンピュータ将棋選手権以降どれくらい強くなったか測定を行った。
持ち時間5分2秒加算で、互角局面集24手目から対局した結果は、以下の通りである。
pre28が第32回世界コンピュータ将棋選手権のモデル、
pre38が精度が飽和するまで学習した最新の20ブロックである。
参考として、公開している15ブロック224フィルタのモデル(dr2_exhi)もリーグに加えて測定した。
また、基準として、水匠5(32スレッド)をリーグ加えている。強さをそろえるため水匠5は、持ち時間を10倍にした。
dlshogiは、A100 1GPU、3スレッドである。
# PLAYER : RATING ERROR POINTS PLAYED (%) CFS(%) W D L D(%) 1 pre38 : 66.0 25.4 224.5 380 59 96 192 65 123 17 2 pre28 : 28.5 32.4 122.0 255 48 63 103 38 114 15 3 suisho5-32thx10 : 21.2 26.6 186.5 375 50 100 145 83 147 22 4 dr2_exhi : -115.7 45.7 38.0 132 29 --- 24 28 80 21 White advantage = 10.93 +/- 13.46 Draw rate (equal opponents) = 19.38 % +/- 1.71
20ブロックの最新モデル(pre38)は、公開している15ブロックのモデルからは、R+181.7、
第32回世界コンピュータ将棋選手権のモデル(pre28)からは、R+37.5になっている。
精度
テストデータにfloodgateのR3500以上の棋譜からサンプリングした856,923局面(重複なし)を使用した場合の精度は以下の通りである。
モデル | モデルサイズ | 方策正解率 | 価値正解率 |
---|---|---|---|
dr2_exhi | 15ブロック224フィルタ | 0.523406 | 0.7607527 |
pre28 | 20ブロック256フィルタ | 0.5376619 | 0.768036 |
pre38 | 20ブロック256フィルタ | 0.5410133 | 0.7686995 |
15ブロックから20ブロックで精度が大きく向上し、20ブロックモデルは、第32回世界コンピュータ将棋選手権のモデルからはそれほど精度が向上していない。
30ブロック384フィルタ
20ブロックのモデルで強化学習したデータを使って学習している30ブロック384フィルタのモデルの精度が20ブロックを上回ったので、同じ持ち時間で強くなっているか測定した。
持ち時間400秒2秒加算で、互角局面集24手目から対局した結果は、以下の通りである。
基準として、水匠5(32スレッド)をリーグ加えている。強さをそろえるため水匠5は、持ち時間を10倍にした。
dlshogiは、A100 1GPU、3スレッドである。
pre38が精度が飽和するまで学習した最新の20ブロック、
pre33が学習途中の30ブロック384フィルタのモデルである。
# PLAYER : RATING ERROR POINTS PLAYED (%) CFS(%) W D L D(%) 1 pre33 : 14.0 16.5 353.5 667 53 89 301 105 261 16 2 suisho5-32thx10 : -3.9 16.4 324.0 659 49 67 253 142 264 22 3 pre38 : -10.2 16.4 317.5 664 48 --- 261 113 290 17 White advantage = 18.01 +/- 9.64 Draw rate (equal opponents) = 18.15 % +/- 1.25
30ブロックのモデルが、20ブロックのモデルに対して、同じ持ち時間でも、R+24.2になっている。
同じプレイアウト数(30000)、水匠5は400倍の1200万だと、
# PLAYER : RATING ERROR POINTS PLAYED (%) CFS(%) W D L D(%) 1 pre33 : 178.3 14.9 1089.0 1354 80 100 1028 122 204 9 2 pre38 : 15.2 13.4 708.0 1352 52 100 642 132 578 10 3 suisho5-32thx10 : -193.5 15.6 230.0 1348 17 --- 177 106 1065 8 White advantage = 22.08 +/- 9.29 Draw rate (equal opponents) = 11.67 % +/- 0.80
30ブロックのモデルが、20ブロックのモデルに対して、R+163.1となる。
精度
テストデータにfloodgateのR3500以上の棋譜からサンプリングした856,923局面(重複なし)を使用した場合の精度は以下の通りである。
モデル | モデルサイズ | 方策正解率 | 価値正解率 |
---|---|---|---|
pre38 | 20ブロック256フィルタ | 0.5410133 | 0.7686995 |
pre33 | 30ブロック384フィルタ | 0.5598156 | 0.7760576 |
30ブロックのモデルの精度は、20ブロックに対して大幅に向上している。
まだ学習途中であり、さらに精度を向上できる見込みである。
学習時間
バッチサイズ4096、1000ステップの平均学習時間を比較すると以下の通りである。
モデルサイズ | 時間(h:m:s) |
---|---|
20ブロック256フィルタ | 0:07:25 |
30ブロック384フィルタ | 0:19:44 |
学習時間は、約2.66倍になっている。
まとめ
dlshogiのモデルサイズを30ブロックにした場合、20ブロックに対してどれくらい強くなるか測定を行った。
その結果、同じ持ち時間で20ブロックを上回ることが確認できた。
20ブロックのモデルの精度は飽和しているが、30ブロックはまだ学習途中であり、さらに強くできる余地がある。
今のところ経験的には、モデルサイズは大きいほどよいという法則が成り立ちそうである。
ただし、学習時間は、約2.66倍になっているため、いきなり大きいモデルを学習するより段階的に大きくしていくのが効率がよいと考える。
また、より大きなモデルサイズを学習するには、同じバッチサイズではGPUメモリが不足するため、学習の工夫も必要になってくる。