見出し画像

ポーカーAI開発 part2 〜AIの行動を分析してみる〜

こんにちは!ナガメ研究所です。前回のpart1に”スキ”をくれた皆様、ありがとうございます。励みになります!
さて今回は、いい加減やろうと思ってたAIの行動分析について、ざっと項目を洗い出してきました。ただ、筆者はポーカー初心者です。ポーカープレイヤー目線のもっと良いデータの見方があれば参考にさせて頂きたいので、ぜひコメントお願いします!

ポーカーAIの行動分析

調べてみると、ポーカーゲームではHUD(ヘッズアップディスプレイ)という、スタッツ(プレイの特徴を表す様々な数値)があるそうです。以下に項目を挙げます。

ポーカーのプレイを表す指標

今後の実験の基準となるベースラインの数値が欲しいので、報酬もシンプルに、Bankrollをゼロにすると+1、ゼロになると-1としています。50ゲーム内に決着しない場合は終了させます。持ち点は100BBです。以下のスタッツが、学習を進めるに連れてどうなっているかグラフで見ていきましょう。

グラフの見方

横軸は経験したEpisodeを示しており、Bankrollがなくなるか50ゲームプレイすると1Episodeとなります。単位はx100Episodeです。並列に100個の学習を行っているので、100Episode×100個の環境となっています。メモリが1000の場合は1000x100で10万Episodeとなります。縦軸は各指標の数値です。青がSBのAIの値、オレンジがBBとなります。

ELOレート

ちょっと今回の主題と逸れますが、ポーカーAIの強さを示す相対的な指標であるELOレートも載せておきます。数値が上がるほど学習が進んでるんだなくらいに思ってください。横軸はEpisodeではなくactionをした回数になっています。縦軸がELOレートです。
下のグラフを見ると、定期的に頭打ちになっているのが分かります。このことから、レート1300程度が限界のようです。これがどれくらいの強さなの?って言われると・・・よく分かりません。

学習中のAIのELOレートの様子

VPIP

VPIPは、プリフロップ(カードが場に配られる前の状態)からチップを払ってゲームに参加する割合のことです。BBのコールは除くので、BBはこの値が小さくなる点に注意です。
学習がある程度進むと、SBは0.5よりちょっと高い値となっています。2回に1回以上は参加しているということですね。

VPIP

PFR

プリフロップからレイズをする割合です。SBは0.45付近、BBは0.375くらいとなっています。

PFR

AF

アグレッションファクターといい、どれくらいアグレッシブ(攻撃的)かを示す指標となります。値が高いほど自分からレイズを仕掛けており、低いほどコールなどの回数が多くパッシブ(受け身)であるといえます。この指標はプレイスタイルを決める上でかなり大切ですね。ちなみに、6人のNLHだと3が適正値だそうです。

AF

AFの算出式 (べット回数+レイズ回数) / コール回数

WTSD

フロップまで進んだ場合に、ショーダウン(最後までゲームが進み、役の強さで勝負を決定する段階)になる割合です。言い換えると、フロップ後にどれくらいフォールドしているのか?を示す指標となります。今回はそのままフロップ後のフォールド率を出しているので、WTSDの正しい定義?とは異なります。これを見ると、SB,BBともに約2%しかフォールドしてないことが分かりました。適正値は不明ですが、これはかなり勝負し過ぎではないかなと思います。(見返してて思いましたが、この分母ってフロップまで進んだ場合のゲーム数ですよね・・・全ゲーム数にしてたので間違ってるかも・・・)

WTSD

平均ゲーム数

最後に、ゲーム終了までに何回ハンドが配られたかをグラフにしてみました。学習が進むに連れて、勝負を決するまでにかかるハンド数が増えていますね。学習の様子を見ても、ある程度ハンドを絞っているように見えます。

平均ゲーム数

その他

今回は載せていませんが、他にも様々なスタッツがあるようです。
・3Bet
プリフロップにおいて3bet(最初にレイズするオープンに対して、さらにレイズすること)する割合
・4Bet
3Betに対してどれくらいレイズするという割合。
・(Flop, Turn, River) CBet
CB(コンティニュエーションべット):プリフロップで最後にレイズをしたプレイヤーがフロップでも引き続きベットをすること
・Fold to (Flop, Turn, River) CBet
CBに対してフォールドすること

最後に

全体の指標がヘッズアップだとどこが適正値になるのか分かっていません。手探り状態です。ただ、ベースラインの平均値は見えてきたので、ここからいろいろ実験して、どのパラメータがその指標に影響をおよぼすのか、実験していこうと思います。
各スタッツの値を報酬に加えて学習することで、もっと人間らしいプレイをするモデルに学習できますし、プレイスタイルもコントロールできるのではないかと考えており、ワクワクしています。他にもこんな指標が見てみたい!などありましたら、お気軽にコメントください。お待ちしております。では。

参考サイト様

修羅ポーカー:https://shura-poker.com/hud-appropriate-stats-level/#3_AF

ノリオのWork-Life-Hobby-Balance:https://yoshinorim.com/nlh_stats_hud/#i-2

この記事が気に入ったらサポートをしてみませんか?