前回、NNUE系のtanuki-で生成した教師データを使用して、dlshogiのモデルで方策と評価値、勝敗を付け替えた場合に、dlshogiの推論結果で付け替えた方が精度が上がることが確認できた。
今回は、dlshogiの最新モデルの自己対局で生成したデータに対して、同一モデルで付け替えを行った場合、どうなるか追加で検証したい。
データの質は下がるはずだが、加重平均の係数0.1など小さい値であれば、ラベルスムージングの効果が得られるかもしれない。
自己対局データ
dlshogiの最新のモデルで、平均で約7500ノード探索して自己対局した教師データを使用する。
探索ノード数は、探察打ち切りや延長を行っているため、局面により異なっている。
開始局面は、dlshogの定跡に登録されている局面から抽出している。
精度評価
付け替え条件
加重平均の係数0.9、0.1、0.05、0.01で、方策、評価値、勝敗を付け替える。
比較のために、付け替えない条件でも学習する。
データ数
同一局面を平均化した後で50,878,296局面を学習する。
データ数は、前回の77%程である。
学習条件
前回と同じ条件とする。
- バッチサイズ: 4096
- エポック数: 8
- 評価値と結果の加重平均の按分係数(val_lambda): 0.333
- 学習率: 0.04から1エポックごとに半減
- オプティマイザ: MomentumSGD
- 同一局面は平均化
- モデル: ResNet 20ブロック256フィルタ
- 評価値の付け替えに使用するモデル: dlshogiの40ブロック512フィルタのモデル
学習結果
テストデータに、2017年~2018年6月のfloodgateのR3500以上の棋譜からサンプリングした856,923局面(重複なし)を使用して、評価した結果は以下の通り。
| 加重平均の係数 | 方策損失 | 価値損失 | 方策正解率 | 価値正解率 |
|---|---|---|---|---|
| 0.9 | 1.6183 | 0.5150 | 0.4846 | 0.7300 |
| 0.1 | 1.6400 | 0.5388 | 0.4733 | 0.7096 |
| 0.05 | 1.6521 | 0.5488 | 0.4708 | 0.7032 |
| 0.01 | 1.6517 | 0.5531 | 0.4712 | 0.7014 |
| 0 | 1.6481 | 0.5526 | 0.4716 | 0.7021 |
同一モデルで探索して生成したデータを、探索なしで推論した結果に付け替えるので、精度は下がると予想していたが、加重平均の係数0.9で付け替えた場合が最も精度が高くなった。
学習の精度は、教師データの学習しやすさと関係しているかもしれない。
探索して生成したデータは、局面を先読みした結果なので、読むことができないモデルには学習が難しいのかもしれない。
教師データは、必ずしも深く探索したデータがよいとは限らないという仮説が成り立ちそうである。
まとめ
dlshogiの最新モデルの自己対局で生成したデータに対して、同一モデルで付け替えを行った場合、精度がどうなるか検証した。
結果、同一モデルで生成したデータでも付け替えを行った方が精度が上がるという結果になった。
データの質は下がるはずなので、精度が下がると予想したが、予想に反する結果になった。
学習の精度は、データの学習のしやすさと関連している可能性がある。
より大きなパラメータ数のモデルで学習した場合は、読みの結果を反映できるのか追加で検証したい。