【コンピュータオセロ2】カテゴリカル分布の有効性

 Miacisで用いている手法の主張点は「評価値出力をスカラーではなく、各値になる確率を示すカテゴリカル分布にすることで性能が上がり、探索にも有効活用できる」というところにある。簡単な説明はWCSC30アピール文書を参照。

 そもそも着想の元ネタの一つであるCategorical DQNAtariゲームで効果を上げたものでもあり、これは基本的にゲームによらず有効であると考えられる。よってオセロでも実験することで有効性を確認する。(なぜこれを第一回でやらなかったのか)

実験

 最終層の出力を

  • スカラーの場合1ユニット
  • カテゴリカル分布の場合51ユニット

としたモデルで強化学習を実行する。

 カテゴリカル分布を適切に学習するためには \lambda \lt 1としてTD( \lambda)を行う必要がある。TD( \lambda)の説明は、信頼性の高い英語文献としてはSutton & Bartoの『Reinforcement Learning: An Introduction 2nd Edition』を引くのが正しそう。下からPDFも見れる。

 日本語の解説は、

など。

 同じ条件で実験するため、スカラーの場合もカテゴリカル分布の場合も同じ \lambda(今回は0.75)を使う。(これによりスカラー≠AlphaZeroである。AlphaZeroは教師信号として常に最終結果を使うので \lambda = 1の場合と同値)

実験結果

f:id:tokumini:20200501162240p:plain

 あ、あれ、スカラーの方が強い……!? しかも単に運が良かったという以上に明確な差がありそう……。学部の卒論時点では3層の小さい全結合ネットワークを使い、そのときはオセロでも効果があったのだが、今回将棋と同じように残差ブロックを基本とした畳み込みニューラルネットワークにしたところ逆転してしまった。今回の手法は将棋に限っただけの性能向上なのかもしれない……。

 そもそも将棋でも本当に効果があるのか自信がなくなってきた。冒頭に挙げたスライドに載っている結果はちょっと古いものであり、対戦相手がGikou2 (depth 9)と、やや弱い段階での実験となっている。さらに言えば、このスライドの結果はできるだけAlphaZeroに従ったものであり、つまり \lambda = 1とした結果なので、実は性能向上の寄与はTD( \lambda)の \lambda \lt 1としたところが大きいのかもしれない。こんな単純なことを確認し忘れていたとは……。慌てて将棋の方でもスカラー(TD(0.75))学習を回し始めたが、結果が出るのは2週間後。この手法で論文を書くのは難しそうな雰囲気がしてきたなぁ……。