はじめに
先日、Microsoft 主催の Japan Partner Conference 2019 に参加してきました。その中で Microsoft の AI である Suphx が日本のオンライン麻雀対戦プラットフォーム「天鳳」において AI として初めて 10 段を達成したと発表されました。天鳳には約33万人のプレイヤーが参加していますが、サービス開始以降一度でも 10 段位を獲得したプレイヤーは 180 人しか存在せず、実質 Suphx はトッププレイヤー並みの実力を有していると言えそうです。
これまでにも他の競技でプロプレイヤーを超えた AI は幾つも存在しますが、今回の Suphx は何がすごいのかを解説します。
麻雀の複雑性について
膨大な情報量
52 枚のカードを扱うポーカー、40 枚のコマを扱う将棋と比較して、麻雀は 136 の牌を使用します。そのため、場合分けの数も膨大になります。また一定の間隔で自分の手番が回ってくるゲームとは異なり、麻雀ではプレイヤーが”鳴き”を行うことで順番が変動します。そのため、一般的に用いられているモンテカルロ木探索アルゴリズムを単純に適用することができません。
Suphx では麻雀の複雑な状態と戦略を効率的に学習させるために新しいアルゴリズムを採用しており、膨大な状態空間の効率的な探索とリアルタイムの戦略調整を実現しています。
不完全情報ゲーム
これまでに話題になった AI は将棋や囲碁、チェスなどの競技でトッププロを打ち負かすだけの実力を発揮しました。これらはすべて「完全情報ゲーム」と呼ばれるもので、意思決定のために必要な情報が揃っています。対して、麻雀やカードゲームなどは、相手が何を持っているか、次に引く牌/カードが何なのかはわからない「不完全情報ゲーム」です。
Suphx では自己対戦戦略を取り入れています。自己対戦では相手の手牌や牌山の情報などすべての情報を知っていると仮定した上で Suphx の選択が適切であるかを判断します。このフィードバックを用いてトレーニングプロセスを高速化しています。
複雑な点数計算と駆け引き
点数のメカニズムも他のゲームと比べて非常に複雑です。特定の牌の組み合わせである“役”を揃えることで上がることができますが、数多くの役が存在します。また、配牌から誰かが上がるまでを局といい、天鳳では 1 ゲームで 8 局行い総合得点で勝負を決めます。そのため、得点がトップのプレイヤーは最下位のプレイヤーにわざと上がらせるように仕向けることで 2 位のプレイヤーに得点を与えることなく局を進めたりするような駆け引きも頻繁に行われます。
Suphx では麻雀の複雑な役と点数計算のメカニズムに対応するために、長期的な報酬予測ネットワークを採用しています。前後のラウンドの予測スコアの差を現在のスコアとして使用して、各対局の最終得点を適切に予測できるよう報酬予測アルゴリズムを訓練することで、より正確なフィードバックが実現しています。
おわりに
現実世界では不完全情報ゲームのように限られた情報から意思決定を行わなければならい場合が多く存在します。その点で Suphx が麻雀のような複雑な不完全情報ゲームでトッププレイヤーと同等の判断能力を取得できたことは AI の歴史における大きなマイルストーンになると思います。今後は自動運転や金融投資などより現実的な問題への応用も考えられています。