木原直哉オフィシャルブログ

プロポーカープレーヤー、木原直哉が、思ったことを書いていきます。道場やってます。https://lounge.dmm.com/detail/308/

ポーカーAIは駆け引きをしない

ポーカーAIのニュースが流れてから、関連のツイートで

「ついにAIが駆け引きを出来るようになった」

というようなツイートをかなりたくさん見ました。

それについて、非常に大きな勘違いであることをはっきりと言いたいと思います。

 

まず、多くの人が理解しているように、人間同士のポーカーの勝負はかなりの部分で駆け引きが存在します。

というか、ポーカーの醍醐味のかなりの部分を、駆け引きが占めると言ってもあながち間違いではないです。感じ方はもちろん人それぞれですが。

 

「あいつにチップ取られたから取り返したい」

「あいつは自分にチップを取られたのを取り返したいと思ってるだろうからここはこうプレーしよう」

 

また、

「あいつはここまで全然ブラフをしていないから、ブラフをしない人の可能性が高い」

「ここまでブラフするチャンスが全く無くて、手固い人だと思われているだろうから、ストーリーのあるブラフをするチャンスがあればかなり成功するはず。そのチャンスを伺おう」

 

こういうのが駆け引きです。

しかし、こういう思考はAIは一切持っていないのです。

ではポーカーAIはどうやって勝つのか。

それは、わかりやすく説明すると

「ここで自分が持ちうる手はAとBとCとDで、相手が持ちうる手はEとFとGとH。ここでXドルのベットをY%で行うときの期待値を計算する。

それぞれの手を合計して、期待値が最大化するようなXとYの組み合わせを計算する」

という感じなのです。

これはわかりやすさを意識して説明結構飛ばしてますし、そもそも自分はAIの中身を見たことはないので何とも言えないですが、まあ大体間違えてないでしょう。

 

つまり、一回一回の手を単体で考え、他の手を持っているときとのバランス(ポーカーに於けるキーワード的なものです)を取る。その結果、最善のプレーは何かを計算するのです。

このAI的なプレーの背景には、一切駆け引き要素はありませんよね。それが

「ポーカーAIは駆け引きをしない」

ということなのです。いや、より突っ込んでに言うのであれば、

「ポーカーAIは駆け引きが出来ない」

とも言って良いかと思います。

ポーカーだって囲碁や将棋と同じゲームなのであって、確かに駆け引きをしなくても、ミスをせず淡々とプレーできていれば勝てるのです。

人間同士だと、将棋であっても、相手がXXという戦法が得意だから、あえて少し損をしてYYという戦法に持ち込もうとかあるわけですが、トッププロと同等やそれを超えるレベルになると、そんな駆け引きは必要ないのです。AIにはまだ不可能という以前の話で。

 

しかし、人間はAIよりずっとずっとミスをします。

あえて10のミスをすることで、相手から30のミスを引き出せるのであれば、むしろその方が得だったりもしますし、ポーカーのトッププロはその力にも長けてます。

ポーカーに限らず、人間同士の勝負はそういう駆け引きの要素がどんなゲームでもかなり大きく、それがゲームをより楽しいものにしているのです。

ポーカーAIがポーカートッププロに勝ったと宣言するのは時期尚早である

https://www.afpbb.com/articles/-/3234875

 

今、フェイスブックカーネギーメロン大学が共同で開発したポーカーAIが人間に勝ったとの話題で持ちきりです。

しかし、それは今回の実験からは時期尚早だと思います。その根拠を具体的な数字でポーカープロの目線から説明していきたいと思います。

 

https://ai.facebook.com/blog/pluribus-first-ai-to-beat-pros-in-6-player-poker/

元々の論文の詳細については、この記事です。

 

まず、AI5人対人間1人の対戦です。

これに参加したのは3人。

クリスファーガソン、ダレンエリアス、ライナスの3人です。

この中で、ライナスは今6人NLHEで世界最強の一人と多くの人が認めている正真正銘のトッププロ、将棋の現タイトルホルダーと言っていいレベルでしょう。

