前回まででひとまず言語を超える力のデータセットを動かすところまでできました。
blog.gelehrte.com
blog.gelehrte.com
今回はCNN(畳み込みニューラルネットワーク)を使い、言語を超える力の実装に近い設計で動かしたいと思います。
参考資料
ドキュメントは見つからなかったのですが、サンプルプロジェクトは存在したのでそれを基に設計を行います。
サンプルプロジェクトは02_binary_cnn.sdcprojです。
言語を超える力の設計に近づける
設計を合わせる
以下のようになりました
- Convolution(畳み込み)のKernelShape を5,5から3,3に
- ConvolutionとMaxPollingを1回ずつ増やす
- 畳み込みのあとの処理は、前回までの記事と同じ設計にする(Affine・Tanhを使用)
ここは不勉強な部分で申し訳ないのですが、実際の言語を超える力の設計では畳み込みのあと全結合層で結合を行っています。
この方法とAffineを使う方法との違いについて理解が足りなく、ひとまず動かす形としての設計となりました。
もしかするとAffine・ReLUを使うなどの方法が近いのかな・・・勉強します。
追記:2017/08/27
比較してみました。
blog.gelehrte.com
実際に動かしてみた
以下のように学習してくれました。
なお、いくつかのパラメータなどがおかしいとpythonがエラーを吐きだしますね。
エラーが読みにくいので、このあたりはプログラミングの経験・機械学習の経験が必要そうな気がします。
一応プロジェクトのファイルも公開しておきます。たぶんダウンロードすれば再利用できるのか・・・・な
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の話をしていない気がするので、そちらも少し話せればなぁ・・・・
今回はここまで
それではー