TadaoYamaokaの開発日記

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

将棋AIの実験ノート(初期値とシャッフルの影響)

各種条件を変更して比較実験を行っているが、初期値とシャッフルにランダム性があるので、測定結果は毎回ばらつきがある。
ランダムシードを固定すると結果が同じになるが、そのシード値での比較にしかならないので、固定しないで測定している。
複数回測定して統計的に比較した方がよいが、実験に時間がかかりすぎるのでできていない。

毎回行わないにしても、一つの条件で複数回測定して、初期値とシャッフルによる結果のばらつき具合を確認しておきたい。
そこで、先日のSEResNetのモデルの学習を初期値から2500万局面の学習を14回(2日で測定できた分)測定して、Pandasで統計量を表示させてみた。

訓練損失

train loss average
count 14
mean 1.516394
std 0.001418
min 1.513539
25% 1.515517
50% 1.516475
75% 1.517473
max 1.518854

テスト損失

test loss(policy) test loss(value) test loss(eval) test loss(sum)
count 14 14 14 14
mean 1.029515 0.598088 0.64829 1.644319
std 0.004993 0.00286 0.002039 0.005775
min 1.023603 0.593676 0.64615 1.63495
25% 1.025503 0.596493 0.64685 1.640151
50% 1.02841 0.597624 0.647721 1.644488
75% 1.032528 0.599781 0.648773 1.649289
max 1.038524 0.602845 0.653469 1.653205

テストaccuracy

test accuracy(policy) test accuracy(value)
count 14 14
mean 0.369727 0.661483
std 0.00206 0.005618
min 0.366104 0.650109
25% 0.368686 0.6581
50% 0.37043 0.662966
75% 0.371367 0.664878
max 0.3721 0.669561

テスト局面を推論した際のエントロピー

test entropy(policy) test entropy(value)
count 14 14
mean 2.111307 0.631886
std 0.038889 0.00333
min 2.022084 0.623964
25% 2.094391 0.630838
50% 2.11782 0.632153
75% 2.13492 0.633946
max 2.159858 0.6374

考察

訓練損失のばらつきはテスト損失に比べて小さい。
policyのテスト損失(交差エントロピー)の標準偏差は、value、evalに比べて大きく、0.015の範囲でばらついている。
テスト局面を推論した際のエントロピーはばらつきが大きく約0.14の範囲でばらついている。
比較結果が今回調べたばらつきの範囲以内の場合は、誤差の範囲と言えそう。


2500万局面の学習には3時間くらいかかっているので、学習局面を減らして測定回数を増やして、t検定とかで判断する方がよいかもしれない。
(論文書くわけではないのでそこまでする気はあまりないけど)そのうち試してみたい。