TadaoYamaokaの開発日記

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

将棋でディープラーニングする その44(L2正則化)

将棋AIのPolicy NetworkとValue Networkのマルチタスク学習でのL2正則化の効果を測定してみた。

正則化なし

loss

f:id:TadaoYamaoka:20171108225146p:plain

policy accuracy

f:id:TadaoYamaoka:20171108225221p:plain

value accuracy

f:id:TadaoYamaoka:20171108225349p:plain

L2正則化係数10^{-4}

loss

f:id:TadaoYamaoka:20171108224557p:plain

policy accuracy

f:id:TadaoYamaoka:20171108224625p:plain

value accuracy

f:id:TadaoYamaoka:20171108225416p:plain

考察

正則化なしでも、trainとlossにそれほど差がないが、L2正則化を行うとtrainとtestの差が縮まっている。
その代わりに、policy、vlaueともに2%くらい一致率が下がっている。

この結果から汎化が行われていると考えらるが、一致率が下がった分で実際の対局でプラスに働くかは検証が必要そうだ。

AlphaGo Zeroのように自己対局のみで学習する場合は、局面の偏りが心配なのでL2正則化は行った方がよいだろう。


なお、L2正則化係数を10^{-6}にした場合は、正則化なしとほぼ同じグラフになった。
正則化の効果を得るには、L2正則化係数10^{-4}くらいが適している。