損失と棋力の関係

動機

 Miacisでは強化学習の最中にも定期的にfloodgateの棋譜を用いて検証損失の計測をしている。対局には計算コストがかかるため、検証損失の値から大雑把にでも性能が把握できると嬉しい。よって今回はこれらの関係を調査した。

使用した結果

 基本的にはこの記事の設定通り。

 上の結果そのものではなくバッチサイズを256として学習し直したもの。

  • Eloレート
    • Miacis0.5秒、YaneuraOU/Kristallweizen(1スレッド)0.1秒による計測
  • 検証損失 : floodgate2015年の棋譜、レート2800以上の対局のみについて計測

 Eloレート、Policy損失、Value損失の順番に並べると次のようになる。

f:id:tokumini:20200403095031p:plainf:id:tokumini:20200403095043p:plainf:id:tokumini:20200403095051p:plain

 だいたいグラフの概形が同じなのでおおむね相関がありそうということはわかる。

 横軸へ損失、縦軸にEloレートを取ってグラフを描いてみる。左がPolicy損失、右がValue損失を横軸にしたもの。

f:id:tokumini:20200403095924p:plainf:id:tokumini:20200403100029p:plain

 直線で近似していいものかよくわからないが、とりあえずそれぞれGoogle スプレッドシートの機能で直線を書き込んでみた。係数はPolicy:-2135、Value:-8649ということになり、Policy損失が0.01小さくなればレートが21上がる、あるいはValue損失が0.01小さくなればレートが86上がるということを意味していると思われる。

 ついでに横軸にPolicy損失、縦軸にValue損失を取ってみると次のようになり

f:id:tokumini:20200403100356p:plain

だいたい4倍の比になる。これが上の0.01あたりのレートの上昇分の比と同じくらいということになる(まぁ同じデータをプロットしているので当然のことだが)

結論

 まとめると、少なくとも今回の試行については

  • Value損失が0.01下がる
  • Policy損失が0.04下がる
  • Eloレートが86上がる

のような関係があると思われる。

 たとえばネットワークを大きくすることを考えると、表現力が上がることにより性能が上がるメリットと、計算が重くなりNPSが落ちるデメリットのトレードオフがある。NPSが1/2になると以前の調査から

だいたいレートが100落ちると考えられる。つまり今回の結果から考えると、NPSが1/2になるような巨大ネットワークを使う場合、もとのネットワークに比べてValue損失が0.01、Policy損失が0.04小さくなる程度では全体としての性能は上がらないと予想できる。

 正直Value損失を0.01も下げるのは結構大変な気がするうえに、NPSが落ちるということは学習時間も大きくなるということなので、実験サイクルが回るのも遅くなる。本当に性能だけを目指すなら巨大ネットワークを使った方が良いのかもしれないが、比較実験をすることを考えると今以上に大きなネットワークはあまり使いたくない。