ダレンエリアスも今のトッププロの一人です。彼が現タイトルホルダー急かというと賛否両論があるとは思いますが、世界トップ100に入るかと言われたらほとんどのプロは入るということに同意するでしょう。

クリスファーガソンはWSOPメインイベントの優勝者で、知名度も抜群に高いプロです。しかし、NLHEで世界トップ100に入るかと聞かれたら、入らないと言うプロが9割型だと思います。基本的にタイトで堅実なプレーヤーで崩れにくく入賞率が高いプレーヤーですが、ブラフ頻度が適正より低く、与しやすいという印象を自分は持っています。

それぞれ5000ハンドずつプレーしました。

しかし、5000ハンドと言うのは非常に少なく、正直プロが強めのアマチュア相手ならマイナスしてもおかしくない数字でもあります。

そこで、研究チームは、AIVATという手法を使ったとのことです。

AIVATは、強い手が配られたら、その分運が良かったと判断して勝ちから差し引く、というような手法です。

その手法を適用した後で、ダレンエリアスは4.0bb/100の負け、クリスファーガソンは2.5bb/100、ライナスは0.5bb/100の負けという評価となったとのことです。標準偏差は大体2bb/100程度。

まず、「AIVATという手法が完全に正しいと仮定して」、ダレンエリアス相手にはしっかり勝ち越し、クリスファーガソンには勝ち越している可能性が高い、ライナス相手にはほぼ五分という結果です。

ダレンエリアスに勝ち越しは非常に評価出来ます。

一方、クリスファーガソン相手に2bb/100というのは非常に物足りなく、その数字を出すポーカープロはわんさかいるでしょう。

また、世界最強の一人とされるライナス相手にはほぼ五分です。

この時点で、ポーカートッププロ相手に勝ったと宣言するのは時期尚早だと思うわけです。追いついたという評価ならともかく。

 

 

さらに、AIVATという手法がどの程度正しいものなのかも、非常に懐疑的です。

そもそも、その理論が論文になっているからと言って、それがどの程度広く受け入れられているのかという疑問がまずあります。論文として出ていても、実際全然認められていない論文もあるでしょう。

とはいえ、ここはその世界を知らないので、一旦正しい手法だと信じるとします。では、その評価法についてです。

例えば、AAが配られたらそれは当然幸運です。じゃあ、その幸運をいくらと評価すれば適正なのでしょう。もちろん対戦相手に何が配られるかに依るのでしょう。またコールされた場合、どんなフロップが来たらどれだけ得/損なのでしょう。

それを評価しないことには、AIVATという手法を用いた計算をすることは不可能だと思います。もし、神の視点と言えるくらい強いソフトが存在するのであれば、その数値を信用することも出来ます。バックギャモンXGというソフトが、ほとんど神の視点に近い強さだと広く信じられているので、その数値を人間は(それでもある程度)信用しています。

しかし、ポーカーに関しては、その評価をいかに計算するのでしょうか。

将棋のAI同士の対戦で、AというソフトとBというソフトが戦ったとします。

評価値という数字を見たことがある人は多いと思いますが、Aというソフトで評価させると、大体Aの側の評価を高く見積もります。ある意味当然のことではありますが。

ではAIVATという手法を用いて運を評価した時に、その評価された数値を計算するのはやはり Pluribus、今回のAIの評価、を用いざるを得ないでしょう。仮にAIVATという手法そのものが正しかったとしても、それは本当に公正に運を補正したものになるのでしょうか。自分は甚だ懐疑的です。

 

 

そこまで書いた上で、次に1万ハンドをAIが1,人間が5という状態で行った実験結果を見てみます。この人間5というのは、前述の3人の他に複数のプロが混じってます。

その結果ではAIがAIVATでの評価後で+5bb/100という数字、500bbの勝ちという結果になってます。

 

しかし!!!

http://kevinwang.us/lets-analyze-pluribuss-hands/

実はこの人が公開された棋譜を解析したところ、AIは1万ハンドで700bbの負け越しだったのです!

まあ、実際に引かれて運が悪かったのは間違いなかったようで、オールインした時にそのときの勝率でポットを分配した、AIEVでは、150bbの負け越し、550bbはオールイン後に引かれた数字です。

ところで、NLHEでは100ハンドでの標準偏差は大体60bbくらいです。

10000ハンドだと、その10倍の600bbくらいです。(そこの話が飛んだと思う人はぜひ統計学をちょっとだけかじってください)

この数字はAIEVでの運の補正前の標準偏差です。

「結果で700bb負けてたけど、AIVATでの運の補正を入れたら500bb勝ちだから、運の要素がなかったら勝ち!」

と言っているわけですが、1200bbほどツイてなかったという主張は、実は2シグマに相当するくらいツイてなかったと主張しているわけです。2シグマという数字は、統計学で棄却されるかどうかのボーダーラインの数字です。それだけの数字の補正を、具体的にどれくらいの補正をしたかという数字を出されずに盲信できるほど、ポーカープロはお人好しではないです。

(しかも、人間の中にトッププロとは程遠い、非常に弱いプレーヤーが1人居たと多くの人が言っていたりもします)

 

 

彼らの過去

 

更に、実質的にこのAIを開発したカーネギーメロン大学チームは2015年に

https://en.wikipedia.org/wiki/Claudico

人間とAIとの8万ハンドに及ぶ1対1の勝負をしました。

その結果、人間が7327bbの勝ち越し、9bb/100という結果を人間が出したのです。これは通常のHUでの標準偏差的にも2シグマに非常に近い数字でした。さらに、この時は、AIがプレーしたハンドと全く同じハンドを別の人間がプレーするという、かなり運の要素を減らした条件での対戦だったのです。

しかし、カーネギーメロン大学チームは対戦後

「2シグマ圏内だったので、運の範囲内だったから、勝負はイーブン。なので、AIは人間に追いついた」

と発言して、ポーカー界から大バッシングを受けたという過去があります。

 

2017年に同じ条件で再戦して、その時は人間が破れました。その時の記事は話題になったとは思いますし、自分も寄稿させていただきました。

https://www.itmedia.co.jp/pcuser/articles/1702/03/news028.html

 

そのような過去を持つ開発チームによる今回の勝利宣言。

 

さまざまな観点から見ても、自分はこの結果を冷静に見るとポーカーAIがトッププロを超えたと言い切るのは時期尚早だと思うわけです。

 

正直、2015年の1対1の対戦前は、既に人間が負け越すと思ってました。今回も、人間が負けるのかと思ってました。しかし、それに反して人間のトッププロは強さを見せつけました。

今回のこの実験結果は、どういう観点からみても、AIが人間のトップに勝ったとは言えない内容でしかないです。

恐らく2021年に同様の実験をまたやって、その時は人間は完敗するのだと思います。しかし、そのXデーは2019年ではなかったのです。

 

帰国

50日間のWSOPから帰国しました。

成績は結構悪くて、そこは残念でした。去年のWSOPで上振れた分が思いっきり返って来た感じ。

 

旅の最初の頃は、週に2回くらい、テレビ通話?で話してたのですが、2歳7ヶ月の長男が、通話すると余計に寂しくなるからということで、中盤から一切通話せず。

帰国してすごく久しぶりに会いました。すごく喜んでくれるかと思いきや、なんか恥ずかしがるような感じで意外な反応でした。今までの時は喜んで飛びついてくる感じだったので。

長男はこの短い期間で一気に会話が普通にキャッチボールになるようになって驚きました。

10ヶ月の次男は、最初レストランの時はあまり変わってない感じでしたが、家に着くと、以前はズリバイ始まるかどうかというところだったのが、今は普通に捕まり立ちしてて驚きました。

 

夜は、長男も次男もすごく興奮してて、2時間位寝てくれませんでした・・・

今日からもとの生活が始まります。

 

 

 

ラスベガスに行きます

今日から50日間、ラスベガスに行ってきます!

