なぜ麻雀AIは強くならないのか
世の中にあるある程度以上メジャーなゲームは、ほぼAIが人間のトップを確実に凌駕しました。
1990年台にオセロ(リバーシ)、チェスからスタートし、2000年前後にバックギャモン。2013から2014年頃に将棋、2016年に囲碁。
ポーカー(ノーリミットホールデム)はというと、2017年にヘッズアップで人間が負けたのが記憶に新しいところです(記事を書かせていただきましたし、ブログでも紹介しました)。6マックスのノーリミットホールデムは、多分世界トップクラスでしょう。ただし、超えているかどうかは微妙だと思いますが。
一方、麻雀は爆打を見るしかありませんが、現在の最強AIの一つである爆打の通算成績は特上卓(麻雀サイト天鳳での上から2番目のテーブル)で、安定段位6.55。
しかしこれは、最新のバージョンだけでの数字ではないので、実際はもうちょっと強いかと思いますが、それでも7を超えているとは思いにくいです。
(実はこの記事を書こうと思って調べるまでは、7を超えているのかと思ってましたが)
AIは鳳凰卓(最高テーブル)で打つことを許されてませんので単純な比較は出来ませんが、人間のトップと思われている人たちは鳳凰卓で安定段位9弱を出していますので、条件をどんなに爆打に有利にしても、人間のトップに近いところにいるとすら言うことは出来ないと思います。
囲碁や将棋が既に人間のトップより遥か遠くまで強くなってしまっているのに、なぜ麻雀AIはそんなに強くなっていないのでしょうか。
AIが人間を超えたと断言出来るには何が必要でしょうか。
2017年の人間トップ対AIのヘッズアップ勝負では、4人のプロが3万ハンドずつプレーし、12万ハンドをこなしました。
1人のプロが微負けで、他の3人は大敗。トータルでも大敗でした。
ところで、3万ハンドと言いますが、仮に1時間で100ハンドずつこなしたとしましょう。すると、3万ハンドは300時間です。これクラスのプロなら、ライブキャッシュゲームを打てば時給1000ドルは超えるくらい稼ぐ人たちです。すると、この勝負を成立させるためには、1000×300×4人で120万ドル、1億3000万円以上を用意しないと成り立ちません。実際は対局料で30万ドルくらいで引き受けてもらっていますが、これはプロ側がかなり妥協した数字とも言えます。その結果、当時のヘッズアップの世界トップ3と言われていた人からは、1人(その人が微負けで終わった人)だけで、残りの3人は、将棋で言うところのBクラスプロ、という感じの人たちでした。
もちろん、そのプロたちをそこまで負けさせるのはトップの人間ですら無理だと思うし、2017年にヘッズアップで人間トップが負けたと認めないわけではありませんが。
ヘッズアップが終わったのなら、次は6人テーブルでしょう。
ところで6人テーブルなら、降りているハンドが多いため、ハンドあたりの上下は下がります。なので、12万ハンドより多くのハンド数を必要とするでしょう。
一方、人間5人対AI1アカウント勝負なのか、人間3人対AI3アカウントなのかはわかりませんが、いずれにせよ必要なギャラは3倍以上になります。また、降りている待ち時間もかかるので、1ハンドあたりにかかるので、実際はもっともっとかかります。
そして、その結果として
人間1・・・+200
AI1・・・+150
AI2・・・+100
AI3・・・+50
人間2・・・ー200
人間3・・・-300
という結果に終わったとして、分散を考慮しないとしても、それはAIが人間を超えたと言えるのでしょうか。
つまり、多人数ゲームだと、人間を超えたと評価するハードルが非常に高いのです。その上、どんどん対局料が必要になります。また、運の要素がある程度以上強いので長期間やりつづけないといけないため、興業としても成り立たせにくいのです。
同様の問題は麻雀についても言えます。
そして、AI開発側が、そんな困難を乗り越えてでも人間のトップを超えたと宣言させたいほどのモチベーションはどこにあるのでしょうか。
ポーカーなら、動いているお金がそれなりに大きいため、まだ分かります。とは言え、AIを起動させながらプレーすることはオンライン・ライブともに禁止ですので、法的リスクを侵さない限り、勉強のツール以上でも以下でもありません。
麻雀は、強いAIを作ったところで、それを利益化するのが至難なのです。
将棋は、電王戦という注目される場があり、多くの個人開発者が集まりました。
電王戦の賞金だけじゃなく、将棋で名人に勝つということはプログラマーとしての大きな名誉と知名度にもつながります。
囲碁は、GOOGLEが自身の開発力の誇示のために目をつけ、ゆっくりだった進歩を一気に加速させました。
もし、GOOGLEが本気で麻雀を攻略しようとしたら。
ゼロから作ったとしても、将棋のアルファゼロを見る限り(ルールだけ教えて、GOOGLEのディープラーニングを走らせたら72時間で日本の最強AIを超えたという話です)、自分は1ヶ月持たないと思います。
多人数ゲームであろうと関係ありません。むしろそういう複雑になる要素は、人間のほうが扱うのが難しいのです。
しかし、良くも悪くもポーカーや麻雀は、誰が誰より強いかというのを可視化するのが難しいゲームです。だからこそここまで人気が出ていますし、これだけスキル要素が大きいにも関わらず、ポーカーはカジノゲームとして存在可能なのです。
上には上がいて、その上にはさらに上がいる
今日、ふとしたことから長尾健太郎さんの話題に。
長尾健太郎さんって誰?と思ったら、ググってウィキを読んでください。
彼は大学の同期です。自分が1浪で彼が現役なので、年齢は一つ下ですが。
直接の面識は無いですが、大学1年の頃から既に超有名人でした。その後も、噂に違わない活躍をし、将来は日本の数学界を背負って立つ人だと思われてました。ちょうど、将棋の藤井聡太七段級の人がいたと思って貰えたらと思います。非常に残念なことに、病気で31歳で亡くなってしまいました。
自分もそこそこ学業は出来たけど、まさに上のさらに上に居た人だと思います。
野球に例えると、学校でエースで四番を背負う人がいて名門高校に進学し、その中で上位が甲子園に出場し、その中で上位がプロに指名を受け、その中で上位が一軍のレギュラーになり、その中で上位がメジャーリーグに渡って中心選手として活躍し、その中で上位がメジャーのオールスターの常連(イチロー選手)になります。
将棋に例えると、地域で敵なしの天才少年がいて、その中で上位が奨励会試験に合格し、その中で上位が奨励会を抜けてプロ棋士になり、その中で上位がA級棋士になり、その中で上位がタイトル数期とり、その中で上位が時代の覇者(大山、中原、谷川、羽生、渡辺)になります。
いずれも、一つ上に到達するのはその下のカテゴリーの10から20%くらいです。
学業面に置いては、野球で一軍のレギュラーになったり、A級棋士級棋士になったりする級の活躍をする大学の同期や教官がいたりします。
長尾さんは、その一つ上に既に達していて、その後最上位を目指そうという位置に居たと思います。
個人的に東大に入って一番良かったと思う点が、そういう一軍レギュラー級の人と普通に知り合いに慣れたり、(自分はなってませんが運が良ければ)偶然長尾さん級の超天才と同級生になったりして、本当の上の上というものを目の当たりにすることが出来たことかなと思っています。
ポーカー界で、上の上といえる人は誰かなと思ったとき、世代が近い人たちで言えば、ブライアンラストやスコットシーバー、ちょっと下の世代ではポールボープやショーンディーブやアイクハクストンやアレックスリノウ、その下ならtruetellerなどでしょうか。もちろん一緒のテーブルにいればそれなりに戦える自信はありますが、自分の実力や年齢的にそろそろそこを超えるのは厳しいと言わざるを得ないかなと思ったりもしてます。超えようと頑張ってきたつもりですが。
そういう人とも、WSOPに参加すれば普通に同卓出来ちゃうのがポーカーの良いところですね。
なんかとりとめもない文章になってしまいましたが、長尾健太郎さんの話題があってちょっと感じたことを書いてみました。
1アウツ=2%という誤解と、公式丸暗記の弊害
途中経過とはいえ、あまりに衝撃的だったからNLHEに変えてもう一問。
— Naoya Kihara🌤️木原直哉 (@key_poker) April 2, 2019
NLHEをプレーしています。
ターンでボードは2233。フラドロなし。4人ポット。
88対AK対QJ対T9
あなたは88を持っています。勝率はおよそ
確率に関する認識がどんなものなのか知りたくて、こんな問題を出してみました。
1200人を超える投票をして頂いてありがとうございます。
そして、正直、あまりの正解率の低さに驚きました。
結果だけ見る、が21%なので、
45%と答えた人→30%
55%と答えた人→28%
65%と答えた人→42%
という結果です。
正解は、55%です。なんと、3択にも関わらず、正解率が1/3行ってないという結果です。
軽く解説すると、2233と4枚出ていて、AK、QJ、T9、88と8枚見えているので、残りのカードは40枚。
そのうち、Aから9までの6種、6×3=18枚が負けで、2から8までの7種、2と3と8が2枚ずつ、4から7が4枚ずつの、2×3+4×4=22枚が勝ちです。
22÷40=0.55なので、55%というのが正解です。
(何名か、2と3は引き分けと勘違いした人がいるようですが、2も3も勝ちです。ただ、こういう勘違いは、別にそこまで重症だとは自分は思いません)
これ、最後のカードがAから9なら負けで8から2まで勝ちと説明を入れてセンター試験に出したら、□□に数字を2つ塗りつぶす形式で、正解率が28%を超えると思うんですよね。今回誤答した人のうち、それなりの割合の人は、大学受験生時代にこの問題を解いたら正解してたと言い切れるんじゃないでしょうか。
しかし、65%との誤答が非常に多かったです。なぜでしょう。
その多くは、1アウツ=2%と「丸暗記」していたため、負けるのが18枚なので、18×2=36%。なので勝つのは64%、としたのでしょう。
同様に、45%と回答した人のうち、それなりの割合の人は、22枚で勝てるので、22×2=44%、としたのでしょう。
日本人が他の国民と比べて、平均的に勤勉で真面目なのは知っていたつもりですが、逆に相当多くの人が、1アウツ=2%と「知って」いたことが個人的には驚きです。真面目です。
しかし!!!
自分からすると、その「真面目」さの方向がズレていて、かなり多くの人が間違えた努力をしていて、それによって、「頑張っているつもり」だけど成果が出ない、という人もまた多いんだろうなと思います。これが、公式丸暗記の弊害じゃないでしょうか。
具体的に正解を説明していきましょう。
そもそも、1アウツ=2%の法則ってどこから来るのでしょうか。
自分のカードしか見えてない状態で、ターンでは、場に4枚、自分の手に2枚見えているので、見えていない情報としては、52-6=46枚です。
なので、1枚あたり
1÷46=0.0217・・・≒2%
なのです。しかし、もし8枚見えていたら、場の4枚と合わせて12枚見えているので、見えていない情報は40枚。すると
1÷40=0.025=2.5%
そう、見えている情報が増えると、結果は2%からどんどん遠ざかっていくのです。
見えている情報が一番少ない時で、1アウツ2%と暗記するのは、真の値から8%ほど(0.17%は2.17%の8%くらい)ずれるのです。
それくらい良いじゃん、と思うかもしれません。
もちろん、それを理解して1アウツ2%と言うのなら良いです。
ところで、3.14の0.14は4.5%です。
円周率を3として計算させることを批判した人は、それくらい良いじゃんとは絶対に思ってないですよね。4.5%の誤差はダメなのに、8%の誤差はOKとか、まさかそんなわけないですよね。
結局の所、1アウツ=2%と言うのは、計算を簡易的に行うための精度の低い「近似値(近似された値)」なのです。近似に過ぎないものは近似だと認識しておかないといけないし(円周率だって、3にしても3.14にしても近似値です)、使いたいのならそれを知った上で使うようにする。
一番根本にある土台部分。これがしっかりしてないと、どんなに色々なものを学んだとしても、結局、全然身につかない。これはポーカーに限らず、あらゆる学習に共通するものだと自分は思うのです。
テスト
途中経過とはいえ、あまりに衝撃的だったからNLHEに変えてもう一問。
— Naoya Kihara🌤️木原直哉 (@key_poker) April 2, 2019
NLHEをプレーしています。
ターンでボードは2233。フラドロなし。4人ポット。
88対AK対QJ対T9
あなたは88を持っています。勝率はおよそ
ブログにツイッターのアンケートを貼ったら、アンケートの結果も見れるのかどうかのテストです。
フロップK64rでのQQと88
ちょっと先週末に話題になったハンドです。
ボタンから2.5bbにレイズ、BBがコール。
フロップがK64r
この時、QQとか88のどちらかでベットしてどちらかでチェックをするとします。
どちらがベットするのにふさわしいでしょうか。
で、
「エクイティーの実現がどうのこうの」
「勝率がどうのこうの」
「ブロッカーがどうのこうの」
と色々ありましたが、根本的に大切なものを忘れている議論に見えたので、せっかくなので記事という形で書こうと思います。
この状況、すごく当たり前のことを書くけど、そもそも4通りしかないのです。
QQでベット QQでチェック
88でベット 88でチェック
まず、単純にベットしてコールされた場合を考えましょう。
相手にKを持たれていた場合はどちらも一緒、2アウツを引かないと負けです。
相手が7xを持っていた場合は、どちらも現状勝っていて、相手は5アウツ。
大きく違うのは相手が99からJJを持っていた時のみです(正確には88もですが、組み合わせは1/12です)。
後は、AXのXが8からQの間だった場合にちょっと違う程度。
つまり、ベットしてコールされた場合は、QQも88もそこまで変わらないハンドということになります。
そして、言うまでもないですが、ベットして相手が降りた場合は、QQも88も全く同価値です。
また、ベットしてレイズされた場合もQQならコールするけど88なら降りるとかはないでしょう。なので、ベットした場合は、QQならと88は同価値です。
ではチェックした場合を比較してみましょう。
チェックしたら、必ずターンカードが開かれます。
ターンで9からQの間以外のカードが落ちた場合は、依然としてQQと88はほぼ同価値です。
しかし、ターンで9からQの間のカードが落ちたらどうでしょう。
相手がプリフロップでBBでコールしてくるハンドには、
QJ、QT、Q9s、Q8s、JT、J9s、J8s、T9、T8s、T7s、98s、97sなどが含まれます。これらは、ベットしたら相手がフロップで普通は降りるハンドたちですよね。
QQを持っていた場合は、相手に9からJがヒットされていても全く問題ありません。むしろ、ターンでベットすることでバリューが増える可能性まであります。
一方、88を持っていた場合は、9からQをヒットされたら逆転されてしまいます。
QQに取って嬉しいターンカードが、88にとっては非常に嬉しくないのです。
つまり、チェックする場合は、QQ>>88なのです。
まとめると
ベットする場合、QQ≒88
チェックする場合、QQ>>88
なのです。
これ、勝率がレンジに対して何%だとかGTOとかエクスプロイットとかエクイティーとかそういう依然の話であって、QQと88ならQQの方がチェック優位になるのは論理的に考えてごく当然のことだし、ポーカーのプレーとしても全く目新しいものではないのです。
ポーカーでいちばん大切な能力は論理的思考力だと自分は常々言っているのですが、まさにそれを表現するのにピッタリな良問だと思います。
PLOのイメージ、三国志バージョン
PLOとは、4枚配られてそのうち2枚を使うゲームです。
どうしても複雑になるので、ぱっとイメージが沸かないという人も多いかと思います。
最近はもっと漠然と勝率とかのイメージを持てるようになったのですが、そこそこやりこみ初めた時のPLOに対する自分のPLOのイメージは、次のようなものでした。
PLOは4枚中2枚使います。
その組み合わせは6通り。
例えば、KQJTなら、KQ、KJ、KT、QJ、QT、JTの6通り。
別の人がAAを持っているとすると、AAとKQとKJとKTとQJとQTとJTの7人で戦うようなものです。
NLHEをプレーしてて、AAでレイズして6人にコールされた時の気持ちを考えてみてくださいw
しかもずるいことに、6人がコールしたら6倍のポットになるはずだけど、1人分しかお金を出さないで良いのです。
とはいえ、AA側もAAだけではありません。
AA94なら、AA、A9、A4、94と、一応3人の従者がいるのです。
AAという呂布に、雑魚武将が3人護衛についてて、そこそこ武将6人と戦うのです。いくら呂布といえども苦戦して当然です。
しかし、もし対戦相手がKQJ2だったら?
KQ、KJ、QJ、K2、Q2、J2の6人で戦うことになります。
そこそこ武将3人に、雑魚武将3人です。これだとフロップ以降を考えても不利な戦いを強いられることになるでしょう。奇襲要員の2が大活躍しない限り・・・
一方、AA側でも、AAA8rというハンドがたまに来ます。これって
AAとA8の二人で戦うようなものです。これは勝率的にも厳しいし、フロップ以降のプレーのしやすさ的にも厳しい。
また、フロップにAが来る確率が半分になってますし、AAからみて都合が良いAK、AQ等のハンドを相手が持っている可能性も半分になります。
AA(呂布や張飛)クラスの武将ならともかく、QQ(関平)などは護衛が強くないと結構プレーするのが大変なのです。
QQJTdsとかだと、QQ(関平)の他に、QJ、QT、JTというそこそこ武将が護衛についてます。しかもフラッシュも2種あります。フラッシュ1種につき、武将が1人増えるくらいのイメージです。なので、KQJTdsだと8人のそこそこ武将です。Aスートはそこそこ武将1.5人分くらいです。
一方、QQ73rとかだと、QQ(関平)のほかは、Q7、Q3、73の護衛。うーん、関平が大活躍しないと勝つのは難しそう。
NLHEが一騎打ちなら、PLOは集団戦です。良い護衛がいるチームが強いのです。
たまに、AAQTdsのような、呂布+AQ、AT、QT、Aスート2人というような鬼チームも出来ますが、そんなのは早々来ないです。ただ、そんなチームになっても、フロップを開いたら、水上や湿地帯の弓矢がメインの戦いになったりして、黄忠の方がずっと強くなったりもします。鬼のチームを編成したからと言って、過信は禁物なのです。
PLOについてのイメージでした。当たらずも遠からずという感じだと、今でも思ってます。
PLOの勝率見積もり
PLOのハンドの勝率見積もり問題です。
A、AsAd6c5s
B、Ac8s7s4c
C、JdJh9c8d
D、KsQsTc3h
誰がベストハンドで、それぞれの勝率は?
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
回答
なんと、JJ98ssがダントツのベストハンド。
AA65が25%、A874dsが18%、JJ98ssが35%、KQT3ssが22%。
まあ、カードが殆どブロックされてませんから。とは言え、ベストハンドになるとは驚きです。AA65ssもそこまで悪い形ではないのでなおさらです。
なお、他の二人のハンドをデッドカードとして、二人だけの勝率を見ると
こんな感じなので、JJ98がAAに勝つ場合は、他の二人に取られることが47%中12%しかないってことなのですね。面白い。
今日はこれだけw