FC2ブログ

*All archives* |  *Admin*

<<05  2020/06  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  07>>
はじめてのpython&Tensorflowその10・自分ツモ番の選択ほぼ完成
前回(はじめてのpython&Tensorflowその9・他家リーチ)から、
他家副露者なしの条件を外して、自分ツモ番での選択についてすべて判断可能にしました。

入力チャンネルの追加項目はだいたい前回書いた通りです。
他家一色手模様に関する指標として、(染め色がマンズの場合、)「最初にマンズが切られるまでに切られたピンズ・ソーズの枚数」という項目を加えました。
また、「ある牌が最後に通ってからの手出し回数」に加え、「ある牌と同一筋が最後に通ってからの手出し回数」も入力チャンネルに加えました。

入力チャンネル数は全部で56個になりました。
考慮すべき項目がだいぶ増えたので、フィルター枚数をさらに倍化の128枚にして、
バッチサイズ100×ステップ数1000×epoch数100と10倍の学習量にしました。

読み取るべきcsvの列数も増えて、重みパラメータの数も増えて、epoch数も10倍にしたので、
学習時間は丸1日~2日まで増えました。

まぁ、自分ツモ番に関しては今回ので完成形になるので、この程度の時間で済んでくれるなら安いもんだろうと。
ただ、後で入れ忘れた項目とかcsvからの変換のコードにバグがあったりすると悲惨です。
実際、他家リーチ一発状態を入れ忘れて1回やり直しになって1日強の間待ちぼうけでした。

学習結果はこんな感じ↓。
181030-01.png
損失関数も徐々に減っていって、最終的に正解率は66%overまで来ました。
他家リーチとか副露みたいな対応もまずまずの確度で当てられると。
学習が終わるまでじっと待った甲斐がありました。


実際の手牌との突合せがこちら↓。
181030-02.png
上位2牌の予測が成功してるのは86%まであるので、全体としてはだいぶ実際の牌譜と整合させることができてるかなーと思います。

次の課題は他家から鳴ける牌が出た時の反応についてです。
他家に対する警戒に関する項目はツモ番のときをそのまま流用できます。
自分手牌に関する項目についても、だいたい似たような感じで作れると思います。
シャンテン数や手役関連はスルー時と鳴き時で分ける必要があるとかはちょっとツモ番時とは異なってきそうですが。
難しそうなのは鳴き方が複数ある場合とか、喰い替え禁止あたりをどう表現するかですが、自分の中ではプランはある程度あるので、思い描いたどおりに入力チャンネルの設計ができるかどうかだけです。
まぁ、そこまではなんとかなるでしょう。最悪、場合分けしまくってチャンネル数特盛設計にすればいいです。

そうして、SLポリシーネットワークまでできたら、アルファ碁みたいにReinforceアルゴリズムで強化学習で強くするパートまで見えてきます。

今のところ抱えてる大きな課題は二つ。

・Pythonやkerasで強化学習ってどうすればいいんだ?なんかkeras-rlというもので強化学習ができるらしいという情報まではつかんだのですが、Q学習のサンプルコードは割と見つかったのですが、方策勾配法やReinforceアルゴリズムでは情報が少なくて調べるのが難航してます。actor-criticとかDDPGならkeras-rlの関数でできるらしいけど、普通の方策勾配法のやり方がわからない。
actorが既知(今やってるSLポリシーネットワーク)でcriticが未知みたいな状況なので。
がんばって英語のサイトを探し回るしかないのだろうか。
強化学習については全然素人なので、細かい理論的なところまで頭が回らないです。いちおう、前に薦めてもらった「これからの強化学習」は入手済みで読んだけど、ちょっと難しすぎて何言ってるかわからないです。

・強化学習をするにあたって、ゲームの流れやSLポリシーネットワークなりRLポリシーネットワークなりに突っ込む用のデータ作成のために、今までVB.NETで書いてきた各種関数をPythonで書き直さないといけないことがほぼ確定事項な感じ。最低でもシャンテン計算と、アガリ時メンツ切り分けと、アガリ役判定は必須です。とりあえずものすごくがんばってPythonへの移行を考えなきゃいけないことだけはわかった。

強化学習ができれば、PCのスペックが許す限り、無尽蔵に牌譜を生み出せるので、「アルファ碁解体新書」に書いてる方法で、バリューネットワーク(評価値の算出)まで行ける公算が高いのですが、道はまだ険しいですなぁ。
スポンサーサイト



コメントの投稿

Secret
(非公開コメント受付中)

コメント

プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード