FC2ブログ

*All archives* |  *Admin*

<<07  2018/08  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  09>>
麻雀AI開発その90・他家から切られる牌分布とニューラルネットその3(失敗編)
昨日から丸一日経過して、出来上がった重みパラメータから牌譜を基に計算してみた感じがこちら↓。


180817-01.png
配牌時点。
0枚持ち西より1枚持ち北の方が出やすいという謎判定。


180817-02.png
同じ局で5巡目。
やや内側数牌の出る率高くなってる。
相変わらず枚数ほぼ無視の横一線に近い。
3枚見えの東とかどう考えても4.5%も出ないでしょうに。

180817-03.png
別の局でリーチ者がいるケース。
リーチ者の現物がどうこうみたいなのも全然入ってるように見えないです。

完全に失敗作ですね。
ただ単純にニューラルネットとかソフトマックスとかクロスエントロピーとか、かっこいいワードを使いたかっただけの坊やだったのさ…。


敗因の分析をします。
入力変数が盤面の情報をそのままをどかーんと放り込んだだけで、人智を超えたニューラルネットで最適化を勝手にやってもらうことをもくろんだのが、ダメだったのかな、と思ってます。
そういうのよりはある程度従来の知見から、関係ありそうな特徴量を人間の手(わたし)で手動でセッティングしてやる方がよりまともな結果になるのではないかなーと現状では思っています。
関係ありそうな特徴量といえば、当該牌の枚数状況とか、現物かどうかとか、周りの牌の枚数(カベ効果)、他家の攻撃状況などです。
そういうのを直接入力値にした方がうまくいくんじゃないかなーと。

それと多値分類問題でソフトマックスとかクロスエントロピーとか、自分の理解度が低い理論を使ってるのも間違いが発生するもとになってるかもしれません。
すでに自分の中で結果としてうまくいってる部類に入る0-1分類問題に変えた方がいいかもしれないです。
出力層を1個にして切られる率の確率に近いものを出すようにして、合計値を1にするような調整は従来通り手作業でやった方がいいかもです。


というわけで、今後の方針では「より簡単なモデルで切られる率(もどき)を出すニューラルネットを作る」ことです。

ひとまずは重要度が高い特徴量として、
・巡目
・該当牌の牌種類
・該当牌の持ち枚数
・該当牌の見え枚数
・該当牌の種類
・4人の攻撃形態(リーチ・非リーチ門前・役牌仕掛け・タンヤオ仕掛け・その他仕掛け)
・4人の副露数
・切り者以外3人の該当牌の現物筋状況
これだけを入れてやってみます。

もちろん最終的には
・副露者が高いか安いか読み
・ドラ情報
・カベ効果
・序盤外側や5切り
・直近で通った牌かどうか
・残り筋本数
とかも入れたいわけですが、簡単なモデルでまともに動くものが作れなければどうしようもないので。
スポンサーサイト



プロフィール

nisi5028

Author:nisi5028
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード