山下さんがAobaZeroのKL情報量を調べていて、気になったのでdlshogiでも調べてみた。
KL情報量は、2つの確率分布の差異を測る指標である。
ニューラルネットワークで予測したポリシーと、MCTSで探索した結果のルートノードでの訪問回数のKL情報量を測ることで、どれくらいポリシーの予測が外れているかが確認できる。
KL情報量
Pをポリシーの確率分布、Qを訪問回数の確率分布とすると、KL情報量は以下の式で表される。
測定結果
連続対局を行い、手数ごとのKL情報量の平均を算出した結果は、以下の通り。
seabornで95%信頼区間も表示している。
sns.relplot(x='ply', y='kld', kind='line', data=df, aspect=1.5)
考察
開始局面付近での、KL情報量は小さく、探索しなくてもポリシーのみで正確な手が予測できていることがわかる。
50手くらいまで右肩あがりにKL情報量が上がり、50数手でピークになる。
50手から100手くらいでKL情報量が高い状態が続き、中盤に難解な局面があることがわかる。
100手を超えると徐々にKL情報量が下がっていき、終局に近づくほど予測しやすくなっている。
200手を超えると分散が大きくなっているのは、サンプルが少ないことが原因と考えられる。
サンプル数
まとめ
dlshogiのポリシーと訪問回数のKL情報量を調べた。
50手から100手付近がKL情報量が高くなり、中盤に探索が重要な局面が多いことが確かめられた。
中盤により探索の時間をかけた方がよいと言えそうで、時間制御にKL情報量を利用すると効果的である可能性がある。
別途、KL情報量を時間制御に利用する方法を検証したい。