統計は冷酷だ

ポーカー、ゲーム、サッカーなどについて考えていきたい。自分の為にもブログを更新していこうと思う。

25bbHUMRCについて

こんにちは
今回は25bbでのHUでのSBminraiseBBcallの状況において
GTOを体系的に捉えられることを目標にしました。

状況
HU eff25bb
SB minraise
BB call

今回もpiosolverのスクリプトの機能を用いて25のフロップにおいてGTO戦略を計算しました。
この時点でのお互いのレンジは以下のようになっています。

f:id:takoagemat:20180908150943p:plain
左:OOPのレンジ,右:IPのレンジ

また以下のようなベットサイズで計算しました。

f:id:takoagemat:20180908151116p:plain

その集合分析が以下の表です。

f:id:takoagemat:20180908150939p:plain

それらの値からRでクラスタリングをしてフロップを5つに分類してみました。
ward法というクラスタリング方法で分類してみました。
f:id:takoagemat:20180908154358p:plain


クラスタ
Aとコネクトしているブロードウェイ以外のフロップ
非常にIPのエクイティが高くほとんどレンジ全体でベットできる
ポットベットの割合が非常に多い
turnがA以外のペアになった場合、ベット頻度はほとんど0

クラスタ
Aとブロードウェイカードがあるボード
こちらもほとんどレンジ全体でベットできる
小さいベットの割合が大きい
こちらもturnがA以外のペアになった場合、ベット頻度はほとんど0

クラスタ
ペアボードなどの非常にドライなボード
小さいベットの割合が非常に高い
レンジの半分から7割くらいをベットできる

クラスタ
比較的小さいカードで占められ、ある程度ドライなボード
ベットサイズは大きく、頻度は小さくしている

クラスタ
モノトーンボード、ミドルカードがコネクトしているボードなどのウェットなボード
これらのボードではベット頻度は小さく、ハーフサイズのベットを多く利用している

感じたことメモ
15bbHULCと違い、EVとEquityの相関が強い
SPRが小さい状況なのでコミットしやすくEQRはそこまで重要ではなくなるのかも

分かったこと
あまりレイズされないならばかなり頻度をあげてCBを打つのが利益的
nodelockで計算してみた
CB後にturnでOOPに有利なカードが出た場合はベット頻度がかなり少なくなっている

15bbHULCについて

effective stack15bbでのHUでのGTOをできるだけ簡潔にまとめられることを目標にしています。
①(今回)まず、フロップごとに分類してどのような特徴のフロップでどのような戦略がGTOなのかを大枠でみていきます。
②その後分類ごとの細かい戦略をみていく予定です。

もちろんこのような方法が優れているのかはわかりませんが、とりあえずやってみます。
何かアドバイスなどあればぜひお願いします。
内容もチグハグになるかもしれませんがだんだん改善していければと思っています。

状況
HU(SBがIP)
effective stack 15bb
ante なし
SBLimp-BBcheck
pot 40,eff 280

お互いのレンジはPiocloudのspin&goのpreflop solutionsを利用しました。
piocloud.weebly.com
こんな感じのレンジになっています。

f:id:takoagemat:20180905114926p:plain
左:OOP,右:IP

基本的にIPのlimpレンジには強いハンドも多く含まれているのに対し、OOPは強いハンドの多くをプリフロップでアイソレートするのでチェックレンジに強いハンドが含まれていません。

これらの状況においてpiosolverの集合分析のデータを元にRでの回帰分析、クラスタリング、主成分分析などを用いてどのようなプレイが適しているのか判断できるように体系化できないか考えてみます。

また、flopでIPが全レンジでハーフポットベットをする場合の計算もしてGTOの時とのEVlossも考えてみました。

以下はpiosolverの集合分析から得られた表をIPのエクイティが高い順にまとめたものです。

f:id:takoagemat:20180905122455p:plain
15bbHULC


flopについてはpiosolverが提供している25flopsubsetを利用しました。

www.piosolver.com

それぞれのflopで5分ずつ計算しました。
CPU: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz

piosolverでの設定は以下の写真の通りです。
f:id:takoagemat:20180905114930p:plain


回帰分析
Bet頻度とEQRの相関係数は0.954982と他の数値に比べて極めて高かった。
Bet頻度はEQRとの強い相関がある。

f:id:takoagemat:20180905233818p:plain

この図からもかなり相関があることが伺えます。

クラスタリング
ward法により、それぞれのフロップをクラスタリングしてみます。

f:id:takoagemat:20180905233821p:plain
ward法によるフロップのクラスタリング

これらを5つのグループに分けてみました。
f:id:takoagemat:20180905233823p:plain

これらの結果を下の表にまとめてみました。

f:id:takoagemat:20180905235911p:plain

重要そうな値とそれぞれの特徴を述べました

f:id:takoagemat:20180906005144p:plain
まとめ

これらのクラスタごとにGTO戦略をみていこうと思います。

それぞれのボードについて

クラスタ
Aハイボード(モノトーン以外)
IPのエクイティが高く、レンジのほとんどのハンドでベット

bet-call
この時点でIPはnuts&airの形になっている
turn以降大きいベットを多様

turn
①ブロードウェイカードがIPにとっては有利
②ボードがA以外のペアになるとほとんどベットしない
ボードがボトムペアになった時はほぼすべてcheckする
→riverでOOPはallinの選択肢あり(checkレンジにも強いハンドを残す)
③フラッシュが完成するリバーに関しては小さいベットの頻度高め


クラスタ
よくある(?)ボード、ベット頻度は50%程度
モノトーンボードではOOPは半分近くcallできる

割とイメージ通り

クラスタ
小さいペアボード、IPのベット頻度かなり低い
ベットに対してはOOPは広くミニマムレイズで対抗している

レイズはミニマムレイズが良い
IPはpassiveにプレイするのがいい


クラスタ
ミドルカードがコネクトしているボード
ベット頻度は低くOOPがcallする頻度も高い

オーバーペアはポットベットしている
IPのベット頻度は低く、OOPはより多くのハンドをcallできる

クラスタ
小さいカードのみのボード
大きなサイズのベットを限られたレンジで利用する
広いレンジで小さいベットは損失が大きい

turn
IPに有利なブロードウェイカードがでた場合allinの選択肢もある
それ以外の時はハーフポットベットのみの利用

マイクロステークスのキャッシュゲーム

自分が感じていることを書いてみます。
そのあとに最近BR$50→$10000challengeをやっているトッププロのCharlie Carrelさんの動画をみていこうと思います。

まず、マイクロステークスのほとんどのプレイヤーはGTOから大きく乖離しておりどのプレイヤーも大きく搾取可能です。
バックドアフラッシュドローなんてほとんど気にしていない人がほとんどだと思います。
それでも自分は最初は2NLでも勝てませんでした。
もちろん、個別にかなりおかしいプレイヤーからアジャストして搾取することから利益を得ることができますが、ここではマイクロステークスの多くのプレイヤーのリークとそれに対するexploitの方法を述べていきます。

自分の考えるマイクロステークスの特徴、リーク

①マイクロステークスでのベットはかなりバリューによっている。
→特にターン、リバーのCBに関して言えばほとんどバリューベットだと言ってもいいと感じる

②相手のCBにおりすぎている。特にフロップのCB
→ベットするレンジがみんなバリューによっているからかもしれないがCBにおりすぎている

③強いハンドはほとんどバリューベットしている
→バランスが取れていないためしばしばcheckレンジが弱いハンドのみでcapされている

④レイズが少ない
→特にflop以降の3bet、donk betに対するレイズが少ない
→そのためベットにレイズ、ドンクベットに対するレイズが有効(ドンクベットに対しては結構なハンドでレイズしないと相手のドンクを悪手にできない)
→donk betにレイズをほとんどしないため逆に搾取されてしまっている

マイクロステークスのプレイヤーの多くが
flopのベットレンジ>turnからのベットレンジ>リバーからのベットレンジ
のように完全に別れてしまっているように感じる

有効だと感じるexploitative play

①こちらはcheckレンジにもしっかりある程度のエクイティがあるハンドも残す
→ターン、リバーでの相手のマージナルなハンドにブラフも混ぜてレイズで対抗してexploitできる

②相手のベットに対してレイズをある程度利用する
→相手はこちらのレイズに対して3betをしてくることはほとんどないため、特にフロップチェックのリバーやターンからのベットにレイズを頻繁にしてexploitできる
→フロップのdonk betに対してもレイズするレンジを作るのがいいと思う

③ブラインドは頻繁にスチールする
→マイクロステークスではSBvsBBで明らかにBBでfoldしすぎ
→SBでpreflopでルースにスチール&flopで頻繁にCB
piocloudのpreflopsolutions
(1)2.5bbopenの場合
open 46.29%
→raise 75 18.94%, call 55.91%, fold 25.15%
(2)3bbopenの場合
open 45.08%
→raise 90 18.74%, call 43.17%, fold 38.08%
HMの結果
sample数 SB全体で2500なのでだいたい2500*81%*80%*75%*50%=600くらい
small blind steal success 55.7%

④バリューはしっかりとり、しっかり降りる
→相手はある程度強いハンドをおりきれないので相手にもある程度強いハンドが相手のレンジにたくさんあって、自分がナッツ級のハンドを持っているときはしっかりバリューを取り切る
→リバーの大きいベットは強いハンドの割合がGTOより明らかに高いのでしっかり降りる


以下の動画は最近BRchallengeを始めたトッププロのCharlieさんのyoutubeの動画です。
この動画ではマイクロステークス(2NL,5NLzoom)での感想が述べられています。


www.youtube.com


簡単に自分が重要だと思ったところを書いていきます。


The things I’ve noticed about 5NL players is they’re somewhere between the first level of thinking about or what is my hand and the second level of thinking about or what is their hands. But then they’re not quite adjusted to the second level. This is obviously a generalization but this is the key thing that you need to take home with you if you’re gonna be learning the micro stakes. You need to be good at generalization, because when you plan in a zoom pool, and when you’re playing the cash game tables online, you do not know who you’re playing against. It is essentially anonymous you may have some notes on some people, and you may some HUD stats some other people but I would recommend turning off that HUD while you’re earning at 2 or 5 NL.

5NLのプレイヤーは第一段階である自分のハンドについての思案をするレベルと第二段階の相手の持っているハンドについての思案を行うレベルの間のどこかにいるだろう。
しかし彼らのほとんどが第二段階のレベルに達していない。
これは大まかに一般化してしまっているが、マイクロステークになれるにはこのような一般化はあなたが身につけるべき要点である。
zoomのプレイヤーはほとんど相手の情報が得られないのでこのような一般化を得意にすることが必要なのである。
2NL,5NLのプレイ中はHUDを表示させないことをオススメする。

中略...

So, what is the adjustment that you can do if you realize that people are kind of like bluffing with value like with made hands but not value hands. The thing I started doing is REbluffing, because they’re not there in the Bluff mindset they’re not gonna hero call once you raise them, and there was this one hand where I had ten high on a double pair board and I was like I’m pretty sure he’s bluffing but I’m scared he’s bluffing with King high, so instead of just calling like a word against like a reasonable player that knows rages that I think’s bluffing, I raised and guys pause your video here I have to ask question what size would you raised it was… correct! you would raise to the minimum because you want to get the cheapest price to be right about how you’re bluffing and this is just one example of many many many examples like I said don’t just write down minraise, when you think they’re bluffing.
This is something that you need to come and bring into your mind.

