フェイスブックの作ったポーカーAIってホントに人の心理を読むんだろうか。原論文を読んで思ったこと。

今年の7月にFBの友人が、フェイスブックが無敵のポーカーAIを作ったというMIT Technology Reviewの記事を教えてくれました。

https://www.technologyreview.jp/s/152581/facebooks-new-poker-playing-ai-could-wreck-the-online-poker-industry-so-its-not-being-released/

この記事によれば、

プルリブスと名付けられたこのAIは、対戦相手のプレーを分析してチップを出させるように仕掛ける抜け目のなさ(devious/cunning)があって、テーブルを囲むプロのポーカープレーヤー全員を出し抜いて(outwit)見せた。

そして、ラウンドをコールで終えたあと次のラウンドをベットで開始する「ドンク・ベッティング」など、予想だにしなかったいくつかの戦略を駆使し、まるで歴戦のプロのようにはったり(Bluffed)を仕掛けた。

とあります(日本語訳はMITテックレビューの日本語版から引用。英単語は元の英文記事から拾いました)。

ブラフをかませるなんて、人の心理を読んでいるかのようで、AIもとうとう人の心の領域にまで来たか、と思わず誤解をしそうな記事にも見えます(注意深く読むとそうは言っていないのですが)。

そこで、「疑問があれば原点に返れ」の方針で、このポーカーAIの原論文を全文和訳をおこなって読むことにしました。日本でこれを全文和訳した人はあまりいないと思うので、ちょっと価値があるかな。それで理解したことと、私なりに思ったことをこれから述べます。

原論文はここにあります。

Superhuman AI for multiplayer poker

Science  30 Aug 2019: Vol. 365, Issue 6456, pp. 885-890

https://science.sciencemag.org/content/365/6456/885

 

【1.まずはテキサスホールデムポーカーとは何ぞや】

ポーカーというと、5枚のカードの手の強さが、ワンペアとかフラッシュとか決まっていて、強いカードを作った人が勝ち、みたいな理解ですね。ところが、このプルリブスがプレイするのは、ラスベガスのカジノやプロのポーカープレーヤが行っている、(6人制の)手持ちのコインを全額まで賭けることが出来る、テキサスホールデムポーカーです。

テキサスホールデムポーカーは、カードの手の強さは自分でコントロールできません。つまり、自分の判断でいらないカードを捨て、新しいカードをディーラーからもらって手づくりするという事がないのです。ゲーム参加者はそれぞれ2枚の自分だけの手札を持ち(相手には最後になるまで未公開)、それに、ディーラーが示す3枚から始まって5枚にまで増える共通カードを組み合わせて手の強さが決まります。

競うのは、ディーラーが共通カードを3枚から5枚にまで増やしていく過程で、参加者が賭け金つり上げ競争をしますが、これに最後まで、つまり5枚目の共通カードが公開されるまで、勝負を降りないで高騰する賭け金を賭け続けてついていけるか、そして最後まで残った人が複数いれば、その時は自分の手の強さ(各人固有の2枚の未公開カードと5枚の公開カードの計7枚の内の最強の組み合わせの5枚の手)で勝てるか、というのもです。

こんなイメージです。この例では2とKの2ペアですね。

f:id:yoshihirokawase:20191010112749j:plain

面白いのは、大した手でなくても、掛け金の賭け方で自分の手が強いと相手に思わせて、他の参加者が途中で全員降りてくれればその時点で自分が勝てるという事です。

つまり、競うのは、麻雀のように手の作り方の巧拙ではなく、掛け金の賭け方戦略の巧拙ということになります。そして、実際の手の強さは全くの偶然で決まります。なので、強い人が100戦100勝という事はないわけです。テキサスホールデムポーカーが強い、という事は、基本はギャンブルなので、長く戦っていくときに、手持ちのコインの総額が変動はしながらも着実に増えていくような賭け金戦略を持っているか、相手の賭け方の癖や戦略の変化を読みながらそれに柔軟に対応できる戦略を持っているか?という事になります。

それを踏まえて、そういう賭け金戦略を学び、ゲームの状況に応じて臨機応変に戦略をかえて実行するポーカーAIをどうやって作るかという事になります。

ここで重要なのは、ポーカーは囲碁や将棋と違って、相手の手が全部公開されてはいない不完全情報ゲームであって、そこに確率的な要素があるという事です。

