前回、dlshogiの最新モデルで、自己対局して生成した教師データを、同じモデルで推論した結果に付け替えることで、モデルサイズによらず精度が上がる傾向があることを確かめた。
今回は、dlshogiの最新モデルではなく、既存の教師データを使い、そのデータを学習したモデルで、同じ教師データの付け替えを行って、再度初期から学習した場合に精度が上がるか確認する。
これにより、モデルの推論結果が、学習した教師データ以上に、精度を上げる効果があるかがわかる。
また、学習に使用していない局面の付け替えを行って、学習に使用したデータに追加して学習した場合に精度が上がるかも確認する。
既存の教師データ
dlshogiの探索ありで自己対局して生成した50,878,296局面を学習する。
比較パターン
- 既存の教師データを学習したモデル
- 1.のモデルで、既存の教師データの付け替えを行ったデータを学習したモデル
- 1.のモデルで、新規のデータの付け替えを行って、既存の教師データに加えて学習したモデル
- 1.のモデルで、新規のデータの付け替えを行って、2.と同様に既存の教師データの付け替えを行ったデータに加えて学習したモデル
新規のデータには、nodchip氏が公開しているtanuki-の教師データから抽出した63,965,555局面を使用する。
付け替え
方策、価値、勝敗を係数1で完全に推論結果に付け替える。
学習条件
- バッチサイズ: 4096
- エポック数: 8
- 評価値と結果の加重平均の按分係数(val_lambda): 0.333
- 学習率: 0.04から1エポックごとに半減
- オプティマイザ: MomentumSGD
- 同一局面は平均化
- モデル: ResNet 20ブロック256フィルタ
評価精度
テストデータに、2017年~2018年6月のfloodgateのR3500以上の棋譜からサンプリングした856,923局面(重複なし)を使用して、評価した結果は以下の通り。
パターン | 方策損失 | 価値損失 | 方策正解率 | 価値正解率 |
---|---|---|---|---|
1 | 1.6481 | 0.5526 | 0.4716 | 0.7021 |
2 | 1.6960 | 0.5343 | 0.4708 | 0.7143 |
3 | 1.6811 | 0.5270 | 0.4793 | 0.7195 |
4 | 1.5988 | 0.5296 | 0.4858 | 0.7172 |
パターン1(既存の教師データを学習)とパターン2(付け替えたデータを学習)を比較すると、パターン1の方が方策の精度が高く、パターン2の方が価値の精度が高い。
方策と価値の精度は、学習が進む過程で、どちらかに一時的に偏ることがあるため、どちらが良いとも言い難い。
少なくとも価値に関しては、モデルの推論結果に付け替えを行ったデータで、元の学習に使用したデータ以上の精度を出せるようだ。
パターン3(新規の付け替えたデータを既存データに加えて学習)とパターン4(新規の付け替えたデータを既存データを付け替えたデータに加えて学習)は、パターン1とパターン2と比較して、はっきりと方策、価値ともに精度が上がっている。
新規データはモデルの推論結果に完全に付け替えているため、局面さえあれば差し手や評価値、対局結果は不要である。
つまり、生成コストがかからないデータを使用することができ、それを付け替えたデータを加えることで、精度を向上できるということである。
パターン3とパターン4の比較では、方策損失はパターン4が小さくで、価値損失はパターン3の方が少しだけ小さい。
新規の付け替えたデータを加える場合、既存データも付け替えた方がよさそうである。
大きなサイズのモデル
ResNet 30ブロック384フィルタのモデルでも検証した。
パターン | 方策損失 | 価値損失 | 方策正解率 | 価値正解率 |
---|---|---|---|---|
1 | 1.6482 | 0.5961 | 0.4757 | 0.6871 |
2 | 1.6824 | 0.5313 | 0.4768 | 0.7160 |
3 | 1.7229 | 0.5293 | 0.4819 | 0.7176 |
4 | 1.5860 | 0.5432 | 0.4914 | 0.7105 |
各パターンの傾向は、ResNet 20ブロック256フィルタの場合と同じである。
まとめ
既存の教師データを学習したモデルで、学習に使用したデータの付け替えを行って、初期から再度学習した場合に、学習した教師データ以上に、精度を上げる効果があるか確認した。
結果、少なくとも価値については、推論結果に付け替えた場合、元の教師データ以上の精度になった。
また、新規の付け替えたデータを、元の教師データに加えて学習した場合、大きく精度が向上することが確認できた。
新規のデータは、局面さえあればよく、生成コストがかからないため、少ないコストでモデル精度を向上できる。
前回の記事でも書いたが、画像認識の分野では、ラベルなしデータに疑似ラベルを付けて学習する半教師あり学習の手法は以前から行われている。
それと同様の効果が将棋AIの学習でも得られることが分かった。
強化学習の課題でもあるサンプル効率の低さを、ある程度解決できる手法が発見できたかもしれない。
自己対局で生成したデータ+疑似ラベルを付けたデータで学習するという手法は、今後将棋AIの学習で主流になりそうである。