GTOの体系化を1から考える - 4 ~総集編1~
初心に帰って、今までの道のりを俯瞰・整理します。
1.GTOとは
”一番バランスの取れた戦略”のこと。Plyaer A, BのHUにおいて、Aが一番バランスの取れた戦略を選択すれば、Bは戦略を変化させることによって、AのEVを減少させることができません。またBがGTOでプレイしない場合、自らEVの損失を生み出す戦略が存在します。ポーカーはゼロサムゲームであるため、Bが失ったEVは、AのEVに加算されます。
メタゲームであるポーカーにおける最終地点がGTO。
2.GTOを習得する意義
- 相手がGTOでプレイしている場合、こちらがGTOでプレイしないと、EVの損失を自ら生み出してしまう可能性があるから
- GTOの性質を知ることにより、GTOから大きく離れた戦略に対して、Exploitする戦略を定量的に考えることができるから
- どうしても定性的になりがちなハンドレビュー等の議論を、定量的に評価できるから(時と場合によるが)
- LibratusというGTOを模倣するAIがプロ相手に大きな勝利を挙げたから(14bb/100)
じゃあ、GTOを勉強して習得すればいいじゃん!
そう簡単にはいかないのが現実です。
3.GTOを習得するうえで何が障害となりえるか
ゲーム全体の解は現在の計算機では計算不可能です。なのでこのゲーム全体の解を習得するのは非現実的です。(そもそもわからない)
ベットサイズを複数程度に固定した、部分ゲームにおいては計算機によってGTOが計算可能です。しかし、Solverによって得られた解は複雑で、全ての場合において、私たちがそれらを暗記するのは、ほとんど不可能であると考えられます。
よりゲームを簡単化したものに対する計算結果を用いて、複数のシチュエーションごとにGTOを近似することができます。(例えば、A-highボードならwhole rangeで33%のベットを打つのが疑似GTOなど)
上の図を見てわかるように、右に行けば行くほど搾取可能性が大きくなっているのがわかります。ゲームを簡単にすればするほど、情報量が落ちていくのでGTOの精度が落ちていくからです。
つまり、ゲームの複雑性と戦略の多さがGTOを習得することを困難にしています。戦略を決定する要素は多数存在します。IP Range, OOP range, Bet Size, Community Board, Effective Stack Size, ...。上げていったらきりがありません。
GTO戦略がで決定されていると仮定すると、
(つまり、)
のサイズが戦略の多さを表す指標と考えることができます。
4.どのように障害を解決するか
3節でお話ししたの大きさが障害を解決する鍵だと考えています。つまり、得られる結果が人間に最低限、習得可能なレベルにするために、のサイズを減らしてあげることが必要です。
(のすべての要素はGTOなので、の要素を適当に減らして・または近似して、新たな集合を作る。)
つまり私たちが知りたいのは、この写像と解釈することができます。
またの大きさと、GTOの精度はトレードオフの関係にあると考えています。(トレードオフが線形か非線形かは不明)
私たちが知りたい疑似GTOは3.の図の水色の点を、人間が模倣可能なレベルを保てる最大限の点まで左側に移動させることです。(重要なのは”左側に”という点で、適切な手法を用いないと、右側の点を取ってしまいかねない。)
5.現在の手法とその問題
詳しくはこのエントリーをご覧ください。
alphanavis.hatenablog.comこのエントリーのは、Girvan-Newman法によって求めたクラスタに含まれる戦略の平均です。
考えられる問題として
- コサイン類似度は適切に戦略を分けることができるか?
- EQでBinningすることによって、よくないことが起こっているのではないか?
- 分割したクラスタ内の戦略を平均化する際に、近傍中心性等の指標を用いて、加重平均をとったほうが良いのではないか?
- クラスタ間の戦略も反映したほうが良いのではないか?(Functional Cartography等を用いる。)
上げていたらきりがないですが、当面は今の手法のままやってみて、結論だけ付けます。まずは悪い手法でも最後までやってみて、徐々に洗練させていく方向で。
6.最終的なゴール
良い近似戦略が求まったら、ハンドのカテゴリー別に戦略を割り振っていきます。Pioとかだと、「One pairとかFlush Drawで66%ベット、A♣,K♣のブロッカー持ってたら125%ベット」みたいなことを教えてくれないので、人間が理解しやすいような出力形式を目指します。
固まってはいませんが、Snowieのレンジアドバイス的な出力にして、もう少し見やすくできればいいかなと思っています。
例えば、
CHECK -> NONE
33% BET -> Top Pair: 100%, Second pair: 100%, Third Pair: 100%,....
66% BET -> A-high Flush: 100%, K-high Flush: 100%, A-high Flush Draw: 100%
125% BET -> NONE
みたいな出力を綺麗なインターフェースで出してみたいです。
例)雑ですがこんな感じ?(図の中の戦略はテキトーです)