KL情報量調査の追試

少し前に山岡さんがdlshogiにおけるKL情報量の調査時間制御への実装を行っていました。
手数毎におけるPolicyと各子ノードの訪問回数それぞれの確率分布の差異を可視化することで、
将棋、特にdlshogiにおいてはどこに時間をかけて探索するべきなのかがよく分かる結果になっていました。

一方、Lightweightの方はどうなっているのか気になったので追試がてら調査してみることにしました。


算出方法は山岡さんと同じ方法をとっており、ルートノードにおけるPolicyと各子ノードの訪問回数それぞれの確率分布から算出しています。
まだまだスパイクが残っていますが、取り急ぎ結果を確認したかったので以下に載せておきます。(水匠と50対局を行い、その平均をプロットしています)

基本的な傾向としてはdlshogiと同様で、50手目付近までは大きくなっていったあと、しばらく横ばいに推移して100手を過ぎたくらいから段々と減少してくるようです。

また改めて自分で調査してみて判明したことですが、1対局における手数毎のKL情報量は変動が激しいです。
これを数十局、数百局と数多く平均を取ることで、全体の傾向として上図のような形になっていくように見受けられました。(山岡さんのように1000単位以上でサンプル取れれば、かなり滑らかになるのかも)



■気になったこと(自分用メモ)
①非負性について
KL情報量は2つの確率分布の差異を見ることができるものですが、この式を最初に見たときに値が負になることがないのか気になりました。
ただ、どうやらKL情報量の性質として非負性があるようで、調べると色々と解説しているページが出てきました。
特にこちらの資料の3.2章が分かりやすかったです。

②AobaZeroやdlshogiとの差異
上記2ソフトと比べ、算出したKLDが2倍くらい大きくなっているのですが、これがモデル精度の差なのか実装ミスなのかが単純に気になりました。
直観的にはKLDが小さいほうがモデル精度が良いような気はするのですが、2つの確率分布が完全に独立になっていない(PUCTアルゴリズムの中でPolicyを使っている)ため、より決定論的なモデルでありさえすれば多少KLDも小さくなるのでは....と考えています。

③探索中のKL情報量の算出について
dlshogiは探索中にKLDを計算した上で基本時間に乗じる...という方法を取っているとのことですが、具体的にどのように実装しているのかが不明でした。
そもそも既存での時間制御部分についてもあまり細かい所まで見れていないので、まずは既存仕様の把握から行う予定です。