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>>
麻雀AI開発その97・次の予定
今日は特に成果物があるわけではないですが、麻雀AIの話です。

この前のPCデータ吹っ飛び事件を受けて、
全く同じことをやり直すというモチベーションが著しく下がっている今日この頃。
染め手対応とかできてないことへの対応はしたいところなのですが、そういう気分ではないです。

そこで、どうせなら別アプローチで麻雀AI開発をしたいなーと思うようになりました。
従前のモンテカルロシミュレーションをベースにしてちまちま牌譜解析でパラメータ取りとか部分的なニューラルネットで部品作りだけするのが邪魔くさいと。

参考にしたいと思ってるのが、「アルファ碁」の事例です。
(人から薦めてもらった「最強AIアルファ碁解体新書」を読みながら。)

まずアルファ碁でやってるのは教師付き学習のニューラルネット(SLポリシーネットワークと書かれている)で、各候補手が打たれる確率を算出しているのをやっているようです。
具体的には13層の畳み込みニューラルネット(CNN)のようです。石の配置等を画像分析のように2次元の情報ととらえて多層の畳み込み計算をすると。

では、麻雀の場合はというと、自分の手の形については1次元(もしくは枚数も含めれば2次元データとも見れる)の情報としてとらえて畳み込み計算はできなくはなさそう。
アルファ碁のSLポリシーネットワークでは入力層の情報を48チャンネルとして持っているようなので、麻雀についても手の形以外の情報、例えば捨て牌とか牌種類とかを同じように複数チャンネルで処理していくみたいな構想です。

アルファ碁ではSLポリシーネットワークの後、それをベースとして、強化学習でRLポリシーネットワークというものを作って、より強いAIにしていくという方法をとっているようです。
今の私の手持ちのAIだとちゃんとしたニューラルネットになってなくて、パラメータをちょこちょこ変えつつの強化学習がかなり困難なので、強化学習でよりAIを進化させることができる可能性がある、という点で将来性があっていいかなーと思っています。


と、ここまでは気前よく願望を含みの将来像を書いてきましたが、実際に私の実力的に可能かどうかは相当あやしいです。
なんかありきたりな発想なので、ほかの人も通った道なのかもしれませんし。

とりあえずこういう文章だけ書いてみて決意表明だけはして、思い描いている構想を前に進める努力はするけども、「やっぱりできませんでしたー」になる可能性も相当高いです。


ところで、今まで私が使っているプログラミング言語はVB.netなのですが、Pythonという言語だと、なんか機械学習関連のフレームワーク(?)とやらが充実していていいらしいという話をちょこちょこ目にします。
多層のニューラルネットになるといちいち微分を自分で計算してうんぬんとかが非常に困難なことも予想されるので、そのへんが自動でやってくれるものがあるのなら非常に魅力的ではあります。

なんで、私にとって新しい言語であるPythonの習得から入るという序の口から入らないといけないので、道のりは険しいですが、一から麻雀AIを組むなら既存プログラムとの噛み合わせの問題もほぼないと思われるので、勉強するコストを払うには見合うかなーと思っています。

まぁ、PCデータ吹っ飛び事件をきっかけに踏ん切りがついたと思えれば、ちょっとでも前向きな方向でいいのかなーとか。
スポンサーサイト



プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード