世界コンピュータ将棋選手権のオンライン大会(WCSOC)に向けて、これ以上レートが伸びそうにないのでここで結果をまとめておきます。
実行ファイル
Windows向け実行ファイルをGitHubで公開しています。
CPU版
GPU版
CPU版はNPS50くらいしか出ないのでほぼお試し用です。GPU版もWindowsではなぜかNPSが低く、手元では3,000くらいしか出ませんでした(コンパイル時に最適化を上手くかけられていない気がします)。Ubuntu 18.04では16,000くらい出るのでUbuntu推奨です。Ubuntuでの実行ファイルは……自分でビルドしていただく方針で(README.md参照)。
最終的に行った実験
学習
ランダムに初期化したパラメータからAlphaZeroと同様の形式で強化学習
項目 | 値 |
---|---|
バッチサイズ | 512 |
学習ステップ数 | 2,000,000 |
データ生成速度 | 112.2 局面 / 秒 |
1ステップあたりの生成量 | 128 局面 |
学習率 | 0.025(1Mステップ時点で1/10、1.5Mステップ時点でさらに1/10) |
リプレイバッファサイズ | 局面 |
1局面の探索回数 | 800 |
マシン | 2080ti × 2搭載 |
学習時間 | 672時間32分 (=28日) |
学習結果
検証損失として、floodgate2015年の棋譜からレート2800以上同士の対局者による棋譜のみを抽出し、Policyでは指し手に対する交差エントロピー、Valueでは勝敗を1,-1として自乗誤差を計算
対局
CPU:Intel i7-6700K @4.00GHz, GPU RTX 2080ti
Miacis側は1手1秒、YaneuraOu/Kristallweizen(4Thread, 定跡オフ)は1手0.2秒で対局。引き分け、入玉などのルールはWCSC30のルールに準拠。
こうしてみると1Mステップ時点でもまだ伸びているので学習率を減衰させるのが早すぎたかもしれない。
YaneuraOu/Kristallweizen(4Thread, 定跡オフ)側も1手1秒にして500局対局した場合
対局数 | 勝数 | 引き分け数 | 敗数 | 勝率 | 相対Eloレート |
---|---|---|---|---|---|
500 | 94 | 0 | 406 | 18.8% | -254.2 |