基本的に25-50PLOと100-200ミックスを打つ予定です。

ラスベガスだとロスと比べて稼働時間がちょっと落ちるので、多分500時間程度の稼働になるかと思います。

トーナメントは、メインイベント+息抜きに3,4個出るという感じになりそうです。

 

ラスベガスにいる間はブログは更新しませんが、ツイッターはむしろかなり更新頻度が高くなりますので、そちらも合わせてよろしくおねがいします。

では行ってきます!

コンボ数を数えようとしてはいけない

テキサスホールデムは、スターティングハンドが1326通りしかありません。

52×51÷2ですね。2で割るのは、AdKcと来るのと、KcAdと来るのが同じものだからです。

これは、AcKdとAdKcを別のハンドとみなした上での数です。

1326って、多いように見えて、実は結構少ないのです。人間が何とか出来ちゃうレベルの数字なので。同じ不完全情報ゲームの麻雀では、手牌の組み合わせって何通りあるのでしょう。正直、途方もつかないですよね。

 

で、人間にカウント出来る数なら、カウントしちゃおうよ、となるのです。

プリフロップでAKは、4×4=16通り。これを16コンボ、と言います。

AKsは4通りなので、必然的にAKoは12通りになります。

AA以下、ペアは全て6通り。

ペアは13種類あって、ペアじゃないのは13×12÷2=78種類あるので、

13×6+78×16=1326、確かに1326通りになります。検算終了。

 

ところで、相手がボタンからレイズしてきました。自分がBBKdThでコール。

フロップKs8h2d

この時、こちらはKK、88、22、K8、K2、82、AK、KQ、KJに負けてます。

K8とK2はスーテッドだけ相手がプレーしていて、82は全部含まれていなくて、他は全部レイズの可能性に含まれるとしましょう。

すると、KKは1通り(KhKcのみ)、88と22が3通りずつ。

K8sはKc8cの1通りのみ。K2sはKh2hとKs2sの2通り。

AK、KQ、KJはそれぞれ8通りずつ。

すると、こちらが負けているコンボは1+3+3+1+2+8+8+8=34コンボ。

一方、相手のハンドの全てのコンボ数は、すでに5枚カードが判明しているので、

47×46÷2=1081コンボ。

相手のボタンからのオープンレイズ率が40%だとすると、相手のコンボ数は432コンボ。432コンボのうち34コンボに負けてる。

一方、この34コンボは必ずベットをしてくるけど、そうじゃないハンドはそれなりにチェックしてくるとすると、ベットされた時にこちらが勝ってる可能性は・・・

 

とかやるのですが・・・

 

 

そもそも、ポーカーとはどういうゲームでしょうか。

相手のハンドを当てたらチップが貰えるゲーム、ではないですよね。

相手のレンジを当てたらチップがもらえるゲーム、でもないですよね。

相手のコンボ数を当てたらチップが貰えるゲームでもないですよね。

どうしたらお金が貰えるか。それは、正しいアクションをしたら、長期的にチップが増えるのです。そして、コンボ数を数えると言うのは、それ自体が目的なのではなく、正しいアクションをする上で手助けにするために数えるのです。

 

でもですよ。仮に相手のコンボ数が38が正しいとして、数え間違えて34と思ったとします。それ、どの程度こちらのプレーに影響するでしょうか。

結局、多くの場合は差がないですよね。それだったらそこまで厳密に考えることにどれくらいの価値があるのでしょうか。真の世界トップを争う戦いをしているのでなければ。

 

個人的なオススメとしては、上のハンド「群」で考えることです。

このフロップでのKTは、

KK、88、22、K8、K2、AK、KQ、KJの次、8番目くらいかな、という感じです。

 

次に、こちらがAAでレイズ、相手がBBからコール。

フロップJT9r

強い順から、KQ、Q8、87、JJ、TT、99、JT、J9、T9、AA

QJ、QT、Q9、J8、T8、98相手には、AAはほぼ五分です。

つまり、このフロップにおけるAAは既に10番手であり、さらに6種類とはほぼ五分なのです。しかも、今挙げたハンドたちは全部ありえますよね。

こういうふうに考える事ができたら、このAAを降りれないということも無くなるでしょう。K82rにおけるKTより弱いんですから。

いたずらに難易度を上げるからいざ数えようとするときに大変になるのですが、もっと大雑把に数え、それを判断材料にする。それだけでプレーはガラッと変わるのです。

 

 

 

ケリーの公式5:取らざるを得ないリスクと取るべきではないリスク

http://kihara-poker.hatenablog.com/entry/2019/05/21/165927

 

ケリーの公式シリーズ最後です。

 

ケリーの公式でググると投資関連の記事で

「ハーフケリー」

なるものが出てきます。

曰く

「ケリーの公式で取れと言うリスクは、実際非常に大きくて、その金額を負けると精神ダメージも大きいし、見積もりが間違えていることもあるので、公式の半分を賭けるのが正しいのではないか」

とのことです。

 

うーん、言わんとすることは分かるのですが、読んだ第一感は

「結局ケリーの公式を理解してないよね?」

ですw

結局、投資関連では、オプション取引以外はケリーの公式を当てはめることが出来ないのです。多分、

「荒れてない場でロスカットと利確を設定し、途中で抜けたりしない」

ならある程度当てはめる事ができるのかもしれませんが、投資ってそれで勝てるようなものでもないですよね?(自分は投資をやらないので詳しくないですが)

だとすると結局計算出来ないわけで、それなのにbとかpとかにそれっぽい数字を代入して出てきたfを1/2にする行為に何の意味合いがあるんでしょうか。

更に言えば、見積もり間違いの件は他の記事の通りなのですが、自分がゲームを長くやってきて思うのは、多くの人はそんなレベルじゃない見積もりミス(そしてそれはほとんど自分自身に都合が良い方のミス)をするのです。

その理由については前の記事で書いた通りです。

 

結局見積もりもあやふや、代入して求める事もできない。そういう不完全な計算をして、出てきた結果をとやかく言っても全く意味がないんですね。

じゃあケリー基準を勉強する意味はないのか、と言うと、それもまた全然違うと思うのです。

 

ROIが100%もの超優良案件があったとします。

賭けるごとに期待値が賭けた金額の2倍です!

1対1のオッズなら、勝率100%。当然全財産を賭けるべきです。

でも、1対2、日本式に言うなら3倍。2/3で3倍になる賭けなら、やっぱり期待値2倍ですが、ケリーさんはこんな勝負に財産の半分を賭けろと言うのです。

50分の1で100倍になるものなら、1%です。

ケリー基準から見ると、勝率というものに非常にシビアだということが分かります。

 

 

ところで、あなたはとあるゲームのスペシャリストです。資産は8000万円だとします。

とあるお金持ちに、そのゲームでの勝負を持ちかけられました。

方式はマッチ。ポーカー的に言うと、1対1のトーナメント。麻雀的に言うとサシウマ。

相手とのスキル差を考えると、勝率は60%と言い切る事ができ、イカサマがないことも保証されてるとします。

お金持ちは

「一回あたり2000万円で5回やろう!」

と言ってきたとします。ただし、こちらが4連敗した場合はそこで破産して終了です。

受けますか?受けませんか?

 

もちろん期待値はプラスです。しかし、基準より大きな金額ですよね。更に、基準的には、負けたらベット額を下げないといけないのですが、それは当然許されません。

そう、ネットを使ったデイトレードと違って、実際の勝負では、基準よりかなり大きな勝負か、基準よりかなり小さな勝負の2つしか存在しないことが多々あるのです。

 

 

以前、ポーカーのトッププロのフィルガルファンドが

「プロが若いうちに1日で全財産の50%以上を失った経験がないのなら、BR管理的にnitだ」

と発言してました。

nitとはポーカー用語で、タイトより更に固すぎる人を見下して呼ぶ言い方です。

結局、そういう勝負を受けるか受けないか。そして、若いうちにそれを受けないプロは駄目だとガルファンドは言うのです。

 

