日曜プログラミング

ゲーム好きの中の人が、自分が作りたいアプリを作る記録です

Neural Network Consoleでエオルゼア文字を解析してみた (その3)

前回まででひとまず言語を超える力のデータセットを動かすところまでできました。


blog.gelehrte.com
blog.gelehrte.com

今回はCNN(畳み込みニューラルネットワーク)を使い、言語を超える力の実装に近い設計で動かしたいと思います。

参考資料

ドキュメントは見つからなかったのですが、サンプルプロジェクトは存在したのでそれを基に設計を行います。
サンプルプロジェクトは02_binary_cnn.sdcprojです。

f:id:gelehrtecrest:20170824231804p:plain

言語を超える力の設計に近づける

どんな設計だったか

TensorFlowのソースコードは以下のサイトを参考にしていました。

qiita.com

サンプルと比べて畳み込みを1回増やしているところがポイントですね。
その設計に近づけてみましょう

設計を合わせる

以下のようになりました

  • Convolution(畳み込み)のKernelShape を5,5から3,3に
  • ConvolutionとMaxPollingを1回ずつ増やす
  • 畳み込みのあとの処理は、前回までの記事と同じ設計にする(Affine・Tanhを使用)

ここは不勉強な部分で申し訳ないのですが、実際の言語を超える力の設計では畳み込みのあと全結合層で結合を行っています。
この方法とAffineを使う方法との違いについて理解が足りなく、ひとまず動かす形としての設計となりました。
もしかするとAffine・ReLUを使うなどの方法が近いのかな・・・勉強します。

f:id:gelehrtecrest:20170825001305p:plain

追記:2017/08/27
比較してみました。
blog.gelehrte.com

実際に動かしてみた

以下のように学習してくれました。
なお、いくつかのパラメータなどがおかしいとpythonがエラーを吐きだしますね。
エラーが読みにくいので、このあたりはプログラミングの経験・機械学習の経験が必要そうな気がします。


f:id:gelehrtecrest:20170825001604p:plain

一応プロジェクトのファイルも公開しておきます。たぶんダウンロードすれば再利用できるのか・・・・な
https://drive.google.com/open?id=0B_VVnHVjzb7NbXlzQVEtNlRNbWs

今後の予定

CNNで実装した言語を超える力アプリの設計に近い形で、Neural Network Consoleで学習するところまではできました。
今後はいくつかの部品(Poolingの種類など)を替えたりパラメータを替えたりなどを行い、学習結果の比較を行いたいと思います。

学習結果や評価の比較は、Neural Network Console内でグラフィカルに行えるようです。
ここまではまだ試せていないので、後日試します。
blog.dl.sony.com
blog.dl.sony.com

あと、FF14のデータを扱っていながら、ほぼFF14の話をしていない気がするので、そちらも少し話せればなぁ・・・・

今回はここまで
それではー


スポンサーリンク