← コラムの一覧

AIもナメプする!?

· sharakoon

Kirameki Lab の最強 AI「宝神」と対局していると、こんな場面に出会うことがあります。

次の 2 手で確実に 15 点に届く。なのに宝神はその手を指さず、勝ちを 1 手先送りにした。

人間同士なら「舐めプ(手加減して遊ぶプレイ)」かと思ってしまう場面です。 この記事では、実際の対局から 1 つの局面を取り出して、AI の頭の中で何が起きていたのかを解き明かします。 結論を先に書くと、AI はナメプをしていません。AI にとってはそれが「最善」だったのです。 そしてそこから、「AI はいちばん勝率の高い手を指すとは限らない」という、ゲーム AI の少し意外な性質が見えてきます。

1. 問題の局面

宝神(後手)の 56 手目です。宝神は 12 点、相手は 6 点。宝神の勝ちはほぼ決まっています。

56手目の盤面(左が宝神。緑の枠は、宝神が買ったカードと、最短ルートで狙うカード)

人間の目で見ると、ここには 2 手で確実に勝てるルート があります。

  1. を 1 個ずつ取る(+1+1+1を取得)
  2. 次の手番で、上段の 5333のカード(3 点)を買う → 15 点で勝ち

宝神の手持ちの宝石と、すでに買ったカードの割引を合わせると、5333のカード に足りないのは 1 個だけです。 しかも相手はすでに予約枠が 3 枚埋まっていて、このカードを予約して邪魔することもできません。

ところが宝神が選んだのは、322のカードを購入 でした。 割引だけで支払えるので宝石は減りませんが、この手だけでは勝ちが決まりません。

買ったカードの空いた場所には、山札から 332のカード(1 点)がめくれました。5333のカードを買うために手が進んでいません。

58手目の盤面(緑の枠は、めくれた赤のカードと、狙いの白カード)

宝神は次の手番で 5333のカードを予約 して金を手に入れ、そのまた次の手番で、金を使って 5333のカード を買って 16 点で勝ちました。 2 手で勝てたはずのところを、3 手かけて勝った ことになります。

2. 宝神の頭の中をのぞく

では宝神は、56 手目に何を考えていたのでしょうか。800 回先を読んだ(探索した)結果がこちらです。

候補手読んだ回数勝率直感注記
322のカードを購入37099.68%48.5%最多訪問(実際に指した手)
5333のカードを予約15999.68%19.7%
+1+1+1を取得6999.89%7.0%最高勝率
7のカードを予約5199.61%5.8%詰み判定が選ぶ手
+2を取得4899.49%5.7%

ここで不思議なことが起きています。

  • いちばん勝率が高いのは +1+1+1を取得(99.89%)。人間が見つけた最短ルートです。
  • ところが宝神が選んだのは、いちばんたくさん読んだ 322のカードを購入(370 回) でした。

つまり宝神は、自分でも「勝率がいちばん高い」と見積もった手を指していません。 実は 58 手目でも同じことが起きています。いちばん勝率が高いのはやはり +1+1+1を取得(99.91%)でしたが、 宝神はいちばんたくさん読んだ 5333のカードを予約 を選びました。

候補手読んだ回数勝率直感注記
5333のカードを予約24699.82%32.1%最多訪問(実際に指した手)
7のカードを予約18499.82%22.9%詰み判定が選ぶ手
633のカードを予約16199.82%20.2%
+1+1+1を取得8199.91%8.8%最高勝率
21のカードを購入7999.68%9.7%

なぜ AI は、勝率がいちばん高い手を指さないのでしょうか。

3. AI は「勝率最大の手」を指すとは限らない

AI の読み方:直感で読む順番を決め、読んだ結果で配分を直す

宝神のような AI(モンテカルロ木探索、MCTS と呼ばれる方式)は、すべての手を同じだけ読むわけではありません。 限られた回数(ここでは 800 回)を、次の 2 つを見ながら配っていきます。

  • 直感:盤面を見た瞬間の「この手が良さそう」という見込み(ニューラルネットワークが出す確率)
  • 読んだ結果:実際にその手の先を読んでみて分かった勝率

