前回に考えたように、時系列モデルに表現を突っ込む際には1次元化して投入したくなる。CチャンネルだとしてC×9×9の要素数になるため、そこまでCを大きくはできない。具体的にはC=8くらいを想定している。
C = 8として学習する際に、方法としては
- ResNetを通しているうちは256chで、最終層(Policyヘッド、Valueヘッドの直前)の前に256→8chとする3×3のConv層を追加する
- 最初からずっと8chでResNetを通していく
の2通りがあり得る。今回は実際に学習させてそれぞれの性能を確認した。
結果
学習結果
明らかに「常に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は不参加です。