そういう勝負を受けていれば、いつかは壊滅的な負けを喫するのですが、負けた時にまた安いレートからコツコツやって時間をかけて復活すればよいのです。そうして、そういう勝負でジャンプアップする。そういう経験をしないと、トッププロには届かない。ガルファンドはそう言うのです。

 

 

こうやって解説しつつ、実は自分はポーカーをある程度以上やってから、1日で総資金の50%どころか、10%を失ったことすら無いです・・・

金管理的にnitどころではないです。

ただ、ポーカーを覚えたのが26歳になるちょっと前と既に若くなかったし、今のように家庭を持つとそういう無茶は本当に出来なくなります。18歳、せめて20歳のうちにポーカーを覚えていたらとは思うのですが、ないものねだりをしてもしょうがないから、これからも基準よりはるかに安いレートでコツコツやっていこうと自分は思います。

 

 

ケリーの公式4:応用の難しさ

kihara-poker.hatenablog.com

 

ケリーの公式を勉強して、それをどうやって実際の資金管理に活かそうか。

これって、公式のことをしっかり理解していても、非常に難解なのです。

前回の記事で書いたように、公式は結果が勝ちと負けの2つの場合にしか適用できません。

バックギャモンのポイントマッチ、ポーカーの勝者総取りのトーナメント、競馬。

 

しかし、バックギャモンの普通のゲームは、展開次第で1点、2点、3点、4点、6点、8点・・・を勝ったり負けたりします。

ポーカーも、普通の勝負は勝つか負けるかではなく、いくら勝つかいくら負けるかです。これらには公式を当てはめることが出来ないので、見積もるしかないのです。

 

更に更に、一番難しいことはこれです。

「勝率60%のゲームをして」と最初に決めて、それを無限回数行った場合のベストの資金管理方法を考えるわけですが、実際にプレーする上で、「勝率60%」ということをあらかじめ知ることは不可能なのです。

それでも、バックギャモンやポーカーのマッチでは、結果とその解析結果から、ある程度プレーすればそれなりに信用できるデータが集まり、そこから勝率をそこまで大きくない誤差で見積もるのは容易です。

株式投資でケリーの公式を当てはめる事ができるのはオプション取引でしょうか。しかしそれですら、同じ相手と複数回やるゲームではなく、状況も毎回異なる中で、どうやって正確な勝率を見積もればよいのでしょうか。ましてや普通の投資だと・・・となるのです。

 

運が絡むゲーム(勝負や投資でもいいけど)は、勝つ時は必ずある程度以上運が良いし、負ける時は必ずある程度以上運が悪いです。それはどんなに強い人であっても、です。そして、人間は、勝った時の運の要素は過小評価し、負けた時の運の要素は過大評価してしまうのです。結果として、自分の実力を過大評価してしまう、つまり、勝率の見積もりを本来より高く評価してしまうのです。

また、全く同じ実力の人が二人いたとします。

二人は100回の選択のうち、20回ずつ、同程度のミスをするとします。

当然ですが、ミスする箇所は別々です。

すると、自分がしないミスを相手がする、ということはそれなりの頻度で見ます。

相手から見ても全く一緒なのですが、自分自身は、自分のミスにはなかなか気づけないのです。だって、それが分かるなら最初から修正されてるはずですよね。

その結果として、相手の実力を過小評価してしまうのです。

そう、人間が勝率を過大評価するのは、運の要素とミスに気づく要素の2つの要素が同じ方向に過大評価させてしまうことで、より大きく勘違いしてしまうのです。

 

ポーカーや麻雀やバックギャモンをそれなりに真剣に真摯に、めちゃくちゃたくさんの回数をこなすと、それらをしっかり評価する力が、「人によっては」身につきます。身につかない人は全然身につかないけど・・・

ただ、人間はそういう傾向があるということを知っておき、自分自身もそう考えてしまいがちだと常に気をつけているだけで、かなり過大評価を小さくすることが出来るのだと自分は思います。