第35回世界コンピュータ将棋選手権 参加報告

2025年5月3日から5日にわたり川崎市で開催された第35回世界コンピュータ将棋選手権に、特任研究員の日高雅俊、博士課程学生の太田一毅と橋本智洋が参加しました。

この記事では日高雅俊が、選手権に参加させた将棋ソフトについて紹介いたします。

世界コンピュータ将棋選手権とは?

世界コンピュータ将棋選手権(WCSC)は、コンピュータ将棋プログラム(将棋AI)の世界一を決定する大会であり、毎年開催されています。この大会は、コンピュータ将棋協会(Computer Shogi Association, CSA)が主催しており、コンピュータ将棋の技術進歩を目的としています。

もふ将棋の挑戦

私たちは「もふ将棋」という将棋ソフトを開発し、本大会に出場させました。

もふ将棋の特徴

もふ将棋の最大の特徴は、モバイル端末であるiPhoneを主要な計算リソースとして活用する点です。当研究室では、小規模な計算資源を統合し、高性能な知能システムを構築する分散知能プロジェクトの一環として、多数のiPhoneを用いて将棋AIを稼働させるシステムを開発いたしました。
将棋AIは、主に以下の2つの要素から構成されています。

  1. 評価関数の学習: 事前準備として、将棋の局面の良し悪しを判断する関数を学習させる。
  2. 対局中の探索: 対局中に、現在の局面における最善手を探索する。

通常、これらの計算には高性能なサーバーが用いられますが、もふ将棋では、その両方をiPhoneの計算能力を最大限に活用して実現しました。

評価関数の学習

評価関数とは、将棋の局面を入力として受け取り、その局面の良さや、次に指すべき手を数値で出力する関数です。現代の将棋ソフトのほとんどでは、評価関数の学習に強化学習が用いられています。強化学習では、AI同士が対戦を重ね、その勝率を最大化するように評価関数を繰り返し更新していきます。
もふ将棋では、弊研究室で開発した新しい強化学習手法を採用しました。詳細は別途発表する論文に譲りますが、処理の流れは以下のようになります。

  1. まず、現在ある評価関数を用いて、AI同士で対戦を行います。
  2. 対戦の結果をもとに、評価関数を更新します。
  3. このプロセスを繰り返します。

このうちステップ1(AI同士の対戦による棋譜生成)を30台のiPhone上で実行することで、iPhoneの計算能力を評価関数の学習に活用しました。この部分は必要なメモリ量が小さいためiPhone上で十分に実行可能であり、30台で作業を分担する分散計算にも適しています。特に、iPhoneに搭載された機械学習用チップであるNeural Engineを活用することで、プログラムの実行に通常使われるCPUと比べ、評価関数の計算を高速化しました。
評価関数の更新部分は、大容量のメモリを要するため、NVIDIA社製のGPUが搭載されたサーバー上で実行しました。最終的に、iPhoneを用いて20億局面分の棋譜を生成し、評価関数の学習を行いました。さらに、次の章で述べる合議に用いるため、複数のハイパーパラメータ(AIの性能を左右する「調整ポイント」)でそれぞれ数十億局面の追加学習を行い、計10個の異なる評価関数を生成しました。

対局中の探索

対局中の探索とは、現在の局面から次に指すべき手を決定するために、将棋の局面を先読みすることです。評価関数に現在の局面を入力して得られる指し手は、直感的には良い手であっても、必ずしも最善とは限りません。プロ棋士が時間をかけて思考するように、AIも時間をかけて思考することで、より良い手を指すことができます。コンピュータ(iPhone)1台での探索の方法として、もふ将棋では広く使われているモンテカルロ木探索を用いました。処理速度については、iPhone1台あたり毎秒約500局面の探索(評価関数の実行回数)が可能でした。

30台のiPhoneによる合議システム

私たちは、30台のiPhoneを用いることで、1台よりも良い手を指させるための手法を検討しました。1回の手番で使える思考時間は10秒しかなく、無線LANで繋がれたiPhone同士が複雑な連携をとることは困難です。そこで、各iPhoneが独立して探索を行い、その結果を多数決するという合議方式 [1] を採用しました。
具体的には、以下の手順で最善手を決定します。

  1. 各iPhoneが独立して探索を行い、自分が最善だと思う指し手(探索結果)を算出します。
  2. 各iPhoneは、その探索結果をサーバーに送信します。
  3. サーバーは、受信した探索結果の中から最も多く選ばれた指し手を多数決で決定し、それを最善手とします。

思考の多様性の確保

同じソフトウェアを違うコンピュータで動かしても結果が全く同じになってしまっては、多数決の意味がありません。思考結果がばらけるようにして、その中で多数決を取ることで、より良い手になることが期待できます。このため、以下の工夫を行いました。

  • 10種類の評価関数: あらかじめ用意した10個の異なる評価関数の中から、各iPhoneがランダムに1つを選んで探索を行うようにしました。
  • 乱数の導入: 探索の際に小さな乱数を加えることで、同じ評価関数を使っても異なる手が選ばれるようにしました。
    このようにして、30台のiPhoneが少しずつ異なる探索を行い、その中で多数決を取ることで、1台のiPhoneよりも良い手を指せることを期待しました。多数決方式の利点は、各iPhoneが独立して動作するため、通信の遅延や不安定さに強いことです。大会では一部のiPhoneの通信が時折途切れることがありましたが、全体の動作には大きな影響はありませんでした。

その他の工夫

将棋の強さとは直接関係ありませんが、新しい分散計算システムを開発する上でいくつかの工夫を凝らしました。

  • 設定の一括配信システム: プロジェクト全体を通じて、棋譜生成や探索の様々な設定を行う必要がありました。30台のiPhoneに対し、これらの設定を一括配信するファイルサーバーを構築しました。これにより、iPhoneの操作はアプリを起動することのみで、30台分の設定を手入力する工程を省略できました。
  • リアルタイム可視化: iPhone画面上に、探索中の現在の最善手を表示することで、多数決の過程を可視化しました。これにより、不具合が起きた際にすぐに気づけるようにしただけでなく、研究室内で動作させたiPhoneの多数決過程をインターネット経由で大会会場に送信し、来場者に見えるようにしたところ、大変好評でした。

大会結果

大会は3日間開催され、1次予選、2次予選、決勝トーナメントの順に行われました。

  • 1次予選: 5勝3敗の成績で、34チーム中11位となり通過しました。
  • 2次予選: 3勝6敗の成績で、28チーム中25位となり、敗退しました。

戦績という観点では強力なコンピュータで臨んだチームには及びませんでしたが、iPhoneを用いた合議システムという新しいアプローチが評価され、電気通信大学 エンターテイメントと認知科学研究ステーションより独創賞をいただくことができました。

今後の展望

強化学習、合議いずれも発展の余地が大きな分野です。小規模な計算資源が散在するような環境で有効なアルゴリズムについて、今後も研究を続けていきたいと考えています。

参考文献

[1] 伊藤毅志. コンピュータ将棋における合議アルゴリズム. 人工知能学会誌, 26(5), 2011.