はじめに
天鳳の牌譜で、打牌を予測する Transformer を学習しました。このAIを眺めていると、染め手に寄った手では、牌効率だけで説明しにくい打牌をすることがあります。
そこで、本題とは別に次の疑問を調べました。
- このAIは、混一色・清一色・三色同順・一気通貫を狙っているのか。単に牌効率を追っているだけではないのか。
- 点数状況で、狙い方は変わるのか。
手元の解析をまとめた記事です。結論を先に書くと、「狙っているように見える。ただし人間とほぼ同じ程度で、実戦の和了役は測っていない」です。
この記事のまとめ
- 効率最善(牌効率)と食い違う局面だけに絞ると、手が役の形に寄るほど、役の形を保つ打牌が増えました。ただし人間(正解ラベル)との差は 0〜2pt 程度で、人間とほぼ同じ程度です。
- 点数状況では、負けているほど役の形を保つ向きに変わりました。
- 鳴きは、狙いが強い手でも他色の牌を約4割鳴きます。
- 実戦(自己対戦)での和了役は測っていません。
何を測ったか
使ったモデルとデータ
- 打牌モデル: 天鳳の牌譜(2009〜2024年の学習用分割)で学習した Transformer。人間の打牌を教師にしています。
- 鳴きは、同じ系統の別の判断モデルで見ました(リーチ・カンは対象外)。
- 評価データ: 2024年の牌譜から、学習に使っていない対局 6,024 局を取りました。強制ツモ切り、13巡目以降、自分または他家のリーチ中を除き、打牌 2,098,666 件になりました。
- 区間はすべて、対局単位のクラスタブートストラップ(1,000 回)の 95% 区間です。同じ対局の行は独立ではないためです。
このモデルの入力には、シャンテン数も受け入れ枚数も入っていません。牌と場の情報だけを見ています。
測り方の工夫: 効率と食い違う局面だけを見る
染め手の色の牌を残す打牌は、効率の良い打牌と重なることが多いです。全局面で「染め手の牌を残した割合」を数えると、役を狙ったのか、効率を追ったのか区別できません。
そこで、効率最善と役の形を保つ打牌が重ならない局面だけに絞りました。
- 効率最善 A: 合法な打牌のうち、打牌後のシャンテン数が最小で、同点なら受け入れ枚数が最大の牌。
- 役の形を保つ打牌 Y: 混一色なら「手牌と副露で最も多い色の数牌と、字牌」以外を切らない打牌、のように役ごとに定義した牌の集合。
- 狙っている手: 混一色なら (本命色の牌 + 字牌) / 全牌 ≥ 0.7 などの閾値で決めた手。ただし用量反応では閾値を外し、比率を区切って見ました。
- 対立局面: 狙っている手で、A と Y が交わらない局面。効率最善を選ぶと、必ず役の形が崩れます。
対立局面では、Y を選ぶ時点で効率最善ではありません。そのうえで Y に入る割合を、モデル(確率の質量)と人間(正解ラベル)で比べます。
三色同順と一気通貫の「支える牌」など、定義の細部はこの記事では割愛します。
結果1: 手が役の形に寄るほど、役の形を保つ打牌が増える
まず4つの役について、対立局面で打牌が Y に入る割合です。
| 役 | 対立局面の数 | モデル | 人間 |
|---|---|---|---|
| 混一色 | 174,106 | 0.375 [0.372, 0.378] | 0.369 [0.366, 0.373] |
| 清一色 | 6,262 | 0.411 [0.397, 0.426] | 0.398 [0.382, 0.413] |
| 三色同順 | 14,586 | 0.398 [0.391, 0.406] | 0.392 [0.383, 0.400] |
| 一気通貫 | 12,826 | 0.383 [0.375, 0.391] | 0.370 [0.360, 0.380] |
効率最善は必ず Y の外にあるので、これらは「効率最善を選ばず、かつ Y に入った」割合です。モデルと人間の差は 0〜2pt 程度でした。
ただし、この数字だけでは「狙っている」とは言えません。Y に入る牌が元々多い手もあるからです。そこで混一色について、手の比率で区切り、「効率最善以外の選択肢の中で Y を選ぶ割合」を、一様に選んだ場合と比べました。
| 手の比率 | 局面数 | モデル | 人間 | 一様 |
|---|---|---|---|---|
| 0.4〜0.5 | 66,312 | 0.680 | 0.684 | 0.657 |
| 0.5〜0.6 | 411,321 | 0.562 | 0.558 | 0.555 |
| 0.6〜0.7 | 192,518 | 0.528 | 0.523 | 0.469 |
| 0.7〜0.8 | 145,759 | 0.662 | 0.655 | 0.386 |
| 0.8〜1.0 | 47,609 | 0.929 | 0.926 | 0.223 |
比率が 0.7 未満では、一様に選んだ場合とほぼ同じか、少し上です。比率が低い手では Y の牌自体が多いので、役を狙った選択とは読めません。0.7 を超えると一様の約 1.7 倍、0.8 以上では約 4 倍になります。
三色同順と一気通貫でも、同じ指標で見ました(モデル。括弧内は一様に選んだ場合)。三色同順は、3色の保有種類数の合計が 3 のとき 0.673(0.900)、8 のとき 0.959(0.477)。一気通貫は、同じ色の種類数が 3 のとき 0.811(0.881)、8 のとき 0.956(0.487)です。種類数が少ないうちは一様より低く、形に近づくほど一様を大きく上回ります。
ここで言えるのは「手が役の形に寄るほど、効率を捨ててでも形を保つ打牌が増える」までです。人間の打牌も同じ形なので、「AIだけが役を狙う」わけではありません。人間の打牌を教師に学習したモデルなので、この一致は独立な裏付けではありません。
結果2: 点数状況で変わるか
向きは「負けているほど役の形を保つ」でした。観測と反実仮想の2本立てで確認します。
観測: 順位別
混一色の対立局面で、効率最善以外を選んだ中での Y の割合です。
| 順位 | モデル | 人間 |
|---|---|---|
| 1位 | 0.711 | 0.706 |
| 2位 | 0.750 | 0.745 |
| 3位 | 0.763 | 0.758 |
| 4位 | 0.812 | 0.805 |
順位が低いほど上がります。ただし観測では、手の質と点数が混ざります。順位が低いと効率最善を選ぶ割合も下がる(モデルで 1位 0.526、4位 0.481)ので、「効率から離れる」ことの一部でもあります。上の表は効率最善以外の中での割合にして、その影響を除いた値です。
反実仮想: 点数の入力だけを書き換える
同じ局面で、点数・順位の入力だけを書き換えて、Y の確率の質量の変化を見ました。書き換えは次の5通りです(自分/下家/対面/上家)。
- 1位: 37,000/21,000/21,000/21,000
- 2位: 27,000/32,000/21,000/20,000
- 3位: 22,000/30,000/28,000/20,000
- 4位: 15,000/30,000/30,000/25,000
- 大きな4位: 5,000/35,000/30,000/30,000
オーラスの局面のみ、実際の入力からの変化は次のとおりです(モデルのみ。人間は同じ局面を1通りしか観測できないため比べられません)。
| 役 | 1位 | 4位 | 大きな4位 |
|---|---|---|---|
| 混一色 | −3.9pt | +3.4pt | +13.7pt |
| 清一色 | −4.4pt | +5.5pt | +21.8pt |
| 三色同順 | −3.3pt | +2.7pt | +13.7pt |
| 一気通貫 | −2.3pt | +4.1pt | +15.0pt |
1位にすると下がり、4位にすると上がります。4位でも持ち点が小さいほど大きく反応します。
注意点があります。この書き換えには、東1局で 5,000 点といった現実にない組み合わせも含みます。モデルがその領域でどう振る舞うかは外挿なので、書き換え前後の差の話にとどめます。
結果3: 鳴き
鳴きについては、「色に合う牌だけ鳴く」という描像は成り立ちませんでした。混一色の手の比率別に、鳴ける局面での鳴き率を見ます(モデル/人間)。字牌には染め手と無関係な役牌ポンが含まれるので、数牌と分けました。
| 手の比率 | 本命色の数牌 | 字牌(役牌を含む) | 他色の牌 |
|---|---|---|---|
| 0.4〜0.5 | 0.061/0.059 | 省略(n<200) | 0.090/0.089 |
| 0.7〜0.8 | 0.247/0.238 | 0.640/0.630 | 0.200/0.202 |
| 0.8〜1.0 | 0.446/0.431 | 0.775/0.766 | 0.388/0.399 |
比率 0.8 以上の局面数は、本命色の数牌 12,072、字牌 6,979、他色の牌 1,647 です。
- 狙いが強い手でも、他色の牌を約4割鳴いています。鳴けば混一色は崩れます。本命色の数牌は約45%なので、差は大きくありません。人間も同じです。
- 比率が低い手では、本命色の数牌より他色の牌の方が鳴かれています。手の形が他色に絡むためと考えられますが、確かめてはいません。
- 比率が上がると、どの牌でも鳴き率が上がります。染め手より、手を進めることを優先した鳴きが多いように見えます。
点数への依存は、打牌と違う向きの部分があります。狙いの強い手(比率 0.7 以上)で「色に合う牌」への鳴き率は、順位が低いほど高くなりました(1位 0.419/0.406、4位 0.470/0.461)。一方、オーラスの反実仮想で大きな4位にすると、むしろ −12.2pt 下がります。理由までは、このデータからは言えません。
なお、この「色に合う牌」は字牌(役牌ポン)を含みます。数牌だけには分けていません。
結果4: 色の外のリャンメンを払うか
染め手を狙うなら、色の外のリャンメンは払うことになります。しかし効率は、リャンメンを残せと言います。この食い違いを見ます。
- 局面: 混一色の本命色が決まり、色の外に孤立したリャンメンがあり、効率最善がそのリャンメンの牌を含まない局面(669,196 局面のうち 650,633 局面)。
- 指標: 打牌がそのリャンメンの牌になる割合。
| 手の比率 | 局面数 | AI | 人間 |
|---|---|---|---|
| 0.4〜0.5 | 89,757 | 1.1% [1.0, 1.1] | 1.0% [1.0, 1.1] |
| 0.5〜0.6 | 353,459 | 0.9% [0.9, 0.9] | 0.9% [0.8, 0.9] |
| 0.6〜0.7 | 129,334 | 0.9% [0.9, 0.9] | 0.9% [0.8, 0.9] |
| 0.7〜0.8 | 69,736 | 2.0% [2.0, 2.1] | 1.9% [1.8, 2.0] |
| 0.8〜1.0 | 8,347 | 27.3% [26.4, 28.2] | 26.8% [25.7, 28.0] |
比率 0.8 以上で約27%、0.7 未満では約1%です。AI と人間は同じ割合でした。
比率 0.8 以上の手は、14枚のうち色の外が 1〜2 枚ほどで、リャンメンがほぼ唯一の色の外の牌です。「リャンメンを残すか、染め手を完成させるか」の選択が、そのまま現れる局面だと言えます。
リャンメンを払った打牌のうち、最善のシャンテン数より悪くなった割合は、AI で 40.8%、人間で 43.4% でした(比率 0.7 以上)。裏返すと、払ってもシャンテン数が落ちない割合が約6割あります。この理由は確かめていません。
限界
- 人間の値は教師ラベルです。モデルと人間が近いのは学習目標から期待されることで、独立な一致の証拠ではありません。「AIが狙っている」と言えるのは、人間とほぼ同じ程度である、という意味です。
- 実戦(自己対戦)での和了役の頻度は測っていません。ここで言えるのは打牌の選択の傾向で、「実戦で染め手を和了する」ことではありません。
- 効率最善は簡易な物差しです。打点、安全、待ちの良さを見ていません。対立局面で Y を選ぶ理由が、役ではなく打点や安全の可能性は残ります。他家リーチ中は除きましたが、副露中の他家は除いていません。
- Y の定義(三色・一気通貫の支える牌)と閾値は恣意的で、感度分析はしていません。混一色・清一色では、閾値なしの用量反応で補いました。
- 反実仮想は現実にない点数の組み合わせを含む外挿です。また、モデルのみで、人間は比べられません。
- 鳴きの点数依存は字牌を含みます。
- 清一色の対立局面は 6,262 件と少なめです。
おわりに
効率と食い違う局面に絞ると、このAIは、手が役の形に寄るほど効率を捨てて形を保ち、負けているほどその傾向が強まりました。鳴きでは他色の牌も約4割鳴き、染め手に一直線というわけではありません。人間もほぼ同じ傾向なので、人間の打牌を教師にしたモデルが、その癖をそのまま身につけたと読むのが妥当だと思います。
実戦で実際に染め手を和了するのか、リャンメンを払ってもシャンテンが落ちない理由は何かは、まだ分かっていません。
麻雀とPythonが分かる方で、定義が気になる点があれば、コメントで教えてください。



