TadaoYamaokaの開発日記

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

電竜戦長時間マッチ「水匠 vs dlshogi」

明日8/15(日) 17:00から、私の開発した「dlshogi」と電竜戦TSEC優勝ソフト「水匠」との長時間マッチを行います。
対局の様子は、YouTubeニコニコ動画で生配信されます。
先手、後手入れ替えて計2局行います。
第1局は、阿部健治郎七段と佐々木勇気七段のダブル解説、そしてゲスト解説に渡辺明名人をお呼びしています。

予告動画


電竜戦長時間マッチ「水匠 vs dlshogi」第1局

youtu.be

電竜戦長時間マッチ「水匠 vs dlshogi」第2局

youtu.be

ソフトの特徴

従来型将棋AI

「水匠」は、第2回電竜戦TSECで優勝した現在最強の将棋AIです。

  • 探索部

やねうら王ライブラリを使用しており、探索はαβ法を基本として、チェスのStockfishを参考に開発されています。
αβ法ベースの探索は、非常に長い歴史があり1940年代(正確にはミニマックス法、αβ法は1950年代)より改良が続けられています。

  • 評価関数

評価関数には、CPUのみで処理できるニューラルネットワーク(NNUE)を使用しています。
入力特徴量に2駒関係を使った4層のニューラルネットワークで、局面単位に低レイテンシで処理ができることが特徴です。

ディープラーニング

一方「dlshogi」は、従来の将棋AIとは異なるディープラーニングを使用した将棋AIになります。
近年急速に強くなっており、第1回電竜戦でGCTが優勝し、dlshogiが第2回電竜戦TSECのB級で優勝しています。

従来のAIと大きく異なる特徴としては、盤面を画像として入力して指し手を予測する点です(正確には精度を上げるため利きなどの情報も入力しています)。
特に将棋のルールを実装することなく、floodgateの上位ソフトの指し手を、いっさい探索を行わず50%以上の精度で予測できます。
ニューラルネットワークには、畳み込みニューラルネットワークという画像認識で使用されるモデルを使用します。
モデルサイズは、15ブロック(30層)のResNetという深いニューラルネットワークを使用します(最新dlshogiの場合。囲碁では40ブロックとかもっと大きい)。
計算量が多いため、GPUを使用することが前提になっています。

ただし、これだけでは終盤の細い読みが必要になる局面に弱いため、モンテカルロ木探索という探索を組み合わせて動作します。
モンテカルロ木探索は、コンピュータ囲碁で開発された方法で比較的新しい方法(2000年代後半)になります。
ディープラーニングモンテカルロ木探索の組み合わせは、AlphaGoがコンピュータ囲碁で用いて、棋力が飛躍的に向上しました。

  • 探索部

Stockfish系の将棋AIでは、静止探索やキラーヒューリスティックといった、将棋において経験的に効果のあるヒューリスティックを用いて探索効率を上げていますが、モンテカルロ木探索は統計的な手法が用いられておりヒューリスティックがありません。
ヒューリスティックに相当する部分は、ディープラーニングによる指し手の予測(ポリシーネットワーク)が担っています。
ヒューリスティックを用いることで探索の効率を上げることができますが、十分に学習されたポリシーネットワークの方が良いパフォーマンスになります。
ヒューリスティックがない分、モンテカルロ木探索の探索部の実装はシンプルです。

dlshogiの強さ

floodgateのレーティングは4500を超えており、最上位です。
第2回電竜戦TSECのB級で優勝時点からは、追加学習を行ってR+40くらいになっています。

現在の精度は、GCTのノートブックで使用しているテスト局面(2008年~2019年のfloodgateのR3500以上の棋譜)を使用した場合、

バージョン 方策(指し手)一致率 価値(勝敗)一致率
GCT電竜 0.46163575 0.73494528
dlshogi with GCT 0.48964297 0.75278556
dlshogi 第2回TSCE時点 0.51964970 0.76499052
dlshogi 最新 0.52322504 0.76564239

と、着実に精度が向上しています。

まとめ

水匠の方も追加学習を行っていると思うので、明日の対局はどっちが勝つかは全く分からないです。
従来型とディープラーニングが、ちょうど同じくらい強さになった絶妙なタイミングなので、どっちが勝つか対局を楽しみにしてください。

内心では勝敗よりも長時間でちゃんと動くかが一番心配です。。。