見出し画像

ポーカーAI開発 part10 ~ポーカーとゲーム理論 最適化戦略構築からエクスプロイト戦略への応用まで~

今回はアンドリュー・ブロコス著「ポーカーとゲーム理論 最適化戦略構築からエクスプロイト戦略への応用まで」を読んできました。そのなかで「エクスプロイトの4つのステップ」についてざっくりまとめたので書いていきます。また、ポーカーAI開発者がこの人間が考えるエクスプロイトまでの思考のステップを、どのように活かせるか考察します。よろしくお願いします。

はじめに

この書籍は現代ポーカーを語るうえで外せない「ゲーム理論的最適戦略」と「エクスプロイト戦略」について、その概念をポーカーを簡略化した簡単なゲームを用いて紹介しています。確率や統計、ポーカーのゲーム理論を勉強している方なら知っている内容も多い思いますが、正しく理解するには難易度が高めです。ただ、完全に理解する必要はなく、こういった概念があるのだなくらいで読み進めてもよいかと思います。

ゲーム理論的最適戦略とは

ゲーム理論的最適戦略(以下、均衡戦略)とは、数学的に正しいとされ、相手につけいる隙を与えない戦略です。例えば、じゃんけんにおいてはすべての手をランダムな確率でだすことで相手が自分の勝率を超える戦略を取れない状態にすることです。これはナッシュ均衡とも呼ばれ、ポーカープレイヤーならばGTO戦略と呼ぶほうが聞き馴染みがあるかもしれません。ポーカーというゲームでは1対1の状況における戦略はすでに研究されており、GTO Wizardなどのツールも公開されています。しかし、複数人が参加しているような状態での均衡戦略はまだ判明していません。
均衡戦略はある種の正解として扱われています。コンピューターによる自身のプレイの評価や振り返りは将棋や囲碁、麻雀など他のマインドスポーツでも行われており、一般的になりつつあります。

エクスプロイト戦略とは

エクスプロイト戦略相手の隙をつく戦略です。相手の期待値(得られるであろう得点)を損ねるようなプレイの偏りを見つけ、均衡戦略とは異なる方法でより利益を得る戦略です。エクスプロイトとは搾取という意味を持っており、ポーカーでは一般的に強いプレイヤーほどこの戦略を得意としています。
しかし、エクスプロイト戦略は相手に合わせて均衡戦略とは異なるアクションを取るため、リスクがあります。相手を読み間違えれば大きな損失となってしまうでしょう。
では、上手なプレイヤーはこのエクスプロイトはどのように行うのでしょうか。次にこの書籍で紹介された、その思考の過程をまとめた4つのステップを紹介します。

エクスプロイトプロセスの4ステップ

以下の図は、エクスプロイトする際の4ステップです。順に解説します。

エクスプロイトプロセスの4ステップ

① 均衡を心に描く

ここでいう均衡とは、数学的に正しいプレイのことです。均衡から乖離することは期待値の損失でありミスとなります。完全に正しいアクションを人間が選択し続けることは不可能ですが、それでも均衡がどんなものかを思い浮かべ、練習と経験を積むことが上達する道だと言います。

② リーディングする

ここでいうリーディングとは、相手の戦略を予測することです。ある程度プレイを重ね、自身が心に描いた均衡戦略からどれぐらい離れてくるかを予測します。例えば「リバーで純粋なブラフキャッチャー以外でコールし過ぎる」と具体的にリーディングすることが重要です。「ルース過ぎる」「こいつはフィッシュ(弱いという意味)」など抽象化しすぎたリーディングでは役に立ちません
リーディングは直感的でも構わず、そもそも確実なリーディングなんて滅多に得られず、確実に勝てるハンドも滅多に入りません。不確実なポーカーというゲームにおいては直感も重要で、自信がある要素からリーディングに組み込んで行けば良いのです。
ライブやオンラインでも、相手の特徴や思ったことは積極的にメモを取ることを推奨します。

③ どうつけ込むか特定する

相手がどんな形で均衡戦略から乖離しているか特定できたら、次に考えるのが「このミスにつけ込むには何をしたらいいのか?」をできるだけ明確で具体的な状況に落とし込むことです。これは創造性が求められる部分であり、ミスに対してつけ込むには方法は複数あります。
例えば、リバーで相手がブラフをあまりしてこないというのなら、そこにつけ込む方法は相手のベットにはブラフキャッチャーを降りるというものです。それと同時に、相手には強い手でチェックせず、弱いハンドでもリバーまでついていって様子をみることもできます。
このような体験はポーカーをしていれば誰でも一度は行っていると思います。強いハンドでしかベットしない、ドローがあるようなボードでは必ずベットしてくるなどです。ある意味相手を信用し、最大限利益をあげるためにはどうつけ込むかを考えることがエクスプロイトとなります。

④ 均衡からどれぐらい離れるか決める

