FC2ブログ

*All archives* |  *Admin*

<<09  2018/10  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  11>>
はじめてのpython&Tensorflowその7・リーチと暗槓
前回(はじめてのpython&Tensorflowその6・手役情報と複数回畳み込み計算)からの追加項目として、
自分のツモ番における選択肢として、牌を切る以外に、リーチ宣言と暗槓があるので、今回はその部分を入れました。

ニューラルネットの構造としては、出力値として、従前の牌番号だけから、リーチ宣言したかどうかと、暗槓したかどうかの出力値を2つ足した感じになります。
分岐は最後のDense計算層(従前だとdense_3層)からにしています。

損失関数は各出力ともクロスエントロピーで、3つの損失関数の単純加算した値を最小化させる最適化です。特に工夫もなくふつうです。

入力チャンネルの追加は、
・打牌可能か
・リーチ可能か
・暗槓可能か
の3つです。

構造はこんな感じ↓。
181022-01.png

損失関数と正解率はこんな感じ↓。
バッチサイズ100、1epochあたり1000ステップで、10epoch分回した。
181022-02.png

損失関数のカーブ的にまだ改善の見込みはありそうだけど、まぁ計算時間の都合で今回はこのへんにしておく。

リーチのほうはまだましですが、暗槓については全体のデータ数から見てだいぶレアケース(テスト用データ10000件中暗槓は6件のみ)な分、損失関数の値が小さすぎてほぼ機能してない疑惑。

手牌との突合せ↓(最初の100件)
181022-03.png
まぁこれは従前と似たようなものか。

実際にリーチ宣言されたデータについての予測値↓。
181022-04.png
さっきのよりは予測リーチ率は高めに出てくれてるけど、予測リーチ率5割以上を正解とみなす場合、けっこう5割に届いてないケースが多いです。

特に七対子聴牌のケースについては予測リーチ率が低くてちょっと適応できてない感があります。
後、赤5を切って聴牌のケースもうまく予測できずに弱点になってるっぽい。
このへんは学習量を増やせばなんとかなるものなのかなー。

実際に暗槓されたデータについての予測値↓。
181022-05.png

暗槓がまともに機能してない疑惑的中。
暗槓可能情報やリーチ可能情報を入力層のチャンネルの中に埋め込むんじゃなくて、別口でもうちょっと上のDense層とかに直接突っ込んだほうがいいのだろうか?


次の課題
・七対子国士情報追加
・リーチ暗槓可能情報の入れる場所
・自分副露手の打牌選択
スポンサーサイト



プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード