ResNet15ブロックのモデルで生成した教師データを用いて、20ブロックのモデルを学習し、精度と強さを比較してみた。
モデルサイズ
15ブロックのモデルは、15ブロック224フィルタ
20ブロックのモデルは、20ブロック256フィルタ
1ブロックは畳み込み2層
活性化関数はSwish
学習時間比較
1バッチ学習を1ステップとして、1000ステップ学習にかかった平均時間は以下の通り。
時間(時:分:秒) | 比 | |
---|---|---|
15ブロック | 0:05:41 | |
20ブロック | 0:07:35 | 133% |
20ブロックのモデルは、学習に約1.33倍時間がかかっている。
精度比較
2017年~2018年6月のfloodgateのR3500以上の棋譜からサンプリングした856,923局面(重複なし)を使用して精度を比較した。
教師データにはfloodgateの棋譜も含んでいるが、テストデータの期間の棋譜は含んでいない。
なお、学習にテストデータを含めてしまうと精度が大幅に良く出てしまうので注意が必要である。
第2回電竜戦のGCTでは、方策の精度が0.60、価値が0.79になったと聞いていたが、dlshogiのテストデータを使うとそれぞれ0.49、0.74くらいで、GCTのテストデータを学習に含めていたことで精度が良く見えていた(リークした)状態であった。
15ブロックのモデルは、教師データ継ぎ足しながら学習しているため、完全に同じではないが、精度を比較した。
SWAを適用した後のモデルで比較する。
エポック数 | 方策精度 | 価値精度 | |
---|---|---|---|
15ブロック | 14エポック | 0.5269174 | 0.7633635 |
20ブロック | 12エポック | 0.5374750 | 0.7670151 |
20ブロックのエポック数は15ブロックにまだ追いついていないが、精度は、15ブロックよりすでに大幅に良くなっている。
強さの比較
ブロック数が増えると、探索速度が落ちるため、強さの比較は、同一探索ノード数の条件、同一持ち時間での条件で比較した。
同一探索ノード数
探索ノード数を10万に固定して比較した結果は、以下の通り。
固定4000万ノードの水匠5も加えたリーグで測定した。
# PLAYER : RATING ERROR POINTS PLAYED (%) CFS(%) W D L D(%) 1 pre21-nodes100k : 68.4 12.1 1010.0 1600 63 100 958 104 538 6 2 pre17-nodes100k : 14.2 11.7 843.5 1600 53 100 790 107 703 7 3 suisho5-40m : -82.6 11.7 546.5 1600 34 --- 511 71 1018 4 White advantage = 95.31 +/- 7.34 Draw rate (equal opponents) = 6.38 % +/- 0.53
※pre21が20ブロック、pre17が15ブロック
20ブロックのモデルが、R+54.2になっている。
固定ノード数では、推論速度によらずモデルの精度のみで比較するため、テストデータでの精度比較の通り、20ブロックの方が強いという結果になった。
自己対局は、ノード数固定で行っているため、今後は20ブロックのモデルを使って自己対局を行うことにしたい。
同一持ち時間
持ち時間400秒、1手2秒加算で対局させて強さを比較した。
1GPU3スレッドのdlshogiとほぼ同じ強さになるように、32スレッド水匠5の持ち時間は1600秒として、リーグ戦で測定した。
# PLAYER : RATING ERROR POINTS PLAYED (%) CFS(%) W D L D(%) 1 suisho5-32thx4 : 7.5 19.3 254.5 495 51 62 215 79 201 16 2 pre17 : 2.4 19.8 253.0 501 50 76 217 72 212 14 3 pre21 : -9.9 19.7 238.5 496 48 --- 201 75 220 15 White advantage = 109.25 +/- 11.94 Draw rate (equal opponents) = 16.05 % +/- 1.46
※pre21が20ブロック、pre17が15ブロック
15ブロックの方が、R+12.3という結果になった。
ただし、CFS(信頼度)は76%であり、誤差の範囲である。
20ブロックは精度は高くなったが、同一持ち時間では、強さは15ブロックと同程度である。
NPSの比較
15ブロックと20ブロックで、探索速度(NPS)を比較した。
floodgateの棋譜からサンプリングした100局面で、8GPU4スレッドで1秒探索した際の結果は以下の通り。
pre17 pre21 count 100.000000 100.000000 mean 380754.050000 303340.570000 std 38671.979844 22344.165674 min 250165.000000 223958.000000 25% 366500.750000 291622.500000 50% 391344.000000 306276.500000 75% 409446.500000 318108.250000 max 431834.000000 373004.000000
※pre21が20ブロック、pre17が15ブロック
20ブロックの方のNPSは平均で79.6%に低下している。
まとめ
15ブロックと20ブロックで同じ教師データを学習した場合のモデル精度と強さを比較した。
モデル精度は、20ブロックが大幅に高くなることがわかった。
強さは、同一ノード数の場合、20ブロックがR+54.2になり、同一持ち時間ではほぼ同じになった。
15ブロックのモデルは、追加学習しても強くならなくなっているため、今後は20ブロックのモデルで学習を行うつもりである。
現状では、モデル精度と探索速度が釣り合っている状態のため、大会の持ち時間で比較した上で、大会でどちらのモデルを使うか決めたい。
定跡作成は固定ノード数で行えるため、20ブロックのモデルで行った方がよさそうである。