そしてもしあなたが、zoomのプレイヤーがバリューハンドではないがある程度のバリューがあるハンドでブラフするようなプレイヤーだとわかったら何がそれにアジャストする戦略だろうか。
私が始めたことはブラフし返すことである。なぜなら彼らは一旦レイズされるとヒーローコールしようとしないブラフのマインドセットだからである。
一つの例として自分がTハイを持っており、ボードに2つのペアが出来上がった時があげられる。
私は相手がブラフをしてきているだろうと考えたが、彼がKハイなどでブラフしていることが怖い時、私がブラフを考えているレンジをわかっている合理的なプレイヤー相手の時のようにただコールするのではなく、私はレイズするのである。
みんなにもこのビデオを止めてどのくらいレイズするのがいいか考えてほしい。
その通り!相手を下ろすために最も安くすむミニマムレイズするのが良い。
これは多くの例の中のほんの一例である。
このような考え方があなたにも必要なのだ。

中略...

and then branch out your knowledge of poker because there are so many little things like that there are hundreds and hundreds and hundreds of things that you can learn little tricks that you can learn. But instead of having to rely on someone else to spoon feed you that information. You want to be the kind of person that can go home think about it yourself!

but the one thing that I would say is that make a decision be firm about it if you’re gonna become a professional poker player.

簡易化したリバーのGTOに関しての考察③

どうもこんにちは
今回は過去2回の内容を踏まえて考察していこうと思います。

検証するモデルは
OOP,IPのレンジは[0.1]
potが1、ベットサイズ1
OOPは強制check,OOPはcheck-raiseできない
IPはpotbetのみ
というモデルです。

これらのGTO解については
簡易化したリバーのGTOに関しての考察①
簡易化したリバーのGTOに関しての考察②
をご覧ください

③そのモデルの結果について考察していこうと思います。

ここでは
(1)GTOの特性について
(2)ポットベットに半分より多くのハンドをおりていることについて
の2点を考えていこうと思います。

(1)GTOの特性について

まず、今考えているのはポットベットなのでOOPは1/3の勝率があればcallできます。

実際IPがベットするレンジのうちバリューベット:ブラフベットの比が2:1になっておりOOPのブラフキャッチのレンジ(IPのバリューベットをするレンジには勝っていて、ブラフベットをするレンジには勝っているレンジ)はIPがGTOならばcallしてもfoldしても同じEVです。

この例からもわかるようにGTOは必ずしも一種類の解ではなく、複数存在していることが可能なのです。
また、戦略が有限のゲームにはナッシュ均衡すなわちGTOが必ず存在することが証明されています。


OOPのcall rangeを再掲します。

f:id:takoagemat:20180817185639p:plain
OOP call range


OOPのcall rangには84sまでかなり少ない割合ではありますがGTOはcallしています。
84sでcallするならQハイでfoldしている分をcallした方がいいのではと感じますが、84sでcallしてもこれはGTOであるため、相手はこれをリークとして搾取するのは無理だということです。

実際、混合戦略をとっているハンドはどちらの戦略でも期待値が変わらない選択肢であるのが下の画像からも確認できます。

f:id:takoagemat:20180818034356p:plain

しかしだからといってcall rangeをこれらの混合戦略をとっているハンドのうちどのように選択してもいいわけではありません。

例えばcallする割合を変えずにこのようにOOPのcall rangeを固定して最適戦略を計算し直します。(piosolverのnodelockの機能を使います。)

f:id:takoagemat:20180818040154p:plain
OOP call rage変更


するとIPのベットレンジは以下のようになり、かなりベットする割合が大きくなっています。

f:id:takoagemat:20180818040157p:plain
IPのbet range変更

さらにEVは22.846になっており、先ほどの22.221より大きくなっています。

OOPのコールレンジの偏りによって、OOPが搾取されてしまっているのです。

いかがでしょうか。実際のpokerでのflopからの計算結果をどのように体系化してプレイ方法を学ぶのか難しく自分にもわかりません笑

(2)GTOがpotbetに半分以上のハンドを降りている件について


自分がポーカーを始めた時は、potbetに半分以上降りてくれるならばベットした方がいいのかと思っていました汗
だって半分以上降りてくれるならそれだけでプラスEVじゃんって感じで笑