強いプレイヤーが「まず有望そうな手から考え、読んでみてダメなら別の手も考える」のと同じです。 直感が強い手ほど多く読まれ、読んでみて勝率が悪い手は読まれなくなります。

そして最後に、AI は いちばんたくさん読んだ手 を選びます。

なぜ「たくさん読んだ手」なのか

「勝率がいちばん高い手を選べばいいのでは?」と思いますよね。 理由は、少しだけ読んだ手の勝率は、あてにならない からです。

レストランのレビューで考えてみてください。

  • 星 4.9(レビュー 7 件)
  • 星 4.7(レビュー 300 件)

どちらが本当においしいでしょうか。7 件の 4.9 は、たまたま好意的な人が続いただけかもしれません。 300 件の 4.7 のほうが、評価としてはずっと信頼できます。

AI も同じです。56 手目の +1+1+1を取得 の 99.89% は 69 回分の平均、322のカードを購入 の 99.68% は 370 回分の平均です。 その差は 0.2% ほどで、読んだ回数の少なさによる誤差のほうが大きいくらいです。 たくさん読んでも評価が崩れなかった手 を選ぶほうが、間違いが少なくなります。 囲碁の AlphaGo をはじめ、この方式の AI の多くがこうして手を選んでいます。

今回は「直感」の差がそのまま出た

普段は、勝率に大きな差があれば読みはすぐに勝率の高い手へ集まり、「たくさん読んだ手」と「勝率が最大の手」は一致します。 ところが今回は、どの手を選んでも勝率が 99% 以上。勝率の差がほとんどないため、 読みの配分は直感の差でほぼ決まってしまいました。

宝神の直感は、56 手目では「割引だけでタダで買えて、点数もボーナスも増える」322のカードを購入 を 48.5% と強く推し、 +1+1+1を取得 は 7.0% しか見ていませんでした。 読む回数を 50 回から 800 回まで増やしても、配分はほとんど変わりません。

探索回数と読みの配分(56手目)

4. AI にとっては、ナメプではない

宝神の目的は 「勝つ確率を最大にすること」だけ です。 「何手で勝つか」「何点差で勝つか」は、宝神の目的には入っていません。

この局面では、相手は 6 点。どの手を選んでも、宝神が勝つ確率は 99% 以上です。 役に立たないカードがめくれて勝ちが 1 手遅れても、勝率はほとんど変わりません。

だから宝神にとっては、「2 手で決める手」も「青のカードを買う手」も、どちらも同じくらい正しい手でした。 人間には「決められるのに決めない=ナメプ」に見えても、AI にとっては手を抜いたつもりはまったくなく、最善手を指したつもり なのです。

5. 「詰み判定」をオンにすると

Kirameki Lab のエンジンには、詰み判定(相手のどんな応手でも、どんなカードがめくれても、確実に勝てる手を探す機能)があります。 リリース直後の宝神ではオフにしていたので、この局面でオンにしてみました。

局面詰み判定が見つけた手何手で確実に勝てるか
56 手目7のカードを予約 して金を得る2 手(次に 5333のカード を金で買って 15 点)

詰み判定は、めくれの運に頼らず、必ず 2 手で勝つ手 を選びました。 人間の見つけた +1+1+1を取得 とは別の手ですが、これも確実に 2 手で勝てる手です (確実に勝てる手が複数ある場合、詰み判定は最初に見つけた手を返します)。

実は詰み判定をオンにしても、宝神の強さはほとんど変わりません。勝率 99% が 100% になるだけです。 でも、人間から見た印象は大きく変わります。勝ちが決まったら、無駄なく、きれいに決めにいく。 それはまさに、人間同士の対局で大切にされる「マナー」そのものです。

運の要素のあるSplendorにおいて、AI に詰み判定を入れることは、強さのためというより、人間にとっての「マナー」を AI に教えること だったのかもしれません。

※現在の宝神には詰み判定処理をONにしています。