情報が不完全ななかで、どのような行動が最適なのかをAIが示してくれれば役に立つ場面は多そうです。

例えば、オークションとか、ビジネスや外交の交渉とかですね。極端な例では、相手の戦力や戦略がわからない時に、戦争を仕掛けるかどうか、仕掛けたとしたらどのように戦力を投入して相手の戦力を削いでいくか、という事例に応用できるとすれば、とても大きな話になりそうです。

 

【2.AIの基礎と囲碁AIの振り返り】

AIの基礎と囲碁AIの内容については別のブログに書いています。

http://yoshihiro-kawase.hatenablog.com/entry/2019/09/20/150445

詳細はそちらに譲りますが、ポイントは(教師データを使わない)自己学習型のAIは目的関数を持っていて、自己学習の結果から、その目的関数の値が最大になるように、CNNのパラメータを、結果から入力に至る方向で振り返り学習をするように、逐次改善して、ゲームAIであれば、より勝つ確率の高い手を打つようにしていくことです。

 

【3.プルリブスの特徴】

プルリブスは自己対戦型のAIで、自分のコピーとポーカーをして学びます。そのときに自分はそれぞれの局面でどういう手を打つか(ゲームを降りるか、続けるか、続けるとすれば掛け金を増やすかどうか)はランダムに選びます。これをモンテカルロ法で次の手を決めると言います。それを続けるとゲームを終えることができます。

そして、プリリブスは終局後に、そのゲームを振り返ることで学んでいきます。その学びを最適化する目的関数の改善の手法はCFRです。CFR(Counterfactual Regret Minimization)は、打たなかった手を後悔することを最小化するようにCNNのパラメータを改善していくことを意味しています。

次の対戦ではこの少しだけ最適化されたCNNの示す次の一手モンテカルロを組み合わせて実際に打つ手を決めていきます。これを繰り返すことで、だんだん後悔する手を打たないCNNが育ってくることになります。

この逐次改善型自己学習のプロセスの中で、考慮する対象が多すぎると処理数が膨大になって手に負えなくなります。それを防ぐためにプルリブスは2つの抽象化を行っています。それは行動の抽象化と情報の抽象化です。

行動の抽象化とは、自己学習の間は、掛け金の額を最大14種に制限することです(テキサスホールデムポーカーでは100ドルから1万ドルの間で掛け金を自由に設定できますが、それを制限します)。

情報の抽象化とは同じような価値の手(カードの組み合わせ)をひとまとめにして扱う事です。例えば、10-J-Q-K-A のストレートと9-10-J-Q-Kのストレートは明らかに違う手ですが、それでも戦略的には同じであるとして扱います。

こういった抽象化作業によって考慮すべきの場合の数を減らしています。

プルリブスはこういった抽象化を行った上で、モンテカルロCFRに基づいて自己対戦を繰り返します。線形CFRという手法を使い、先回と比べた改善の度合いがどれくらい小さくなったらその改善を打ち切るかという制限を定めた上で逐次改善をしました。

具体的には、64コアのCPUをもつサーバーを使って8日間に渡って自己対戦によるCNNの改善が行われました。これで学んだ結果を基本戦略(Blueprint Strategy) と呼んでいます。

全部で12,400CPU・時間のリソースを使いました。使ったメモリは512GB以下です。その計算のために、現在のクラウドコンピューティングをスポットで一時的に使うとすると、その料金は約144ドルだった、といっています。プルリブスはDeep Mindの囲碁AI(Alpha Go)と違って、巨大な計算リソースを使わずに開発されたのです。

そして、この(情報の抽象化を行った)基本戦略AIは128GBのメモリのマシンで実際に人と対戦できるのです。

ですが、プルリブスはこの自己学習で学んだ、抽象化ベースの基本戦略だけで戦うわけではありません。それを行うのは最初のラウンドだけで、あとは相手の戦略に合わせて打つ手を変える機能を持っています。

さらに、情報の抽象化も、実際に人と対戦している時には、次回以降の掛け金を賭ける状況に関する理由付けには使っても、今、実際に行なっている場での賭け金の設定には使いません。もっと細かいメッシュで行います。

つまり、プルリブスは自己学習で得た基本戦略を基本にゲームの状況に応じて打ち手を変える機能を持っています。それを人の気持ちを読む、というのは自由ですが、そのアルゴリズムについて以下に述べます。

相手の賭け金がプルリブスが基本戦略を作るときに使った行動の抽象化とあわない時など、基本戦略をそのまま使えない局面になると、プルリブスはその場からモンテカルロ探索をします。その探索がリーフノード(探索の末端)まで行ったら、そこで相手が戦略(賭け金の賭け方)を変えるかもしれないことを考慮します。

これを持って相手の気持ち(戦略)を読むというのでしょうね。具体的には次の4種の戦略を考慮します。①事前の自己対戦で培った基本設計戦略。②対戦を降りること(fall)を重視する戦略、③対戦相手の賭けに応じる(call)戦略、④掛け金を上げること(raise)を重視する戦略。これによってよりバランスの取れた戦略をとることができるようになります。

さらに、プルリブスは自分のとっている(賭け金)戦略が相手に見破られない対策を施します。具体的には、「自分が実際にどんな手(2枚のカード)を持っているかにかかわらず、まず最初に、すべての持ち得る手で何ができるかを計算して、すべての手に渡って戦略の(攻めと守りの)バランスを注意深く取って、相手に自分の手(2枚のカード)が予測されないようにします。このバランスを取った戦い方が計算で導出されたら、プルリブスは実際に持っている手に対してその戦略を実行します。」と言っています。

さらに、下記のような数値解法上の記述があります。

プルリブスはサブゲームの戦略(戦い方)を計算で導出するのに、そのサブゲームの大きさとそのゲーム進行上に占める位置に応じて2つの異なるCFRの(計算)様式の内の一つを選んで使いました。サブゲーム(のツリー探索の規模)が相対的に大規模であったり、ゲームの初期状態にある時には、モンテカルロ線形CFRが基本設計戦略を計算したのと同じように使われます。そうでなければ、プルリブスは線形CFRを最適にベクトル化(マルチCPUで同時計算)した様式を使って(ゲーム盤に公開されているカードのような)偶然で決まる事象だけをサンプルしてCFRを計算します。

 

【4.プルリブスの強さの実証実験の結果評価】

さてこのように、CFRを価値関数として自己対戦で学んだ基本戦略に、相手が戦略を変えることをも想定したモンテカルロ探索と、自分の賭け金戦略が相手に読まれないように賭け金戦略の(攻め重視か、守り重視かの)バランスを取る手法を身につけたプルリブスを、プロのポーカープレーヤと対戦させてどれくらい強いと言えるのかの実証実験が行われました。

プルリブスは、2つのインテル ハスウェルE5-2695 v3 CPUの上で動作し、使用する外部メモリーDRAM)は128GB以下です。そして、プルリブスが一つのサブゲームで探索を行うのにかかる時間はその特定の局面の状況に応じて1秒から33秒の間で変化します。プルリブスは平均して、6人制のポーカーを自分の複製5台と対戦する場合には、だいたい一手20秒で打っています。これは人間のプロのポーカープレーヤーに対して約2倍の速さです。

①プルリブスが5人のトッププロと対戦した結果

エントリーした 13人のトッププロの中から、その日参加できる5人が、ネット上でハンドルネームを使って、12日間に渡って合計で1万回プルリブスと対戦しました。

トッププロが本気で打つように、賞金とギャラを払う真剣勝負です。

 5万ドルが成績に応じて人間の参加者に分配されるので、それが人間のプレーヤーに最高のゲームをするように仕向ける動機付けになりました。各プレーヤーが参加するギャラ(手取り保証額)の最低額は一手あたり0.4ドルです。しかし、この最低ギャラは成績に応じて一手あたり1.6ドルにまで増額されます。

さて、その評価結果ですが、論文をそのまま訳すと以下のようになります。

「プルリブスがゲームに勝って稼いでいるかどうかを判定するために、ワンテール(片側分布)のt-分布検定を行って95%の信頼度で統計的な有意性を測定しました。

AIVAT処理をして(運の要素を除いた成績は)、プルリブスは平均で48mbb/gameを勝ちました。(その標準偏差の誤差は25mbb/gameです)。

この値は6人でやる掛け金制限のないテキサスホールデムポーカーで、特に選抜されたトッププロの集団と戦ったことを考えると、非常に高い勝率と考えられます。そしてそれはプルリブスが人の対戦相手よりも強いということを示唆しています。プルリブスは0.028というp値で、ポーカーで稼いでいると断定されました(この事象が偶然で起こるのは100回につき2.8回)。

プルリブスが1万回の戦いでどのように稼ぎが推移していったかのデータを末尾に示します。

賭け金無制限のポーカーの獲得金額の統計的な分散が極めて大きいのと、人のプレーヤーに(運の要素を除くための)AIVAT処理をすることができないことから、個々の人間の参加者の勝率を統計的な有意差を持って決定することはできませんでした。」

と書いてあります。運の要素を除いて評価して、統計的な誤差を考慮しても人に勝っていると言える、と言っています。運の要素を除くためのAIVAT処理をしていることと、対戦相手のプロの成績(mbb/game)と比較できないというところが気になりますね。

評価指標である、mbb/gameとは、1ゲームあたりの儲け金額をそのゲームスタート時の掛け金で正規化したもののようです。(大金を競うゲームもあれば、少額で流すようなゲームもある。それをまとめて評価する指標なのでしょう)

いずれにしても、ポーカーという運も関係する不完全情報ゲームで100戦100勝という事はあり得ない訳だし、手が弱くても賭け金の賭け方のうまさで稼ぐことが本質なので、何を理由に強いというかは、たくさん戦った時にやっぱりこの人は安定的に儲けているね、という事なんだろうと思います。

 ②トッププロひとりがプルリブス5台がと対戦した結果

クリス“ジーザス”ファーガソンと、ダレンエリアスが5台のプルリブスとそれそれ5000回戦いました。もちろん5台のプルリブスは共謀しないし、人間は誰(どのハンドルネーム)がプルリブスかはわかりません。人間へのインセンティブは2000ドルの参加報酬と勝った時の2000ドルの追加成功報酬です。

その結果は、論文をそのまま訳すと以下のようになります。

「10,000回のゲームを行って、プルリブスは人間に(5台の)平均で32 mbb/game(標準偏差の誤差は15 mbb/game)勝ちました。プルリブスは0.014のp値で(統計的な有意差を持って)稼いでいると決定されました。

ダレンエリアスはプルリブスに対して40 mbb/game負けました。標準偏差の誤差は22 mbb/gameで、p値は0.033でした。

クリスファーガソンはプルリブスに対して25 mbb/game負けました。標準偏差の誤差は20mbb/gameで、p値は0.107でした。

ファーガソンの負率がエリアスより低いのは、統計的な分散の結果と、彼の技量による結果でしょう。ファーガソンは自分になじみのない難しい局面では、その場を降りることに重きを置いた、より保守的な戦略を取ったという事実の結果でもあります。」

これを読むと、クリスファーガソンはダンエリアスより善戦しました。それは彼が保守的な戦略を取ったからだといっています。

この統計的に処理された結果で、プルリブスはクリスファーガソンに対して確実に強いと言えるかどうかは微妙だ、という意見もあるようです。25+-20mbb/gameの勝ちで、それは10回に1回ぐらい偶然でも起こり得ること、と言ったところで、常に強いと言えるのか?という素朴な疑問ですね。

http://kihara-poker.hatenablog.com/entry/2019/07/20/164318

プルリブス対5人のプロの対戦の生データは以下です。1人のプロと5台のプルリブスの対戦データは論文に載っていません。

f:id:yoshihirokawase:20191025133125g:plain

 

 統計誤差を考えてこれをどう見るかですね。ゲームの回数が増えるにつれてチップの稼ぎは増えていく傾向はありますが、負けている時もある。その負けは偶然の要素によるものなのか、戦略の巧拙によるのか、それをAVATという形できれいに分離して議論できるのかどうかはこの論文からでは正確には読み取れませんでした。

【プルリブスのもたらしたもの】

囲碁AIである、AlphaGoは、昔から悪手とされて来た手を打ちます。今ではその「悪手」をプロ棋士が打つようになりました。AIが人間が見落としていた価値を見出して過去の常識を覆したという事になりますね。また、そのAIの見出した知見を人間が取り入れて、囲碁の世界が変化しているとも言えそうです。

