前回、ResNetベースのモデルにおける位置エンコーディングの効果について測定した。
結果、位置エンコーディング有無による差は、ほぼなかった。
入玉の局面においては、差がある可能性があるため、追加で検証した。
実験条件
評価データとして、
- NNUE系1000万ノードで探索した棋譜から、どちらかが入玉した以降の局面(1371047局面)
- dlshogiの自己対局(1万ノード)で生成した棋譜から、どちらかが入玉した以降の局面(1502134局面)
の2つのデータセットで評価する。
モデルは、ラージカーネルの検証で使用した、20ブロック256フィルタのResNetに対して9x1と9x1と1x1のブロックを5ブロック間隔で入れ替えたモデルをベースのモデルとして、学習可能な位置エンコーディングを入力層の活性化関数の前または後に加えたモデルで比較する。
結果
考察
どちらのデータセットでも、方策の精度はベースモデルが高く、価値の精度はほぼ同じという結果になった。
(なお、位置エンコーディングを活性化関数前に加えたモデルでは、価値損失がnanになり、学習に失敗している。これは、位置エンコーディングの正規化を行っていないことが関係しているかもしれない。)
位置エンコーディングがある方が、入玉の局面を正しく判断できると予想したが、予想と反対の結果になった。
前回説明した通り、将棋AIのモデルでは、プーリングを行わないため、各位置の特徴量が位置の情報を保持している。
そのため、明示的に位置エンコーディングを行わなくても、盤面全体の駒の配置から相対的な位置の情報を捉えることができる。
この実験結果からは、明示的な位置エンコーディングは不要と言えそうである。
位置エンコーディングを加えることで精度が下がっていることを考えると、位置の情報は相対的なものであるため、絶対的な位置のエンコーディングはむしろなくした方がよいと言えるかもしれない。