JOPTに向けてPokerSnowieでトレーニングを開始してみた
ポーカー(テキサスホールデム)を始めて約3か月になる。
先日、7月の三連休に行われるJOPT 2022 Tokyo #01 のメインイベントの参加権をサテライトで獲得した。
最近はポーカーを覚えて数ヶ月での優勝者というのも出ているらしく、まぁ優勝はともかくとして何とか day 2 まで残りたいという目標を立てた。
ということで、ポーカーのAIであるPokerSnowieを導入しトレーニングしてみることにした。
元々将棋も趣味だが、将棋界ではプロがAIを使ったトレーニング・研究を行うのはもはや常識となっている。アマチュアも利用している人が多いだろう。
そいうこともあって、競技は違う物の「AIを利用して強くなれるのか」というのを試してみたいという思いがあった。
PokerSnowieの有難いところは、自分のプレイした記録(将棋で言えば棋譜に当たるもの)を解析して「どのぐらいミスをしていたか」を数値として出してくれる所にある。
これを「ミスプレイ率」といい、AIの考える最善の行動と比較して平均どのぐらいのチップを損したのかという形で出してくれる。
実はミスプレイ率を下げれば対人でも強いのかと言うと必ずしもそうとは限らない。
というのも人間は完璧ではなく、間違った判断をすることがある。他のプレイヤーがそのような間違った判断をしているならば、そこにつけ込むようなプレイをした方が結果的に得となるという事は多々ある(これをポーカーでは「エクスプロイト」というらしい)。
また同時に自分自身もミスをするわけで、完璧にAIの真似をすることは出来ない以上、人間的に最善なプレイとAI的に最善なプレイは一致しない場合もある。この辺りは将棋とも似ている。
とはいえ、やっぱり強い人はミスプレイ率が低い傾向にある(最善に近い中で、微妙に調整して相手に合わせている)ので、まずは基本的なプレイングが出来るようになるためにミスプレイ率を下げるというのを目標にしていこうと思う。
取り組んでいるトレーニングの方法
ではどうすればAIを利用して強くなれるのだろうか。
これは正直分からない。多分世界的にも絶対的な答えを持っている人はいないと思う。
調べてみても色々な話が出てくるし、また私のような初心者と、ある程度経験を積んだ中級者、そしてすでにプロとして活躍している人ではやるべきことは当然違うわけで、誰かが成功した方法を真似しても自分に合うとは限らない。
ということでここは自分なりに考えた以下のやり方を試してみようと思っている。
まず、PokerSnowieのトレーニングモードのFREEZEOUT(≒トーナメント)でAI相手に1000ハンド程度プレイして、ミスプレイ率を計測する。
この際は1ゲームごとに「致命的」と判断されたミスだけを見直しておく。
次に、同じくトレーニングモードで、今度は常にAIの判断を表示させてその通りに1000ハンドプレイする。
つまり常に答えを見ながらプレイすることで、AIの感覚を身に着けようという事である。
もちろん自分で「こうかな」と考えて、その中でAIと差が出たところは直していくという感じである。
これが終わったら再度普通に1000ハンドプレイしてミスプレイ率を計測する。
このサイクルを繰り返していくことで、少しずつAIのプレイに近づいて行けるんじゃないかと期待している。
1サイクル時点での感想
この記事を書いている時点(6/19)で、ちょうど1回目のサイクル、つまりAIの判断を見ながら1000ハンドが完了したところである。
初心者なので当たり前ではあるのだが、自分の判断と違う部分がかなり多かったなぁというのが印象として残っている。
特に
①悪いポジション(特にUTGとSB)から参加しすぎていた(もっとハンドレンジを絞るべき)
②逆にBTNの時に参加しなさ過ぎていた(スーテッドコネクタなどで降りすぎていた)
③トーナメントではオープンレイズの額が小さいことが多いので、BBではかなり広いレンジでプリフロコール出来る(今までは完全に降りすぎだった)
④ポストフロップで極端に弱気になり過ぎていた(例えばフロップでのヒット率は約30%程度なので、トップヒットじゃないとしてもヒットしている時点で相手より優位に立っている可能性は結構高いというのを分かってなかった)
⑤ブラフを全然打っていなかったし、逆に相手のベットをブラフだと考えることも無かった(ちゃんと確率から期待値を考えてブラフ・ブラフキャッチをしないといけない)。
というのをプレイしながら感じた。
もっとざっくりと言えば「勝ってるか負けてるか」の2値で考えがちで、ちゃんと確率を考えればもっと攻めることができるはずということに気が付いた。
まぁ要は今までは初心者に典型的な「ルーズパッシブ」に陥りがちだったらしい。ポジションもないのに参加して、ちょっと打たれたら降りてしまう。これじゃ勝てないわけだ。。。
今後の予定
やってみた感じだと、推奨手を見ながらだと大体1時間に300~400ハンドぐらいのペースだったので、1000ハンドで3時間程度。
自分で考えながらだと倍ぐらいと考えて、かつ見直し時間を込めて合わせて1サイクルに10時間程度と見込んでみる。
7/16のday1に参加することを考えると、その前日まで今日から26日間。
ちょくちょく予定もあったりするし、まだサテライトも追加で参加したいが、何とかあと3サイクルぐらい回せたら御の字だろうか。少なくとも2サイクルは回しておきたい。まぁその辺りはミスプレイ率の推移も見ながらという事になるだろうか。
また1サイクル終わったあたりで、今度はどんな気づきがあったのかをまとめてみようと思う。なんとかJOPTまでに2ランクぐらい上の実力になれればなぁ。