solverを用いたpokerの学習について

「何をどう学習するのがベスト」というのは、目指すところや、pokerに使えるエネルギー・時間などによっても正解が変わってくる問題でしょうし、そもそも誰一人正解が分かっていない問題でしょう。色んなことを言う人が居て、それぞれ参考になるところがあると思います。

今回の内容も、一般的に普及していて成功の確度が高い何か、というよりも、私の自己流を大いに含む話なので、そのつもりで読んでもらえればと思います。

----------

GTO solverを活用して、何をどのように学習するのか?
初学者が必ず行き当たる問題だと思います。

ハンドレビュー・答え合わせに使う?
もちろん重要なことですが、solverの出力を見て「当たった(^^)」「外れた(>_<)」とやるだけでは学べることは少ないでしょう。
何一つ身につかないということだってありえます。

それでも回数をこなせば、だんだんとsolverを模倣する能力は高まるでしょう。(この際、集合分析を利用するというのが有用です。)
しかし理解が伴わない暗記は学習効率も悪いですし、相手の傾向に合わせて戦略を変化させるような可能性も失ってしまいます。何より、身に付くものがsolverを模倣する能力というだけでは、pokerの学習が非常につまらないものとなってしまいます。

この記事では、GTO solverの出力のどの数値にどういう心持ちで向き合っていくべきなのか、私見を述べます。

<純粋戦略、混合戦略、EVについて>

簡単のため、「bet / check」の2択について説明します。

GTOが混合戦略をとる場合。例えば「bet 90%, check 10%」という出力があるとします。誤った解釈をしていませんか?

「betの方がEVが高い」「betの方が得になりやすい」 → 違います。

違います。GTOがあるハンドを混合戦略でプレイするのは、EVが完全に等しい場合(solverの出力は完全なGTOではないので「EVが非常に近い」場合)にのみ使われます。ということは、
 ・相手の戦略が / レンジが1%ずれているだけで、checkの方が得
というようなことも起こりうるわけです。

この意味で、些細な混合比にとらわれすぎないようにしましょう。

またsolverが純粋戦略でbetを主張している場合でも、ほんの些細なEV差だという場合もあります。EV差が大きな純粋戦略であれば、相手がかなり大きくGTOから外れていない限りは、solverの見解が実際の対戦相手に対しても「正解」である可能性が高いです。しかし、些細なEV差であれば、実際の対戦相手に対してsolverの逆を行くことが「正解」になる場合も多いでしょう。

また双方が完全なGTOを目指す前提であっても、EV差がほとんどないアクションのどちらが正解であるかは非常に繊細な問題で、bet sizeやrangeをほんの少し変えただけで正解が大きく変わる場合があります(戦略はパラメータに対して不連続に変化する場合がある)。

(またSolverが戦略を高い精度で計算したとしても、GTOに「近い」のは、EVの意味であって、各戦略頻度がGTOに「近い」ことは保証されません。)

・戦略の混合比は非常に繊細で、これを直接的に理解するのは困難。
・EVを理解しようとする方が優先。

じゃあ結局、EVに差があるかだけで、混合比はどうでもいいの?
→ solverと異なる混合比をとっても、GTO相手に直ちに損をするわけではありません。ただし、混合比が大きくはずれると、相手にexploitされてしまうリークを抱える可能性があります(そうでもない場合もあります)。このことを理解するために必要なのは、自分の戦略やEVではありません。混合比そのものを見るのではなくその裏側。相手のEVや、相手のとりうる搾取戦略と向き合うことが必要です。

■ダメな考え方
「bet 90%、check 10%」という出力を前にした場合
・なぜbet EVの方が高いのかを考えよう
 → 高いって言われているわけじゃないよ
・なぜbet EVの方が得になることが多いのかを考えよう
 → いや、だから違いますよ
・なぜこう混合するのが得なのかを考えよう
 → 違うってば!

「bet 100%」という出力を前にした場合
・betが正解でcheckはミスプレイ
 → そうでもないよ。EV差がほとんどない場合もあるし、相手のレンジが1%違うだけでGTOの意味ですら正解の場合もあるよ。

■ではどう考えるのか
・それぞれのアクションのEVを確認する。
・EV差が大きい→どうしてそちらのEVが大きいのかを考える。
・EV差が小さい(純粋戦略も)→どういう相手ならどちらが良いか考える。
・そのためには、(戦略そのものよりも)EVを掘り下げて研究する。
・混合比の根拠を求めたいときには、相手のEVについて考える。
・混合比を大きく変えるとどう搾取されるのかを考える。

<EVを理解しよう>

あらゆる戦略に対するEVの仕組みを理解するのは難しいですが、solverからは、GTOを相手にした場合のEVが深く研究できます。
どのくらいfoldしてくれて、どういうアウツが落ちたときにどういう戦略でどのくらいのpotを獲得する算段なのかを、なるべく定量的な計算式を伴う形で理解していきましょう。
EVを詳しく説明できるようになっていく過程で、自然とturn以降の戦略についても理解する必要が出てきたり、搾取戦略についての思考の材料が増えてくることになるでしょう。また、「このアウツのときは10回に1回くらいpot取れば十分だとGTOは判断している」というような想定ができていれば、無理に強気に出たり、あるいは負けたことに必要以上に落胆するような負担も軽減されます。

<PioSOLVERでEVについて学ぶ方法>

・Strategy + EVを表示する
・2アクションのEV差を可視化(その純粋戦略はEV差が大きいの?)

・EVの内訳について詳しく考える
→ foldしてくれた場合、callされた場合等にどのようなEVを見込んでいる?
→ アウツごとにどのようなEVを見込んでいる?
turn以降で集合分析レポートを出力するのも非常に便利です(後述)。

<混合比を大きく変えた場合にどう搾取されるのか>

・上記のようにして、相手のEVの内訳を理解する仮定で正しい頻度を考える
node lockを使って相手の搾取戦略を確認する

<PioSOLVERの集合分析>

(「PioViewerの」が適切かもしれないけど、この記事では区別しません。)

集合分析は、twitterで私の見ている範囲(狭いです)でも、ある程度普及していて認知度の高い機能だと思います。特に普及している使い方が、Flopごとの戦略、EV、EQなどの違いを観察するというものでしょう。

意外に感じる方も多いかもしれませんが、PioSOLVERに初めて集合分析が実装されたときには、この複数treeにわたる分析は想定されていなかったようです。(https://www.piosolver.com/blogs/news/19652676-small-saves-range-explorer-and-more#aggregation_reports

認知度が低いように感じますが、1つのflop以降のEVや戦略を詳しく理解する際にも役に立ちます(上記のように、最近は私はこちらの集合分析を頻繁に確認します。)。turn以降の適当なノードで集合分析を出力して、全ハンド・全アウツに関する戦略、EV等を一気に出力できます。(「EVの内訳の確認」という話の流れで紹介しましたが、アウツ別の戦略をまとめて確認する場合にも手っ取り早く有益です)。ぜひ利用してみてください。ハンドが1176種、アウツが49×48通りあって膨大なので、関心のあるハンド1combo分を抽出するのがおすすめです。

これを使ってEVを理解しようとしてみる記事を、またそのうち書くかも?


※アウツごとの「レンジ全体での」EVや戦略を確認する際には、Runouts EV comparisonも便利です。



面白い記事だと思ったら少額でもサポートいただけると、記事執筆の大きな励みになります。