各種条件を変更して比較実験を行っているが、初期値とシャッフルにランダム性があるので、測定結果は毎回ばらつきがある。
ランダムシードを固定すると結果が同じになるが、そのシード値での比較にしかならないので、固定しないで測定している。
複数回測定して統計的に比較した方がよいが、実験に時間がかかりすぎるのでできていない。
毎回行わないにしても、一つの条件で複数回測定して、初期値とシャッフルによる結果のばらつき具合を確認しておきたい。
そこで、先日の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検定とかで判断する方がよいかもしれない。
(論文書くわけではないのでそこまでする気はあまりないけど)そのうち試してみたい。