しかしポーカーはそんな単純じゃありませんでした笑
エクイティが0のハンドは確かにそうなのですが、自分が強いハンドを持っている時はコールしてもらった方が利益に繋がります。

じゃあもしOOPがレンジの上位半分のハンドをコールするならどのように搾取できるのかをpiosolverで計算してみようと思います。

その結果がこちらです。

f:id:takoagemat:20180819161826p:plain
OOPが上位半分をコースする時のIPの最適ベットレンジ

この結果を見てみるとIPはバリューベットのみをしていて全くブラフをしていないことがわかります。

冷静に考えてみると当たり前ですよね。
ブラフしても半分の確率でcallされてしまうのでブラフした時のEVは0なのに対し、ブラフしなければ多少のエクイティがあるのでEVはプラスです。

f:id:takoagemat:20180819162053p:plain
IPのbetとcheckのEV差


IPのEVが22.5になっており、GTOの時の22.221より大きくなっているのでOOPがレンジの半分をコールしたことで搾取されてしまっているがわかります。

OOPがレンジの上位半分をコールしている時に、IPとしてはもしGTO通りのプレイをしているとEVが22.221で相手がGTOの時と変わりませんが、搾取的にブラフをしないでバリューレンジを少し広げることでEVを22.5にあげることができます。


OOPはIPがバリューベットによる利益とブラフによる利益を最小にするためにはポットベットにも半分より多くのハンドをfoldしていいということがですね。

直感的にはこの面積を小さくするということです多分

f:id:takoagemat:20180818015232p:plain


左の紫の面積がバリューベットによるIPの利益、右の緑の面積がブラフベットによるIPの利益です。


ここまで読んでくれた方はありがとうございます。
書いた甲斐があったと思います。間違っている可能性も大いにあります。
気軽にコメントなどお待ちしてます。

簡易化したリバーのGTOに関しての考察②

どうもこんにちは

今回は前回の記事を踏まえて、piosolverを用いて検証していきます。

検証するモデルは
OOP,IPのレンジは[0.1]
potが1、ベットサイズ1
OOPは強制check,OOPはcheck-raiseできない
IPはpotbetのみ
というモデルです。

②piosolverでもGTOを解いてみる

この結果をpiosolverでも解いてみます。
これはリバーのみの計算なのでpiosolverの無料版でもできるはずなので興味がありましたらpiosolverを持っていない方でもご自分でもやってみることをお勧めします。

board AAA23r
range OOP IPともに KQs-64s

f:id:takoagemat:20180817185641p:plain

のように設定します。

こうすることで44種類の強さのハンドで同様のレンジをOOP,IPともにもち、簡易的に[0,1]gameの再現ができます。(勝手に@maspy_starsさんの知恵をパクりました笑)

ちなみにリバーのみの計算はpiosolverではすぐ終わります笑

計算結果は以下のようになります。

IPのベットレンジ

f:id:takoagemat:20180817185633p:plain
IPのベットレンジ

この結果からベットレンジは34.08%であり、大体バリューベットを上位2/9のハンドで、ブラフハンドを上位1/9のハンドでしていることがわかります。
誤差は選択しているレンジが44段階で離散的だからだと考えられます。

OOPのコールレンジ

f:id:takoagemat:20180817185639p:plain
OOPのコールレンジ



この結果から43.85%をcallしており、ほぼ4/9=44%と一致することがわかります。

また以下からもバリューベット:ブラフベットの頻度が2:1になっていることが確認できると思います。

f:id:takoagemat:20180817223009p:plain

右下のベットレンジのEquityのグラフをご覧いただけるとわかりやすいかと思います。

ちなみにEVはpot40で
OOP 17.779
IP 22.221
となっており

 \frac{2.221}{40} \fallingdotseq \frac{1}{18} になっていることが確認できます。

次回はこの結果について深掘りして考察していきたいと思います。

始めの挨拶みたいな

どうもこんにちは

ポーカー、ゲーム、サッカーとかについて思うことを書いていこうと思います。
現在22歳です多分

