見出し画像

【Suphx論文解説①】イントロダクション

普段Suphxの牌譜研究をしていますが、やはり対局を観ているだけでは理解が深まりません。ということで、Suphxの論文を読みました。

Suphxの論文について

Suphxの論文は2020/3に公開されました。

Suphx: Mastering Mahjong with Deep Reinforcement Learning

画像1


Microsoftによる情報はこちら。

ゲームAIの進化

これまでのゲームAIは主に完全情報ゲーム&二人対戦のシンプルなもの(将棋、チェス、囲碁など)でした。完全情報ゲームとは"プレーヤーが互いの意思決定の内容と展開をすべて観察できるゲーム"のことです。チェスや囲碁ではすでにAIが人間を圧倒するレベルに達しています。

最近では不完全情報ゲームでマルチ対戦の複雑なゲーム(コントラクトブリッジ、テキサスホールデムなど)を対象とした研究も進んでいます。不完全情報ゲームとは”プレーヤーが互いの意思決定の内容と展開を完全に把握することができないゲーム”のことです。麻雀はその代表格です。

より詳しい歴史を知りたい方は下記リンクが参考になります。

https://www.jstage.jst.go.jp/article/johokanri/59/2/59_89/_article/-char/ja/



麻雀AIの難しさ

強力な麻雀AIを実現するのが難しい理由は三つあります。

1. スコアの算出が難しいため

麻雀は1局ごとのスコアではなく、1半荘を通しての最終スコアを競い合います。そのため降りるのが最適な場合や差し込むのが最適な場合など、様々な局面があり得ます。高めなら捲れる場合やツモ条件などの状況も考慮する必要があります。これは碁や将棋とは大きく異なるポイントです。

2. 不確定な情報が多いため

麻雀では相手の手牌やこれからツモる牌山など、不確定な情報を扱うゲームです。そのため天文学的な局面の数(およそ10の48乗通り)が想定されます。これだけ膨大なパターンを扱う不完全情報ゲームは麻雀くらいです。従来のポーカーなどと比べて遥かに難しい研究だと言えます。

3. アガリ役などのルールが複雑であるため

麻雀には「何切る」や、ポンカンチーなどの鳴き、リーチかダマかなど様々な判断が必要です。自分の行動だけでなく相手の行動も考慮しなければなりません。絞りやアシストなども時には必要です。このような行動パターンを全て数え上げると膨大な数になるため、従来のゲームAIで用いていたテクニックを適用するのは困難です。

Suphxとは一体何なのか?

ここまで麻雀AIの難しさを述べましたが、そうした課題を解決したのがSuphx(Super Phoenix)です。

それぞれの課題に対して三つのテクニックを適用しています。

1. スコア算出の難しさ → Global Reward Prediction

2. 不確定情報の多さ → Oracle Guiding

3. ルールの複雑性 → run-time policy adaptation

Suphxはこれらのテクニックによって、天鳳十段を実現しました。全プレイヤーの上位0.01%に相当する結果です。Suphxはほとんどの人間を上回った最初の麻雀AIなのです。

Suphxを誰にでもわかりやすく解説する

ここまでSuphxの論文の導入部をざっくりと説明してきました。※補足を加えているので、少し表現が歪んでしまった部分もあるかもしれません。

今後はSuphxのメカニズムについて深掘りしていく予定ですが、僕自身AIに関してはそこまで詳しくないし、コードが公開されているわけではないので完全解剖は難しいと思われます。

出来るだけ多くの麻雀プレイヤーに読んでもらいたいなと思うので、専門用語や数式は出来るだけ排除し、本質的な説明やその仕組みが実際の麻雀にどう影響するのかを書く予定です。文系高校生くらいでも読めるのが理想ですが、どうなるかわかりませんね。

麻雀を打つ人の目線に立って補足などを加えていければいいなと思いますが…まぁゆっくり書いていきます。

今回はここまで。

続きはコチラ


参考リンク


https://www.businessinsider.jp/post-197865

https://medium.com/syncedreview/meet-microsoft-suphx-the-worlds-strongest-mahjong-ai-a0b0a63eb871


https://news.microsoft.com/apac/features/mastering-mahjong-with-ai-and-machine-learning/



この記事が気に入ったらサポートをしてみませんか?