TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

dlshogiの先手勝率

dlshogiの先手勝率について質問されることがあるので、計測してみた。

持ち時間1分1秒加算で、dlshogi(dr2_exhi)の自己対局と、dlshogiと水匠4の対局で計測した。
対局条件が持ち時間だと、ある程度手が揺らぐため完全に同じ手順になるのは防ぐことができる。

測定条件

  • 持ち時間1分1秒加算
  • dlshogiは、1GPU(V100)、2スレッド
  • 水匠4は、10スレッド、ハッシュサイズ4096

やねうら王は読み筋の成れない飛車が成るバグフィックスのプルリクバージョンを使用した。

dlshogiを2エンジンと水匠4を1エンジンで、リーグ戦で測定した。
リーグ戦では、1局ずつ先手後手を入れ変えて対局している。

測定結果

リーグ戦のレーティング
# PLAYER             :  RATING  ERROR  POINTS  PLAYED   (%)  CFS(%)    W    D    L  D(%)
1 dlshogi-1gpu_2th-2 :    59.6   16.9   506.5     826    61      91  497   19  310     2
2 dlshogi-1gpu_2th-1 :    40.4   16.4   477.5     828    58     100  473    9  346     1
3 suisho4-10th       :  -100.0   17.5   254.0     822    31     ---  241   26  555     3
エンジンごとの先手、後手の勝率

同一手順の対局を除いた、エンジンごとの先手、後手の勝率は以下の通り。

dlshogi-1gpu_2th-1 vs dlshogi-1gpu_2th-2: 175-190-1 (48.0%)
Black vs White: 240-125-1 (65.7%)
dlshogi-1gpu_2th-1 playing Black: 117-67-0 (63.6%)
dlshogi-1gpu_2th-1 playing White: 58-123-1 (32.1%)
dlshogi-1gpu_2th-2 playing Black: 123-58-1 (67.9%)
dlshogi-1gpu_2th-2 playing White: 67-117-0 (36.4%)

dlshogi-1gpu_2th-1 vs suisho4-10th: 275-127-8 (68.0%)
Black vs White: 236-166-8 (58.5%)
dlshogi-1gpu_2th-1 playing Black: 155-46-5 (76.5%)
dlshogi-1gpu_2th-1 playing White: 120-81-3 (59.6%)
suisho4-10th playing Black: 81-120-3 (40.4%)
suisho4-10th playing White: 46-155-5 (23.5%)

dlshogi-1gpu_2th-2 vs suisho4-10th: 280-112-18 (70.5%)
Black vs White: 223-169-18 (56.6%)
dlshogi-1gpu_2th-2 playing Black: 152-41-12 (77.1%)
dlshogi-1gpu_2th-2 playing White: 128-71-6 (63.9%)
suisho4-10th playing Black: 71-128-6 (36.1%)
suisho4-10th playing White: 41-152-12 (22.9%)

dlshogi同士だと、先手勝率は、65.7%とかなり高い値になっている。

dlshogiと水匠4では、先手勝率は、57.55%※となっている。
※「dlshogi-1gpu_2th-1 vs suisho4-10th」と「dlshogi-1gpu_2th-2 vs suisho4-10th」の平均

まとめ

dlshogiの平手初期局面からの先手勝率を測定した。

dlshogi同士の対局では、65.7%と予想以上に先手の勝率が高かった。
ニューラルネットワークには、後手の場合は盤面を180度回転して入力しているため、先手後手の区別は特にしていない。
それが、偏った先手勝率の原因になっている可能性がある。
本来ある盤面が与えられたら、最善手は手番がどちらであるかによらないはず(入玉宣言を除く)なので、手番を区別する必要はないと考えていたが、後手特有の戦略を学習するように、手番を区別して学習した方がよいのかもしれない。

dlshogiと水匠4では、先手勝率は57.55%と高い値になったが、他のソフトでもこれくらいの値になるという話は聞いているので、それほど偏った値ではないと思う。