たややんさんが実施していた棋譜から棋力を推定する方法をdlshogiを使って検証してみた。
棋譜から棋力を推定する手法を検証しており、水匠の評価値をシグモイド関数で疑似的な勝率に変換した上で平均損失を計測する+計測する局面の勝率の閾値を設定するという手法で、24レーティングとの高い相関(相関係数-0.9536)を得られるようになりました。(続く) pic.twitter.com/wTu8pH6Ak7
— たややん@水匠(将棋AI) (@tayayan_ts) 2021年9月17日
dlshogiの設定
棋譜の各局面について、バッチサイズ1で512プレイアウトで探索を行い評価値と最善手を取得する。
勝率の平均損失
まずは、各棋譜ごとに、勝率の平均損失を調べた。
勝率の平均損失は、(着手後の局面の勝率 - 着手前の局面の勝率)の全局面の平均を、各棋譜のプレイヤーごとに求める。
序盤はプレイヤーの好みによるため、分析開始手数は12とした。
詰みの局面の前後は勝率差が極端に大きくなるため、除外した。
全棋譜のプレイヤーのレーティングと勝率の平均損失の関係は以下の通りとなった。
棋譜ごとだと、相関係数は-0.22であり、レーティングと勝率の平均損失の相関は低い。
1棋譜のみで、レーティングを推定するのは難しそうである。
プレイヤーごとに集計
次にプレイヤーごとに集計して、レーティングと勝率の平均損失の関係を調べた。
10棋譜以上あるプレイヤーを対象とした。
プレイヤーごとの棋譜数の統計値は以下の通り。
count 309.000000 mean 15.443366 std 4.381284 min 1.000000 25% 14.000000 50% 17.000000 75% 19.000000 max 22.000000
プレイヤーごとの、レーティングと勝率の平均損失の関係は以下の通りとなった。
レーティング帯で集計
100区切りのレーティング帯ごとで集計して調査した。
レーティング帯ごとの棋譜数は、以下の通り。
レーティング帯ごとの、レーティングと勝率の平均損失の関係は以下の通りとなった。
相関係数は、-0.95となり、強い相関が見られた。
一致率
レーティング帯ごとの一致率についても確認した。
相関係数は、0.97となり、勝率の平均損失よりも強い相関が見られた。
dlshogiの最善手は、従来ソフトよりも人間の手との一致率が高いため、一致率もレーティングの指標にできそうである。
悪手率
1対局で勝率が10%下がる悪手を指した割合を悪手率として、レーティング帯ごとの悪手率についても確認した。
相関係数は、-0.94となり、悪手率にも強い相関が見られた。
勝率の平均損失よりは少し低い。
20%下がる場合を悪手とした場合は、以下の通り。
相関係数は、-0.94となり、20%とした場合もほぼ同じ傾向である。
開始手数
開始手数を12としたが、先行研究では、40手以降としている。
40手以降とした場合の、レーティングと勝率の平均損失の関係は以下の通り。
相関係数は、-0.89となり、12手以降よりも低くなった。
先行研究では従来型のソフトを使用しているため、序盤の評価が不正確であることが影響していた可能性がある。
dlshogiは、序盤から正確な評価ができるため、序盤も含めた方が相関は高くなる。
0手目からとすると、相関係数は下がる。
最序盤の手は、好みの戦型によることを裏付けていると考える。
同様に評価値の閾値についても調査したが、先行研究は評価値の絶対値が200以内の局面を使用していたが、閾値は設けない方が相関係数は高くなった。
評価値の閾値を1000にした場合の相関係数は、-0.91となった。
まとめ
dlshogiで評価した勝率の平均損失とレーティングには強い相関があることがわかった。
ただし、1棋譜のみから推定すると誤差が大きく、レーティングを推測するには少なくとも10棋譜以上は必要である。
dlshogiの最善手との一致率にもレーティングと強い相関があることがわかった。
また、悪手率についても、強い相関がある。
先行研究では評価に序盤の局面を含めると相関係数が低くなるが、dlshogiの場合は序盤の局面を含めても相関係数が下がらないことがわかった。
これは、従来ソフトよりも序盤を正確に評価できることによると考える。
dlshogiによる勝率の平均損失がレーティングの推定に有効であることがわかったので、調査結果を元に作成している将棋アプリの棋力推定機能を実装する予定である。