ポーカーの人工知能について





ポーカーは、アマチュアから真面目な科学者までさまざまな分野の研究者を長い間惹きつけてきました。 そして、ポーカーへのそのような細心の注意が、00年代に急速に発展したオンラインギャンブルの人気の高まりと相関することは秘密ではありません。 これまでのところ、人はすでにテキサステキサスホールデムの制限を失い、車にヘッズアップしていますが、ノーリミットおよびマルチシートポーカーの分野では、依然として人が優勢です。 強力なコンピューターポーカーインテリジェンスを構築するという問題への最大の貢献は、間違いなくアルバータ大学の研究グループによって行われ、彼らが提案した平衡戦略を見つけるためのアルゴリズムのファミリーは、ポーカーエージェントを構築する際に最もファッショナブルで頻繁に使用されるツールです。 しかし、まず最初に。



この出版物は、ポーカーの人工知能の問題のみを扱っており、オンラインカジノの顧客から情報を取得すること、セキュリティを迂回すること、ユーザーの行動をシミュレートすることに関連する問題は考慮されません。 読者はすでにポーカールールに精通していると想定されています。



機械学習のためのポーカーの複雑さについて



ポーカーは、情報が不完全なゲームであるという事実が注目に値します。対戦相手はあなたのカードを知りません。 また、ランダム性の要素-プレイヤーのカードが含まれており、ボード上のデッキからランダムに一掃されます。 ポーカーのこれら2つの側面に3番目の要素が追加されます。ゲームの状態の数は、一部のポーカーの分野ではチェスよりもわずかに劣っています。 研究者が直面している問題の大きさを想像するために、テキサスホールデムの制限ヘッズアップバージョンを検討してください。 以下の図は、このようなゲームの構造を模式的に示しており、各ラウンドの賭けで表示される新しい情報を示しています。







私たちが検討しているポーカーのバリエーションでは、約10 18のゲームの状況があります。これは、完全に考えられないコンピューティングリソースを必要とするため、解決できない額ではなく、穏やかに言えばこのタスクになります。 ただし、いくつかのカードの組み合わせは互いに同等であることに注意してください。たとえば、プリフロップでは、2つのエースA♥A♦の開始の組み合わせは他のエースペアとまったく同じです。 したがって、プレイヤーが2枚のカードしか持っていない最初のベッティングラウンドを考慮すると、合計169の異なる非等価2カードの組み合わせを区別できます。 しかし、同等のクラスのカードの組み合わせを特定した後でも、テキサスホールデムには約10 14種類のゲームステートがあり、それらを保存するには数十ペタバイトのメモリが必要です。 3人以上のプレイヤーのポーカーバリエーションについてst音を鳴らすことは価値がありますか?



元のゲームが直接学習するには大きすぎる場合の通常のことは、抽象的なゲームへの移行(抽象化)であり、戦略的な意味でゲームの状態、つまり完全なゲームの状態を組み合わせます。 つまり、ゲームを分析して解決するとき、元のゲームのいくつかの状態は区別できないものとして扱われます。 ポーカーで抽象化を構築する例として、プリフロップを考えてください。ご存じのように、最良の開始の組み合わせは、AAエースのペアと、エースとキングAKの適切な組み合わせです。 最初の取引でこれらのカードを引くための戦略が互いに大きく変わらないことは明らかです。したがって、良心のtwinがなければ、これらの2組のカードを組み合わせて開始の組み合わせの1つの抽象的なクラスにできます。 指定されたトリックは、他のカードの組み合わせに対しても繰り返すことができます。その結果、ご想像のとおり、計算リソースに対する要求がより少ない「抽象的な」ポーカーになります。



カードの組み合わせだけでなく、無制限の分野でのベットパターンにも適用される抽象化を構築する他の方法があります。これにより、調査および分析できる抽象ゲームを取得できます。 ここで重要なのは、抽象化への移行中に、元のゲームに関する情報の一部が失われることです。 失われた情報が重要になるほど、ポーカーエージェントはより脆弱になります。



では、ポーカーをプレイするための戦略的プロファイルを構築する基本的な概念を見てみましょう。



エキスパートシステム


最初のポーカーエージェントは、エキスパートシステムまたはさまざまなゲームの状況向けのif-thenルールセットでした。 そのようなルールは、プレイヤー自身の助けを借りたハンドルによって駆動され、および/または多数の実際のゲーム分布を分析することによって取得されました。 それはそうかもしれませんが、このアプローチの欠点は明らかです-弱点を特定した後、人工的な敵が簡単に悪用されます。 もちろん、これらの弱点は常にルールベースに新しいエントリを追加することで修正できますが、サポート、デバッグ、およびシステム全体のパフォーマンスの低下の複雑さに関連した多くの問題が伴います。



今日まで、純粋な形のこのタイプのポーカーエージェントは、簡単に利用できるため、実際には使用されていません。 このクラスのボットの最も有名な代表者:LokiとPokiの最初のバージョン、FellOmen、狭い円で広く知られているShanky Bot。



エクスプロイト


ポーカーエクスプロイトボットの基本的な概念は、有名な相手に対するカウンターエージェントを構築し、弱点を利用してゲームを最大限に活用することに基づいています。 原則として、特定のゲーム状況での対戦相手の行動のモデリング、または特定の対戦相手の事前に計算された戦略的プロファイルのいずれかが使用されます。



対戦相手のモデリングを使用してシステムで意思決定を行うと、最終的にさまざまな結果の「仮想」分布を繰り返し再生して、最も収益性の高い決定を決定することになります。 このようなポーカーエージェントの妥当性は、相手のモデルの妥当性によるものです。 しかし、人間の意思決定のモデリングに関しては、 シャノンの占い師は常に10分の9のケースでプレイヤーの行動を推測していることを覚えています。 ほとんどの場合、ニューラルネットワークはライブの対戦相手をモデル化するために使用されます。これは、一部の情報源によると、プレーヤーの行動を予測する際に80〜90%の信頼性を提供できます。 この事実により、このタイプのポーカーボットはオンラインカジノでプレイするのに最も魅力的です。最新のGPUテクノロジーにより、相手のモデルを簡単かつ迅速に構築し、収益性の高いソリューションを計算できるためです。



学界では、 最善の対応戦略を見つけることに基づいて搾取者が知られています。 このアプローチの考え方は、与えられた抽象化の枠組みの中で、よく知られている相手に対して対抗戦略が選択されるということです。 これにより、特定の対戦相手の弱点を可能な限り効率的に活用できますが、任意の対戦相手に対しては悲惨な結果になる可能性があります。 さらに、このような戦略的プロファイルの構築にはかなりの計算リソースが必要ですが、最近この分野で進歩がありました。



エクスプロイトボットには、1つの欠点があります。 彼は、最初の戦略を実装する必要性に横たわっています。なぜなら、数十ハンド後に相手をシミュレートして悪用することは不可能だからです。 さらに、私たちは、作戦が実を結び始める前に、特定の敵との何万もの配布について話しています。 通常、対戦相手の統計を収集するときは、異なるタイプのポーカーボットが使用されます。 初期段階で人々と遊ぶ場合、ゲームへの参入頻度、ショーダウンへの望みなどの共通の特性によって結ばれたプレイヤーのグループに対する配布履歴について、搾取者が事前に訓練されるアプローチが非常に頻繁に使用されます。 次に、ゲームがゲームを配信するにつれて、相手の特性がますます明確になり、オペレーターが適切かつ適切な対抗戦略をより適切に選択してトレーニングできるようになります。



エクスプロイトのゲームの品質は、エキスパートシステムの弱点を特定できるため、エキスパートシステムをはるかに上回っています。 任意の敵に対するそれらの有効性は、主に3つの要因によって決定されます-初期戦略、敵について収集された統計、使用されるモデルの妥当性。 このクラスで最も有名なボットはBRPlayerとVexbotで、ポーカーアカデミーの多くの人によく知られています。



均衡戦略


比較的最近まで、ポーカーボットを構築するための純粋なゲーム理論的手法は、その実装に計算上の困難が伴うため、学術的な関心分野に属していました。 これは主にナッシュ均衡を見つけることです。



均衡戦略の概念を詳しく調べて、よく知られているゲームであるStone-Scissors-Paperが非常に多くプレイされていることを考えてみましょう。 最初のプレイヤーは、 きれいな戦略に従って、常に石をプレイします。 その後、最初のゲームを見た2番目のプレーヤーは、最大の利益を得るために常にペーパーをプレイします。 最初のプレーヤーは、負けずに賞金を最大化するために、ハサミに切り替える必要があります。 明らかに、2番目のプレイヤーは戦略を石に変更し、戦略を変更するサイクル全体が再び繰り返されます。 最初のプレイヤーが石、はさみ、または紙を投げた場合、2番目のプレイヤーは戦略をどれだけ変えようとしても敵を利用できなかったことがわかります。



上記の例は、2人のエクスプロイトのゲームであり、常に混合戦略を敵に合わせて調整しています。 明らかに、遅かれ早かれ、両方のプレイヤーの戦略は、石、はさみ、または紙の同等の確率の投げに収束します。 この特別な状況はナッシュ均衡と呼ばれます。なぜなら、均衡状態にあるプレーヤーは誰も他のプレーヤーよりも上手くプレーできず、戦略を変えるからです。



上で述べたように、ポーカーの均衡戦略を探すことについて考えることは何もありません-人類はまだこのサイズのゲームを解決するのに十分なリソースを持っていません。 そのため、研究者はポーカーアブストラクションの均衡戦略に焦点を当てましたが、これにより、アブストラクトゲームのバランスがフルゲームのバランスにどれだけ適切に対応するかという問題が生じます。 この点で、抽象的なゲームのナッシュ均衡は近似均衡またはε 均衡と呼ばれます 。ここで、εは戦略の潜在的な開発を象徴しています。



ε-均衡では、主な特徴はスーパーエクスプロイトで遊ぶときの有効性です。 または、言い換えれば、見つかったε平衡が元のゲームの真の平衡からどれだけ離れているかということです。 粗すぎるまたは不適切な抽象化を使用すると、大まかで不十分なε平衡が得られることが予想されます。 また、抽象化への移行中に失われるゲーム全体に関する情報が少ないほど、抽象化自体が大きくなり、学習アルゴリズムとコンピューティングリソースの要件が高くなることが非常に予想されます。 これにより、このような大規模なゲームの平衡システムを見つけるための新しい方法の検索と開発につながりました。



今日、ポーカーの大規模な抽象化で均衡を見つけるためのいくつかの効果的なアルゴリズムがあります。 これらの中で最もポピュラーなのは、後悔の最小化に基づくアルゴリズムです。 このアルゴリズムファミリは、アルバータ大学の研究グループによって積極的に開発されており、別途検討する価値があります。 これらのアルゴリズムのいずれかを使用して、Slumbotポーカーボットがトレーニングされたことに注意してください。最初の3つのトレーディングサークルは抽象化されずに表示されます。 このボットは昨年の年次コンピューターポーカーコンペティションで1位になりました。



均衡戦略の主な利点は、その非操作性です。 同時に、これらの戦略は、非常に弱いポーカープレイヤーに対しても特に有益ではありません。 平衡戦略プロファイルを使用するこのクラスのポーカーエージェントの最も有名な代表者は、HyperboreanとPolarisです。これは、ポーカーで自信を持って人を倒すことができた最初のボットです。



結論の代わりに


このミニレビューは、コンピューターポーカーの問題を完全に説明するものではありませんが、この分野の現状を概算することができます。 うまくいけば、このトピックをさらに拡張できます。



便利なリンク
コンピューターポーカーレビュー記事



アルバータ大学研究グループ出版物



コンピューターポーカーリソース



毎年恒例のポーカー大会のページ



codingthewheel.comブログでポーカーボットを構築する実用的な側面



Webサービスプレイポーカー[オタク誌]






All Articles