pokerstarsではtakoagematというIDでpokerしてます。
2016年にpokerを初めて知ったみたいです。(pokerstarsで始めたのが2016年夏でした。)
今までに$20入金して$2000くらい勝ちました。

マイクロレートでやってただけなので全然すごくないです。

スプラトゥーンとかもやってるのでチームみたいなの入れてくれる人いたらぜひお願いします

ポーカー勢の友達もいないのでブログでも書いてみることにしました
もし、コメントとかあったら気軽にして欲しいです。
絡んでくれる人いたらtwitterのDMとかくれると嬉しいです笑

最近ポーカー界隈にも頭いい人たくさん出現してきた気がするのでそうゆうのが敷居たかそうに感じる人とかはぜひ待ってます笑

簡易化したリバーのGTOに関しての考察①

どうもこんにちは
ここではThe Mathematics of PokerのChapter11の[0,1]game#2についてpiosolverの解析を含めて考察していきます。
結構長くなっちゃいました。
自分はこれ理解するのにかなり10時間ぐらいかかった気がするので皆さんにはそれをできるだけ効率的に理解してもらえたらと思います笑

まず[0,1]gameとはお互いのハンドの強さを[0,1]の実数で表すpokerのモデル化です。
[0,1]は0以上1以下の実数の閉区間です。
0に近い実数ほど強いハンドだとします。

今回の考察するモデルはお互い同じレンジを持ってリバーにいき、OOPは強制check、IPがbetかcheckを選択でき、IPのbetに対してOOPはcall or foldのみができます。
OOPがcheck-raiseすることができません。
potの大きさをPとし、ベットサイズは1のみとします。

随分pokerに比べて簡素なゲームだなあと思うかもしれませんがこれだけでも初めてみると難しいと自分は感じました。

①数学的にGTOを解く
②piosolverでもGTOを解いてみる
③その結果について感覚と異なる点はどこか、この他の戦略はどのようにexploitされてしまうのかをpiosolverのnodelockの機能などを利用して検証する

ということをやってみようと思います。

今回は①についてです。

①数学的にGTOを解いてみる。

まずIPがベットするレンジ、OOPがIPのベットに対してコールするレンジを考えてみるとこのようになります。

f:id:takoagemat:20180817185644p:plain

The Mathematics of Pokerでは、違う形のレンジの構造を考えて矛盾が生じることによりこの構造を導いていますがここでは省略します。
OOPのコールレンジがIPのベットレンジより広いことはわかると思います。


この二つの戦略の閾値(y_0,y_1,x^*_1)はどちらの戦略でも期待値が変わらないはずなので

\begin{eqnarray*}-y_1 + (P+1)(1-y_0) &=& 0\\
y_1 &=& \frac{x^*_1}{2}\\
Py_0 - (P + 1)x^*_1 &=& 0\end{eqnarray*}

がわかります。

未知数が3つで異なる式が3つ得られたのでこれらの式を用いて(y_0,y_1,x^*_1)を解くことができます。

\alpha = \frac{1}{P+1}

とすると答えは

\begin{eqnarray*}y_1 &=& \frac{1-\alpha}{(2-\alpha)(\alpha+1)}\\
x^*_1 &=& \frac{2(1-\alpha)}{(2-\alpha)(\alpha+1)}\\
1-y_0 &=& \frac{\alpha(1-\alpha)}{(2-\alpha)(\alpha+1)}\end{eqnarray*}

と求められます。
P=1、つまりポットが1でリバーでポットベットのみを打つ場合に関して
f:id:takoagemat:20180817185644p:plain



IPベットレンジ[0,\frac{2}{9}]
IPブラフレンジ[\frac{8}{9},1]
OOPコールレンジ[0,\frac{4}{9}]

になります。

ちなみにEVはIPが1/18得する計算になります。
下の図の領域分IPが得します。

f:id:takoagemat:20180818015232p:plain

IPは強いハンドでバリューが取れた時、弱いハンドでブラフが成功した時に得することがわかります。

次回は、piosolverでこのモデルを解いてみます。