現在のdlshogiの入力特徴量には、入玉宣言に関連する特徴量を含んでいない。
入玉宣言の精度を上げるため、入玉宣言に関する特徴量を加えることを検討する。
現在の入力特徴量
現在の入力特徴量:
- 盤上の駒
- 駒の種類ごとの効き
- 効き数
- 持ち駒
- 王手
持ち駒は、歩については、8枚以上は区別しない。
また、先手、後手の区別はなく、後手は盤面を180度回転して入力する。
課題
この入力特徴量では、入玉宣言勝ちの条件を正しく認識できない問題がある。
入玉宣言勝ちは、正確な持ち駒の枚数が必要なため、8枚以上の歩も認識する必要がある。
また、先手、後手で宣言に必要な点数が異なるため、先手、後手を区別する必要がある。
また、機械学習モデルでは、点数の合計など演算が必要な特徴量は、演算結果を特徴量として入力する方が精度が上がる場合がある。
入玉特徴量
先手、後手の区別について、入玉宣言に関わらない局面では、先手、後手の区別は不要であるため、単に先手、後手を特徴量とするよりも、入玉宣言に必要な残り点数を特徴量とすることで、間接的に先手、後手の区別することにする。
こうすることで、局面を先手、後手で等価に扱える。
点数すべてを特徴量にすると、計算コストが増えるため、残り点数10点未満を特徴量とする。
入玉特徴量:
- 入玉しているか
- 敵陣の玉を除く枚数(10枚までの残り枚数。9枚以下をワンホットで与える。)
- 残り点数(先手は28点、後手は27点までの残り点数。9点以下をワンホットで与える。)
実験
入玉特徴量の有無で、精度が変わるか比較した。
訓練条件:
- ResNet 20ブロック256フィルタのモデル
- 訓練データ約3.9億局面
- バッチサイズ4096
- Momentum SGD
- 学習率0.04からエポックごとに半減
- 8エポック
評価データは、2017年~2018年6月のfloodgateのR3500以上の棋譜からサンプリングした856,923局面の他に、NNUE系の10M~80Mノードで対局した棋譜から入玉宣言勝ちした棋譜を抽出した20,544,764局面を用いた。
精度はばらつくため4回測定して平均する。