TadaoYamaokaの開発日記

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

第3回世界将棋AI電竜戦 結果報告

週末(12/3,4)に開催された第3回世界将棋AI電竜戦に参加しました。

HEROZチームとして、「dlshogi with HEROZ 30b」と「dlshogi with HEROZ 20b」という2つのソフトでエントリしました。

大会の概要

世界将棋AI電竜戦は、コンピュータ将棋開発者の有志により立ち上げられたコンピュータ将棋の大会です。
毎年11月末ごろに開催されており、今年が3回目の開催で、34チームが参加しました。
予選を通過した上位10チームで総当たりのリーグ戦(A級リーグ)で優勝が争われました。

電竜戦では、人間による参加も可能で、人間はプレイ中にAIで検討することも可能です。
後で書きますが、この大会ではこれが優勝を分けることになりました。

大会の結果

A級リーグでは、「dlshogi with HEROZ 30b」が15勝3敗で準優勝となりました。
「dlshogi with HEROZ 20b」は13勝5敗で3位でした。

最終局

優勝争いとなった最終局では、後手番で千日手以上で優勝でしたが、先手番の水匠が用意した角換わりの長い定跡に嵌ってしまい、定跡を抜けた時点でdlshogiの評価値で先手+257の局面でそのまま逆転することなく負けてしまいました。

vsあらきっぺさん

3敗のうち1敗は、水匠とdlshogiを検討に使った人間による参加のあらきっぺさんに負けており、こちらも事前に準備された先手角換わりの作戦にやぶれています。
優勝した水匠の方では、角換わりの手順であらきっぺさんに操作ミスがあったということで千日手になっています。
dlshogi側が後手勝率の悪い角換わりを避けることができていないということなので、
今後の改善のテーマを与えてくれたと思って、結果については受け入れます。
ただ、結果のみが真実です。

2つのソフトの違い

ディープラーニングのモデルサイズが異なる2つのソフトで参加しています。
「dlshogi with HEROZ 30b」は、ResNet30ブロック384フィルタのモデルサイズで、
「dlshogi with HEROZ 20b」は、ResNet20ブロック256フィルタのモデルサイズです。

ブロック数とパラメータ数

ブロック数が増えるとパラメータ数は、比例して増えます。
フィルタ数が増えると、パラメータ数は、2乗で増えます。
30bのパラメータ数は、20bの3.375倍になります。

精度と探索速度

パラメータ数が増えることで、精度が大幅に向上しています。
その代わり、推論速度が遅くなり、NPSは、GPUにA100を使用した場合約1/3になります。

強さは、互角局面を使用した測定では、
同一探索数で、30bがR+163.1、
同一持ち時間では、30bがR+24.2で、30bがわずかに強いくらいです。

大会では、どちらが強いか確認したかったため、2つのソフトで参加しました。
結果は、それほど差はなかったようです。

今後の課題

先手角換わり定跡

今回の結果で、先手角換わり定跡は、dlshogiの探索のみで回避するのは難しいことが分かりました。
後手番の定跡で勝率の悪くない別の戦型にすることがとりあえずの対策になりますが、dlshogi自身を強くすることにはならないため、根本的な対処方法を考えたいと思っています。
モデルの精度を向上させて、正しく評価できるようにすることを目指すつもりです。
それには、何らかの学習方法の改善が必要になるだろうと思っています。

終盤優勢からの逆転

8回戦では、先手番でNNUE系ソフトのJoyful Believerと水匠にそれぞれ20bと30bが終盤優勢から逆転されて負けています。
終盤はNNUE系よりディープラーニング系の方が間違うことが多いというのは以前から言われていますが、
最近のdlshogiは終盤の精度もかなり上がってきています。
モデル精度を上げていくことで、こういうケースは徐々に減っていくはずだと思っています。

まとめ

大会に参加したことで、技術的にまだ解決できていない課題を見つけることができました。
根本的な改善となるような新しい手法を見つけたいと思っています。

運営の皆様、参加者の皆様、2日間長丁場大変お疲れさまでした。