このエントリーをはてなブックマークに追加

2017年2月6日月曜日

配牌からあがれる可能性を予測する!(その5 実際にテストしてみる)

こんにちは、Taroです。
前回の記事の記事の続きになります。
配牌からあがれる可能性を予測する!(その4 勾配を求める際に詰まったこと)
今回は実際にテストしてみたいと思います。

テストに使用した配牌について


Youtubeであがっていた○凰のプレイ動画を1半荘分試しました。

結果


# 第一要素があがれる方、第二要素があがれない方
# 重み
[[-0.09800755  0.09915648]    # 順子
  [ 0.15426824 -0.17342399]    # 対子
  [-0.61190551  0.61323983]]  # 暗刻

# バイアス
[-0.84420447  0.84420447]
この結果だけ見ると、対子の数があがれる方に寄与しているように見えます。
逆に暗刻があるとあがりにくいようです笑
ちょっとリャンメンやカンチャンの形も要素に入れた方が良かったかな、と後悔し始めておりますが、とりあえずこのまま進めたいと思います。

結果を記載しますが、配牌を記載するとおさまりきらないので、「あがれた」か「あがれなかった」を記載します。
結果 あがれる確率 あがれない確率
東1局 あがれない 17% 83%
東2局 あがれない 29% 71%
東3局 あがれない 7% 93%
東3局1本場 あがれない 17% 83%
東4局 あがれない 33% 67%
南1局 あがれる 20% 80%
南1局1本場 あがれない 26% 74%
南2局 あがれない 17% 83%
南3局 あがれる 26% 74%
南4局 あがれる 23% 77%

パッと見、ちゃんと予測できているようには見えないです。
よく考えたら、麻雀は4人のうち1人があがれるゲームなので、単純計算でアガれる確率は25%です。
教師データが足りないのかもしれないと思い、とりあえずプロの対局1局分追加してみました。

結果②


# 第一要素があがれる方、第二要素があがれない方
# 重み
[[ 0.17258578  -0.17396835]    # 順子
  [ 0.20088727 -0.20564398]    # 対子
  [-0.33262621  0.34681625]]  # 暗刻

# バイアス
[-1.07893278  1.07893278]
先ほどとは重みが変わり、順子もアガれる確率に寄与するようになりました。
それではこちらのパラメータをもとに同じテストデータで実験してみます。
比較しやすいよう先ほど求めた結果を①とし、アガれない確率のみ記載します。
結果 結果①のアガれない確率 結果②のアガれない確率
東1局 あがれない 83% 73%
東2局 あがれない 71% 64%
東3局 あがれない 93% 92%
東3局1本場 あがれない 83% 80%
東4局 あがれない 67% 72%
南1局 あがれる 80% 85%
南1局1本場 あがれない 74% 79%
南2局 あがれない 83% 80%
南3局 あがれる 74% 79%
南4局 あがれる 77% 73%

結果の方も変化しました。
10局のうち、6局の「アガれない確率」が下がっています。
つまり「アガれる確率」が上昇しています。
このことから、結果①の時点では、「アガれる」可能性を過少評価していることが考えられます。

おわりに


今後の目標としては、
  • 教師データを増やす
  • レイヤーのノードを追加(リャンメン、カンチャン、ペンチャン)の数

とりあえず、まずは教師データを作成するのが楽になるインターフェースを実装したいと思います。
参考のソースコードはこちらになります。
https://github.com/naoki85/python_mahjong

0 件のコメント:

コメントを投稿