最終層を8chにしたネットワークの学習

 前回に考えたように、時系列モデルに表現を突っ込む際には1次元化して投入したくなる。CチャンネルだとしてC×9×9の要素数になるため、そこまでCを大きくはできない。具体的にはC=8くらいを想定している。

 C = 8として学習する際に、方法としては

  1. ResNetを通しているうちは256chで、最終層(Policyヘッド、Valueヘッドの直前)の前に256→8chとする3×3のConv層を追加する
  2. 最初からずっと8chでResNetを通していく

の2通りがあり得る。今回は実際に学習させてそれぞれの性能を確認した。

結果

学習結果

左: Policy損失 右: Value損失

 明らかに「常に8ch」だけ上手く学習できていない。「256ch→最後だけ8ch」だと「通常(常に256ch)」にかなり近いレベルまで損失値は落ちている。

対局結果

手法 対局数 勝数 引分数 負数 勝率 相対Eloレート
通常(常に256ch) 500 276 5 219 55.7% +39.8
256ch→最後だけ8ch 500 294 1 205 58.9% +62.5
常に8ch 500 0 0 500 0.0% -

 常に8chにするとてんでダメだが、最後に1層追加して8chに抑える分には問題ないらしい。

所感

 最後に8chに落とす層を追加すれば、精度低下はあまりない形で要素数を抑えることができそうだ。8×9×9=648要素なら、1次元化して時系列モデル等で取り扱うこともなんとかなりそう。

その他

 今年のWCSCは不参加です。