③まで考えたところで、次に自身のアクションを決定します。このとき、自分は均衡からどれぐらい離れたらいいのだろうかを考えます。仮に相手はリバーでのブラフが少なめだと思ったら、自分はフォールドを増やしてそこにつけ込むというプランを立てたとします。そのとき、どれぐらいその頻度を増やせばいいのかを決める必要があります。微妙なハンドのときだけフォールドするのか、セカンドナッツ(2番目に強いハンド)もフォールドするのか、その中間をとるのか。
これを決定するには、2つの要素を予め見積もっておく必要があります。一つは相手のミスの大きさと、自分のリーディングへの自信です。
ベットでもチェックでも良いような場合にブラフをしないくらいならば長期的に見ても小さなミスだが、リバーで3枚目の♥が落ちた時、A♥一枚のみでブラフは絶対しないような相手に対しては、リバーでベットが来た際はより強いハンドでもフォールドすべきです。
また、リーディングへの自信も重要です。セカンドナッツでも降りるには強力な読みが必要ですし、結果としてそれが正解になる場面も多々あります。
このように相手のミスの大きさとリーディングへの自信具合で、どれくらい均衡から離れたプレイをするのかを考える必要があります。忘れてはならないのは、相手が均衡戦略から離れているのにつけ込むためには、自分も均衡から離れなくてはならないということです。リーディングを間違えば逆につけ込む隙を与え、均衡から離れるほどリスクも大きくなります。

4つのステップをポーカーAI開発に活かす

ここからはナガメ研究所で行っているポーカーAI開発の視点から、本書の内容を考察していきたいと思います。
①均衡を心に描くは、まさにコンピューターが得意とするところです。開発中のポーカーAIに心はありませんが、均衡戦略を取ることはそう難しいことではなくなっていると言えます。
②リーディングするは、既存研究でも難しい領域です。難しくしている要因は2つあると考えており、一つはポーカーが不完全情報ゲームであること、そしてもう一つは相手の戦略が数学的に正しくなく、その戦略も状況に応じて変化することです。ただ、その変化する戦略をもしカテゴライズできるならば、一人の人間が取れる戦略はそう多くないのではないかとも考えています。そもそも、人間が相手の戦略をリーディングするときは過去のプレイを参照して「こいつはプリフロップがルース」「強いハンドは絶対CBを打つ」程度のラベル付けをするのが精一杯です。あまり特定のスポットを記憶しておいてもその状況が来るとは限りませんし、自分に対して同じ行動をするかどうかも定かではありません。なので、最初は一つの戦略を攻略できるリーディング専用のモデルを開発し、徐々に他の戦略を取るモデルのハンド記録を学習していくのが良いのではないかと考えています。
③どうつけ込むか特定すると④均衡からどれぐらい離れるか決めるは、①と②のモデルの出力ベクトルを受け、新たにエクスプロイトモデルとして開発するのが良いかと考えています。学習した均衡戦略モデルのベクトルとリーディングモデルのベクトルを基に、それぞれの情報と得られる利益の関係を学習し、より良いアクションを決定するモデルとなります。エクスプロイトモデルは③と④をブラックボックスにしてしまいますが、最初のアプローチとしては最もシンプルな構成です。

今後の開発

ナガメ研究所ではポーカーを多くの人に楽しんでもらうことを目的にエクスプロイトするポーカーAIを開発しています。本書のエクスプロイトプロセスはポーカーAI開発でとても参考になると感じており、このステップを指針に開発を行っていこうと思います。
現状、①は一旦できているとし、今後は②のリーディングモデルの開発に着手します。リーディングの目的は戦略を予測することにあり、それを機械学習モデルのタスクに言い換えると次の相手のアクションを予測することになります。相手のアクションを予測するには、相手のハンドを予測するのも重要かと思います。なので、ハンドとアクションの予測の2つのタスクにアプローチし、実験していこうと思います。いきなり人間のハンド履歴を予測するのは難易度もデータ量的にも難しいので、現在開発中の簡易GTOモデル同士を対戦させ、データを蓄積していくことで進めていきます。
このリーディングモデルがある程度の精度を獲得できれば、あとは③④でどのようにエクスプロイトしていくかを決定するモデルの開発に着手できる予定です。①の均衡戦略とどのように異なるアクションを取るのか比較すると面白そうです。

おわりに

ポーカーとゲーム理論 最適化戦略構築からエクスプロイト戦略への応用まで」を読み、エクスプロイトプロセスの4つのステップについて紹介しました。
最初にこの4つのステップを見た時、私は「守破離」を感じました。守破離とは、修行によって徹底的に教えを守り、その型を身に着けた者は他の型を参考に既存の型を破り、最終的に既存の型に囚われず離れて自在になるという人の一連の成長を表す言葉です。エクスプロイトプロセスも均衡戦略を守るところから始め、そこから均衡戦略とは異なる戦略を試していき、最終的には均衡戦略から離れた自分オリジナルのエクスプロイト戦略を獲得していくということを示しているように見えます。この言葉はあの千利休の訓と言われており、どのような文化にも通ずるものがあるのだなという発見があり面白かったです。
本記事を読んでいただきありがとうございました!
今後もポーカーAI開発を進めていきますので、ぜひ応援よろしくお願いします!

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