tomohxxの日記

麻雀プログラミング

麻雀AI開発DL編(5)

はじめに

再び麻雀AIの評価を行います。これまでに私の開発したAI(以下、自AI)の一局戦vs Manueと東風戦vs Akochanによる評価を行ってきました。一局戦vs Manueでは平均順位においてManueよりも強いことを示せましたが、東風戦vs AkochanではAkochanの平均順位を下回りました。今回は東南戦に変更してvs Manueとvs Akochanの評価を行いました。結論から述べると、東南戦では平均順位においてManueとAkochan両方に勝ち越すことができました。

結果

東南戦vs Manue

  • 自AI 1体 vs Manue 3体による東南戦500戦
  • 自AIの平均順位: 2.092±0.096*1


成績詳細(自AI)

*************************************************************
* Mjai Recoder Report (Mon 06 Sep 2021 12:30:01 PM UTC)
* Player
*************************************************************
Default footer is off.
 試合数 
--------
    500

 局数 
------
 5339

 和了率 
--------
  0.257

 自摸率 
--------
  0.399

 平均得点 
----------
     6597

 平均失点 
----------
     6629

 放銃率 
--------
  0.097

 立直率 
--------
  0.167

 副露率 
--------
  0.395

 順位 | 回数 
------+------
    1 |  201
    2 |  126
    3 |   99
    4 |   74

 平均順位 
----------
    2.092

 流局率 
--------
  0.240

 流局時聴牌率 
--------------
        0.413

 平均最終持点 
--------------
        30063

 起家 | 回数 
------+------
    0 |  118
    1 |  142
    2 |  111
    3 |  129


東南戦vs Akochan (1)

  • 自AI 1体 vs Akochan 1体 vs Manue 2体による東南戦500戦
  • Akochanのポイント配分: 90, 60, -60, -90 (デフォルト値)
  • 自AIの平均順位: 2.254±0.094
  • Akochanの平均順位: 2.316±0.098


成績詳細(自AI)

*************************************************************
* Mjai Recoder Report (Wed 08 Sep 2021 11:41:47 PM UTC)
* Player
*************************************************************
Default footer is off.
 試合数
--------
    500

 局数
------
 5300

 和了率
--------
  0.253

 自摸率
--------
  0.403

 平均得点
----------
     6382

 平均失点
----------
     6390

 放銃率
--------
  0.110

 立直率
--------
  0.174

 副露率
--------
  0.378

 順位 | 回数
------+------
    1 |  152
    2 |  153
    3 |  111
    4 |   84

 平均順位
----------
    2.254

 流局率
--------
  0.190

 流局時聴牌率
--------------
        0.424

 平均最終持点
--------------
        28280

 起家 | 回数
------+------
    0 |  127
    1 |  115
    2 |  140
    3 |  118


成績詳細(Akochan)

*************************************************************
* Mjai Recoder Report (Wed 08 Sep 2021 11:40:24 PM UTC)
* Akochan
*************************************************************
Default footer is off.
 試合数
--------
    500

 局数
------
 5300

 和了率
--------
  0.207

 自摸率
--------
  0.413

 平均得点
----------
     6878

 平均失点
----------
     6323

 放銃率
--------
  0.128

 立直率
--------
  0.187

 副露率
--------
  0.353

 順位 | 回数
------+------
    1 |  156
    2 |  132
    3 |  110
    4 |  102

 平均順位
----------
    2.316

 流局率
--------
  0.190

 流局時聴牌率
--------------
        0.368

 平均最終持点
--------------
        24838

 起家 | 回数
------+------
    0 |  129
    1 |  128
    2 |  119
    3 |  124


東南戦vs Akochan (2)

  • 自AI 3体 vs Akochan 1体による東南戦500戦
  • Akochanのポイント配分: 90, 45, 0, -135 (天鳳七段配分)
  • Akochanの平均順位: 2.552±0.096
  • Akochanの平均ポイント: -2.340


成績詳細(Akochan)

*************************************************************
* Mjai Recoder Report (Sat 04 Sep 2021 09:15:57 PM UTC)
* Akochan
*************************************************************
Default footer is off.
 試合数
--------
    500

 局数
------
 5409

 和了率
--------
  0.180

 自摸率
--------
  0.398

 平均得点
----------
     6805

 平均失点
----------
     5701

 放銃率
--------
  0.129

 立直率
--------
  0.173

 副露率
--------
  0.351

 順位 | 回数
------+------
    1 |  109
    2 |  131
    3 |  135
    4 |  125

 平均順位
----------
    2.552

 流局率
--------
  0.148

 流局時聴牌率
--------------
        0.331

 平均最終持点
--------------
        22933

 起家 | 回数
------+------
    0 |  124
    1 |  126
    2 |  125
    3 |  125


考察

  • 東南戦vs Manueでの平均順位の信頼区間の上限値が2.5を下回っているため、自AIがManueより強いことが明らかになりました。
  • 東南戦vs Akochan (1)の形式では自AIの平均順位はAkochanを下回っているものの、信頼区間が重なっているためAkochanより強いとは言えません。
  • 東南戦vs Akochan (2)の形式ではAkochanの平均順位は2.5を上回っているものの、信頼区間の下限値が2.5を下回っているため自AIがAkochanより強いとは言えません。
  • Akochanの成績詳細を見ると和了率と平均最終持点の割には平均順位が良いので持点ベースの押し引きが自AIより優れていると思います。
  • 牌譜を見るとAkochanは対立直と対副露の押し引きが微妙なので自AIはその2点でAkochanより優れていると思います。

おわりに

Manueとの評価はもう十分でしょう。Akochanとの評価ではどちらが強いかの結論が出ていませんが、すでに自AIの持ち点ベースの押し引きが弱いという課題が見つかっているのでこれを放置して評価を続けようとは思っていません。また、どちらが強いのか結論するには4000戦近く必要なこともあって評価は当分しないつもりです。それで持ち点ベースの押し引きですが、打牌選択モデルの入力に各プレイヤの持ち点をすでに取り入れているので特徴量エンジニアリングによる改善は難しそうです。改善案は現在検討中です。以前の記事でも触れましたが強化学習を使えば改善できるのでしょうか。あとAkochanは東南戦より東風戦のほうが強い可能性があります。今までのところ東風戦でAkochanに勝ち越すことはできていません。東風戦でAkochanに勝ち越すには東風用のモデルを作成することが必要不可欠で、その上で持ち点ベースの押し引きの改善が必要になるのかもしれません。手間を考えると東風戦での評価をやらずに次の段階の強化学習へ進みそうです。今回で麻雀AIの開発と評価に一区切りつけることにします。

*1:95%信頼区間を併記、他の平均順位も同様