見出し画像

Poker AIにハンドレビューさせてみた!

どうも、つだぴょんです。

GTOWizard Japanの公式アンバサダーを務めており、ノーリミットホールデムの講師・コーチとして活動しております。

日々ポーカーのハンドレビューをしている中で、ある悩みがあります。
それは、「エクスプロイト戦略の整合性を簡単に確かめる方法はないのか」です。

ポーカーをプレイするうえで、相手の特徴に合わせた戦略を構築して実行できることがとても重要なのですが、それを検証する方法って結構大変なんですよね。

Wizard AIのノードロック機能等を駆使すれば、精度の高いエクスプロイト戦略を出力することが可能です。
しかし、ノードロックを正しく行うハードルはかなり高く、使いこなすためにはかなりの努力と時間を費やさなければいけないのが難点です。

以上のことから、Wizard AI等のノードロック機能を用いたエクスプロイト戦略の検証ができるようになるためのステップの1つとして、「自身が考えた戦略の整合性を比較的簡単に確かめるツールがあればなー」と、日々頭を悩ませています。

Poker AIの発見

先ほどの悩みを抱えながらX(旧:ツイッター)を眺めていると、あるアプリを発見しました。

そのアプリの名前は「POKER Q'z」といい、東京大学のAIを研究するエンジニアの方々(https://x.com/poker_qz)が中心となって開発したポーカー学習アプリです。

ポーカーを勉強するための機能がたくさんあって便利そうだなーと触っている中で、「AIと話す」という項目を見つけました。

「AIと話す」では、Pokerに特化したAIと実際に会話することができ、ポーカーに関する疑問や質問を投げると、AIがそれに対する回答をするようです。

この機能を見つけて、私は閃きました!!!

実際に行ったプレイラインのハンドレビューをこのAIに頼めば、プレイの良し悪しとその理由を教えてくれるのではないか…!

というわけで早速、このAIにハンドレビューをしてもらいましょう。

今回取り扱うシチュエーション

AIにハンドレビューしてもらうハンドは、実際に私が経験したスポットになります。
対戦相手の特徴を踏まえて、私なりにエクスプロイトしようとした結果、負けてしまったハンドです…。

Cash 6max 5%4bbcap ef100bb

Preflop
BTN raise 2.2bb / call (hero A♠Q♣)
SB raise 10bb

Flop T♦4♥3♠  (pot:21bb)
SB bet 7bb
BTN call

Turn T♦4♥3♠ J♣ (pot:35bb)
SB bet 23bb
BTN call

River T♦4♥3♠ J♣ Q♠(pot:81bb)
SB all-in 60bb
BTN call

SB shows T♠T♣
BTN shows A♠Q♣


<SBのプレイヤーの特徴>
・ルースアグレッシブ
・ブラフしたスポットを多数観測している

AIへの質問方法

私自身のAIに触れた経験が乏しいため、ChatGPTへの命令方法がまとめられているサイトを参照しながら、文章を作成しました。

実際にAIに投げかけたプロンプト(AIに向けた指示文)は以下になります。

# 命令書
あなたは、ノーリミットテキサスホールデムのプレイヤーです。以下の制約条件から最高の一番利益的なプレイラインを知るためのハンドレビューを出力してください。
# 制約条件
・テーブル人数が6人のキャッシュゲームです
・レーキ設定は5%4bbキャップです
・SBの対戦相手のスタッツは以下の通りです
 └VPIP:32%
 └PFR:26%
 └Steal:52%
 └Check-Raise:13%
 └3bet:12%
 └Fold to 3bet:60%
 └Cbet:57%
 └Fold to Cbet:47%
 └WTSD:31%
 └W$SD:40%
・あなたのポジションはBTNです
# 入力文:
Preflop
BTN (A♠Q♣)  raise 2.2bb / call
SB raise 10bb

Flop T♦4♥3♠ (pot:21bb)
SB bet 7bb
BTN call

Turn T♦4♥3♠ J♣ (pot:35bb)
SB bet 23bb
BTN call

River T♦4♥3♠ J♣ Q♠ (pot:81bb)
SB all-in 60bb
BTN call
# 出力文:

