TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

dlshogiモデルの20ブロックから15ブロックへの知識蒸留 追試3

前回、知識蒸留を訓練データと教師モデルの損失の加重平均の定数αを0.5として実験を行った。
今回は、加重平均の重みを変えた場合、精度がどうなるか測定を行った。

測定条件

前回同様、20ブロックで生成した9.4千万局面(同一局面を平均化すると7千万局面)を4回学習して平均をとった。
テストデータにはfloodgateのR3500以上の棋譜からサンプリングした856,923局面(重複なし)を使用して評価した。

加重平均の重みαを0.5間隔で、0.1から1.0まで変えて測定した。

測定結果

α 方策損失 価値損失 方策正解率 価値正解率 方策エントロピー 価値エントロピー
0.1 1.60698 0.505132 0.480804 0.734947 1.49409 0.540332
0.15 1.60263 0.506017 0.481807 0.735788 1.48387 0.545142
0.2 1.60312 0.505668 0.481598 0.733918 1.48159 0.539327
0.25 1.58656 0.503157 0.484355 0.736562 1.52102 0.538759
0.3 1.58466 0.503933 0.484215 0.735826 1.52038 0.539561
0.35 1.57905 0.500783 0.486399 0.738813 1.49021 0.540224
0.4 1.5764 0.501644 0.486628 0.738217 1.46723 0.540727
0.45 1.57319 0.500583 0.488551 0.739876 1.46005 0.543836
0.5 1.56615 0.499192 0.489034 0.739882 1.46168 0.538403
0.55 1.56197 0.500301 0.489854 0.737833 1.47995 0.535539
0.6 1.5572 0.496855 0.491315 0.740528 1.46828 0.531793
0.65 1.55695 0.499539 0.4914 0.738961 1.48587 0.536122
0.7 1.55045 0.498439 0.491489 0.737653 1.48159 0.529342
0.75 1.54945 0.494728 0.493544 0.742642 1.44617 0.537118
0.8 1.54194 0.498245 0.494441 0.738034 1.46762 0.531861
0.85 1.54648 0.49758 0.493124 0.738736 1.46468 0.532081
0.9 1.54223 0.492926 0.494346 0.744595 1.45524 0.536197
0.95 1.53431 0.492048 0.495625 0.744749 1.46186 0.535263
1 1.53683 0.493845 0.495505 0.743569 1.47055 0.536352

損失と正解率のグラフはそれぞれ以下の通り。

α=0.95の時、損失が最も低く、正解率が最も高くなった。
訓練データよりも、教師モデルの損失の重みを大きくした方が精度が高くなることがわかった。
訓練データよりも、教師モデルの出力の方がより多くの情報を含んでいるためと考えられる。

訓練データは、教師モデルの自己対局で生成したデータであるため、このような傾向になった可能性がある。
教師モデルと無関係のデータを使用した場合は別の傾向になるかもしれない。

まとめ

知識蒸留の、訓練データと教師モデルの損失の加重平均の重みを変えて測定を行った。
結果、教師モデルの損失の重みの方を大きくした方が精度が高くなることがわかった。

訓練データに教師モデルと無関係のデータを使った場合や、収束するまで学習した場合にどうなるかは確認できていないため、別途検証したい。