方策とディリクレノイズの比率を変更した学習

 Miacisではメモリの関係上、指し手の教師信号として実際に指された手をOnehotベクトルとしたものを利用しており、そのためか方策が偏りやすい傾向にある。

 AlphaZeroの学習アルゴリズムでは、各探索でルートノードにおいてディリクレノイズDと元の方策\piの内分を取ることで探査を促進している。

$$ \pi' = (1 - \epsilon)\pi + \epsilon D $$

 Miacisの学習でも今までは元論文の通り\epsilon = 0.25としていたが、この\epsilonを大きくすることで方策がバラけないか試してみた。\epsilon = 0.5として学習を行った結果、200kステップ学習後の検証損失は次のようになった。

\epsilon = 0.25 \epsilon = 0.5
Policy損失 3.27 3.20
Value損失 0.882 0.876

 損失としてはわずかに改善が見られた。

 学習後のモデルが初期局面で示す方策について、主要な指し手についての確率を比較すると次のようになった。

指し手 \epsilon = 0.25 \epsilon = 0.5
▲2六歩 80.1% 78.2%
▲7八金 11.3% 3.6%
▲7六歩 2.6% 7.2%
その他 6.0% 11.0%

 偏りはやはり見られたが、その他の指し手についても値を見ると全体に少しだけ値がついており、わずかだが狙い通りの学習ができている。

 1手1秒で100局の対局を行うと\epsilon = 0.5で学習したものは\epsilon = 0.25で学習したものに対して勝率37.5%であった。散り方がランダムでは棋力としては弱くなってしまうようだ。この自己対局では序盤30手を探索した回数の割合を確率として指すことでランダム性を確保しており、そこで悪い手を指す確率が高くなっているのかもしれない。

 上の実験は普通のAlphaZero(つまりTDLeaf(λ)において\lambda = 1とした場合)として実験を行った。念の為\lambda = 0.9でも同じ結果になるか検証した。

\epsilon = 0.25 \epsilon = 0.5
Policy損失 3.26 3.13
Value損失 0.937 0.900

 損失はやはり\epsilon = 0.5とした方が小さくなった。しかし1手1秒で100局の対局を行うと勝率は26.5%となりやはり弱くなっている。ランダム手数を30手から10手へと小さくして対局を行うと勝率は36%となり、序盤での悪手が減った結果勝率が改善されたが、それでも全体として弱いことは確かなようだ。