プルリブスも今までの常識を覆したところがあるようです。以下に訳を記しますが、このプルリブスのとった戦略がプロポーカーの世界にどういった影響を与えるのかも興味深いですね。

「プルリブスの戦略は、人がやる(駆け引きを含んだ)対戦結果を(学習に)用いないで、AI同士の自己対戦(による学習)で全部決定されました。そして、多人数でおこなうテキサスホールデムポーカーでの最適な戦い方はどのようにあるべきかについて、人間では思いつかないような見方を提供してくれます。

プルリブスは当たり前の常識とされているリッピング(賭けを降りたり、掛け金を増やしたりするよりも、ビックブラインドと同額を賭ける戦略、ゲームをゆっくり続けることになる)は、スモールブラインドのポジションのプレーヤーがルールに従ってビッグブラインド(ショバ代)の半額をすでに場に賭けていて、ゲームを続けるためにビックブラインドと同額の掛け金になるよう、残りの半額を追加で賭ける場合以外は、最善手ではないことを確証しました。

プルリブスはAI同士の自己対戦で基本戦略を導出する時に最初はリンピングをして対戦実験をしていましたが、だんだん自己対戦の学習が進むにつれてそのリンピングの行為を戦い方に組み入れなくなりました。

プルリブスは「ドンクべッティング」は間違いだという格言には同意しません。(ドンクベッティングとは、一つ前の対戦をコール(前の人と同じ賭け金を賭ける)して終わった人が、その次の回で最初に掛け金を賭けること)。プルリブスはこのドンクベッティングを人間のプロポーカープレーヤよりはるかに頻繁に行います。」

冒頭のMITテックの記事は、プルリブスはこのドンクベッティングを連発することでプロのポーカープレーヤを圧倒したかのような記述になっていますね。ポーカー界では、ドンクべティングは怖くて勇気のいる手だけれど、成功すると効果が大きい手なんだそうです。そういった心理的なバリアを心を持たないプルリブスは確率統計の経験値からこれを頻発するというのは面白いですね。

 

【まとめと感想】

完全情報ゲームである囲碁のAIに対比するかたちで不完全情報ゲームであるポーカーのAIの論文を読んでみました。

完全情報ゲームでは、その時に勝ちに繋がる確率が最も高い最善手を打つという考え方があるけれど、不完全情報ゲームは確率の世界なんだから100戦100勝という訳にはいかない。なので、長く戦えば戦うほど確率の要素で負けることの比重が減ってきて、中長期的にはゲインを得られるという戦い方の戦略を持っているかどうかの勝負なんだなと思いました。

定性的には、投資戦略や営業戦略にも通じる考え方のようにも思える。ゲーム進行中での競争相手の戦略の変更の可能性を織り込み、自分の戦略を悟らないように工夫するなど、外から見ると人間心理を読むかのような手法を駆使しているところが面白かった。

プルリブスが人より強いかどうかを検証するのに、t-分布のような(データの少ない時に使う)古典的な検定の手法を使っていて、95%の有意差でもって議論している。これには、「えっ、ビッグデータの時代に何で?、そうか、人間が相手だからかあ」、という妙に感じいったところもありました。

テキサスホールデムポーカーは、1対1の対戦でなく、6人で行うので、明確な敵というのもがいません。麻雀のように確率論の中での手作りの技術で勝つ要素は全くなく、手そのものは全くの運で決まる。プレーヤは掛け金の賭け方の巧拙を競い、手の優劣とは直接関係しない賭け金引き上げ競争のチキンゲームを自分の手を強く見せかけるような賭け金の賭け方や、雰囲気を作るなどして勝ち、その場の賭け金を総取りする。全く勝ち目がない時は降りるという判断もある。それを長く続けてお金を増やせる人が強い世界。

そういった、実力(戦略)+運(確率)の世界で、お金を儲けるという、極めて人間臭い世界にAIが入ってきて、後悔を最小にする価値観と、相手の戦略の変化を見越す戦略を持って、成果を上げたことに対する興味は尽きないですね。

 

# ポーカーAI #プルリブス #Pluribus  #テキサスホールデムポーカー #不完全情報ゲーム #ナッシュ平衡 #ドンクベッティング #CFR #モンテカルロ探索 #ポーカー #ゲーム #ゲームAI