AIへのプロンプトの作成については、友人であるneru君(https://x.com/nerupoker43787)にも手伝ってもらいました。

AIを用いた検証

ここからは実際にAIから出力された回答をもとに、各ストリートのプレイラインのレビューをしていきます。

基準となる均衡戦略については、GTOWizardのソリューションを参照しています。

プリフロップ

Preflop
BTN raise 2.2bb / call (hero A♠Q♣)
SB raise 10bb

Cash_Classic_6max_ef100bb_General_NL50_GTO_Smaller
PreflopでのBTN側の戦略

プリフロップではSBからの3betに対して、BTNでAQoをコールしました。
コールした理由は以下になります。
・3betsizeが均衡よりも小さく、ポットオッズが良い
・全体の3bet率が12%と高いため、均衡よりも3betレンジが弱い可能性が高い

このプレイに対するAIのレビューは以下になります。

**プリフロップ**
BTNでAQoというプレミアムハンドを持っての2.2bb openは適切です。
SBからの3betに対してcallした判断も、以下の理由から正しいと考えられます
- 相手の3bet率が12%と標準的
- ポジションがあり、ポストフロップで優位にプレイ可能
- スーテッドではありませんが、AQoはハイカード値が高く十分にプレイアブル

AIの発言を要約すると、
・ポストフロップでIPとしてプレイできるため、優位に立てる
・AQoはハイカードとしての価値が高いため、ポストフロップ以降でもプレイしやすい
⇒3betcallは正しいといえる。

AI的にもこのプレイは良さそうとのことです。
安心安心。ふぅ。

フロップ

Flop T♦4♥3♠  (pot:21bb)
SB bet 7bb
BTN call

Cash_Classic_6max_ef100bb_General_NL50_GTO_Smaller
FlopでのSB側の戦略

フロップでのSB側の均衡戦略では75%bet or checkを使い分ける戦略が好まれますが、実践では33%betを打たれました

Cash_Classic_6max_ef100bb_General_NL50_GTO_Smaller
Flop 33%betに対するBTN側の戦略

33%CBに対して、私はA♠Q♣をcallしました。
callした理由は以下になります。
・CB率が57%と少し高めであり、CBサイズが均衡よりも下がっている
 ┗ 広いレンジでCBを打っている可能性が高いと思われる
・全体の3bet率が12%と高いため、均衡よりも3betレンジに弱いハンドが含まれている
 ┗ CBを打ったレンジのEQが均衡よりも減少していると考えられる

このプレイに対するAIのレビューは以下になります。

**フロップ (T♦4♥3♠)**
このフロップでのSBのc-betに対するcallは良い判断です
- オーバーカード2枚で6アウツ
- ポジション有利を活かせる
- 相手のc-bet率が57%と高くないため、ブラフも含まれている可能性がある

AIの発言を要約すると、
・AとQの6枚がアウツとして機能している
・ポジションの優位性をターン以降でも活かせる
⇒33%CBに対するcallは正しいといえる。
(「CB率が高くないためブラフである可能性がある」に関しては論理矛盾している???)

AI的にもこのプレイは良さそうとのことです。
個人的には「raiseの選択肢もありかも!」って指摘されるかなーと考えていましたが、そこへの言及は無かったです。

ターン

Turn T♦4♥3♠ J♣ (pot:35bb)
SB bet 23bb
BTN call

Cash_Classic_6max_ef100bb_General_NL50_GTO_Smaller
TurnでのSB側の戦略

ターンでのSB側の均衡戦略では75%bet or 50%bet or checkを使い分ける戦略です。
今回は66%betを打たれました。

Cash_Classic_6max_ef100bb_General_NL50_GTO_Smaller
Turn 75%betに対するBTN側の戦略

66%CBに対して、私はA♠Q♣をcallしました。
(フロップ時点での33%betの頻度は1.4%しかなかったため、このノードの計算精度が荒くなってしまっています…)
callした理由は以下になります。
・W$SD率が40%とかなり低いため、betレンジに多くのブラフハンドが含まれている可能性が高い(ミドルポケット、ハイカード等)
 ┗ リバーで諦めたハンドに対してブラフbetを打つ機会が多くなる
・ミドルポケット等のブラフbetに対しても、A,K,Qのアウツが残っている

今振り返ってみると、相手の特徴を鑑みるにミドルポケット等がリバーも継続してブラフする可能性が高そうなので、ターンでraise allinしたほうが良かったかもしれないなと思いました…😢

このプレイに対するAIのレビューは以下になります。

**ターン (J♣) **
23bbのベットに対するcallも以下の理由から許容できます:
- まだAQハイで十分なショーダウンバリューがある
- 相手のWTSD率が31%と低く、Riverでのブラフ可能性も見込める
- pot oddsが良好

AIの発言を要約すると、
・AQハイにはショーダウンバリュー(SDV)がある
・ポットオッズが良い
⇒66%CBに対するcallは許容できる。
(「WTSD率が31%と低いためRiverでのブラフも見込める」に関しては、理屈は分かるけど31%は低くないのでは???)

AI的にはこのプレイはまぁまぁとのことです。
先ほどの振り返りも加味すると、fold or raiseが良かったような気がしています

リバー

River T♦4♥3♠ J♣ Q♠(pot:81bb)
SB all-in 60bb
BTN call

SB shows T♠T♣
BTN shows A♠Q♣

Cash_Classic_6max_ef100bb_General_NL50_GTO_Smaller
RiverでのSB側の戦略

ターンでのSB側の均衡戦略では65%allinと10%betを主に使い分ける戦略です。
今回は75%allinを打たれました。

Cash_Classic_6max_ef100bb_General_NL50_GTO_Smaller
River 65%Allinに対するBTN側の戦略

65%allinに対して、私はA♠Q♣をcallしました。
callした理由は以下になります。
・W$SD率が40%とかなり低いため、allinレンジに多くのブラフハンドが含まれている可能性が高い(ミドルポケット、ハイカード等)
 ┗ callに対する必要オッズを満たしていると思われる

しかし、今回は相手からTTのセットが出てきて大放銃となりました…。

このプレイに対するAIのレビューは以下になります。

**リバー (Q♠) **
トップペアが完成するカードが出たシチュエーションでの相手のオールインに対するcallは正しい判断でした
- トップペアを作り、ショーダウンバリューが大幅に向上
- 相手のW$SD率が40%と低く、ブラフも多い
- pot oddsが良好(必要な勝率を満たしている)

AIの発言を要約すると、
・トップペアになったことでショーダウンバリュー(SDV)が向上した
・相手のW$SD率が40%と低いため、ブラフが多い
・ポットオッズが良い
⇒65%allinに対するcallは正しいといえる。

AI的にもこのプレイは良さそうとのことです。
慰めになったような気がします。。。

プレイの改善点

全ストリートを通して、改善点も提示してくれました。
詳細は以下になります。

**改善点**
全体的に良いラインだと思いますが、以下の点を意識するとより良くなります
1. プリフロップでは、時々4betのラインも検討する
2. フロップでは、相手のレンジ分析をより詳細に行い、より積極的なラインも検討する
3. ターンでは、相手のサイジングから読み取れる情報をより活用する
このハンドは全体的に堅実なプレイで、最終的に良い結果につながったと評価できます。

AIの発言を要約すると、
・4betを選択することも視野に入れるべき
・フロップ時点でよりアグレッシブなラインを取ることも検討すべき
・ターンはbetサイズから読み取れる情報により着目すべき
・今回のプレイラインは堅実であり、良い結果につながったはず!

今回は負けてしまいましたが、長期的には良いプレイだという判断をしても良さそうですね!

AIハンドレビューの総括

感想

AIから出力されたハンドレビューを見た感想としては、「え、結構便利そうやな!!!」でした。

プレイラインに対する良し悪しの理由だけでなく、改善点も提示してくれたので、使い方次第ではポーカーの勉強のハードルを下げるツールとしての役割を果たせそうだなと感じました。

一方で、判断や理由の精度については物足りないところも見受けられました。
そこについては残念に感じましたが、AI自体の発展次第で改善できるかなとも思いましたので、将来性にかなり期待を持てます!!!

質問する際の注意点

実際にAIへ質問してみて、ハンドレビューの精度を高めるために注意した方がいいなーと思ったことがあったので、簡潔に挙げておきます。

①単一ストリートに限定する
②スタッツ等の情報の基準を記載する
③回答の根拠にある程度のバラつきがあることを理解したうえで活用する

①単一ストリートに限定する
出力してほしい解答の幅をすべてのストリートから単一のストリート(ex. フロップのみ)に限定してあげることで処理がシンプルになり、回答の精度を高められるかもしれません。

②スタッツ等の情報の基準を記載する
プレイヤーの特徴やスタッツ等の数値的な情報をAIに伝える際に基準となるものを記載することで、「基準に対してズレている項目をどう評価するのか」といった処理の精度を高められるような気がします。

③回答の根拠にある程度のバラつきがあることを理解したうえで活用する
今回、私がAIに同じ質問を複数回投げかけた際に回答の根拠として出力された理由に微妙なズレが生じました
(これはAIあるあるなんかな?よくわからないです…)
まったく同じ内容が出力されるわけではないので、出力されたものを妄信するのは危険かもしれません
本当に正しいのかどうかを自分で判断することは必要そうですね。

最後に

私は今回の検証を通じて、AIとの会話形式によるポーカー勉強法に魅力と将来性を感じました!
現時点ではまだまだ改善点がありそうな気もしますが、今回のような方向性でのPoker AIの発展に期待しています!!!

皆様、最後までお読みいただきありがとうございました。

<追記>
今回の記事が好評だった場合は、様々な角度からのPoker AIの検証を継続して発信していこうと考えています。
この記事をいいなと思ってくださった方はハートと拡散をしていただけますと幸いです🙇

いいなと思ったら応援しよう!