日曜プログラミング

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

Neural Network Consoleでエオルゼア文字を解析してみた

現在話題になっているNeural Network Console、私の作成している言語を超える力アプリ開発で使えるかどうか検証してみた。

dl.sony.com

前提情報

アプリ

Neural Network Console

Sony社が開発・無料公開しているディープラーニング総合開発ツールです。
プログラミング不要で、UI上で様々なニューラルネットワークの設計を行うことが可能です。
もちろん、実際の学習・評価も行うことが可能です。

言語を超える力

私が開発している、ディープラーニングを使ってFF14というゲームの文字をアルファベット・数字に分類するというアプリです。
現状、TensorFlowで開発を行い、チュートリアルで紹介されていたcifar10を参考に、単純なニューラルネットワークを構築しています。

languageecho.com

詳しくは、過去のブログを見ていただければ嬉しいです。
エオルゼア翻訳 カテゴリーの記事一覧 - 日曜プログラミング

データセット

私がFF14のゲームにログインし、スクリーンショットを撮り、独自に集めた画像データを使います。
32x32のグレースケールデータを使います。

やりたいこと

言語を超える力のニューラルネットワークの設計を見直し、よりよい精度を出せるようにしたいです。

やってみた

準備編

Neural Network Consoleの準備

Neural Network Consoleのインストールなどは、すでに色々な人が記事をあげているので、ここでは割愛します。
私はこの記事を参考にしました。
qiita.com

データセットの準備

公式マニュアルを参考にしました。
blog.dl.sony.com

この記事の

データセット管理画面の使い方
1 画像カテゴリ毎にフォルダ分けされた画像を元に、画像分類用データセットを作成するには

を参考にしました。

ラベルごとに画像フォルダを分けるのが流儀のようなので、それに合わせてデータを整理。
マニュアルに従い、csvファイルを作りました。
マニュアルから変更した点は、

  • 画像サイズを32x32
  • train.csv 80%
  • test.csv 20%

f:id:gelehrtecrest:20170822005754p:plain

こんな感じのcsvファイルが吐き出されました。

x:image,y:label
.\62\empty-20170624183305-58.jpg-12.png,59
.\62\empty-20170622175120-43.jpg-83.png,59
.\24\o-20170820100018-41.jpg-0.png,17
.\62\empty-20170622175120-43.jpg-80.png,59
.\62\empty-20170624183348-100.jpg-55.png,59
.\62\empty-20170612172055-68.jpg-3.png,59
.\62\empty-20170611001216-68.jpg-0.png,59
.\22\m-20170531020032-17.jpg-6.png,15
.\62\empty-20170803115327-41.jpg-7.png,59
.\57\V-upper-EorzeaExtended.png,53
.\62\empty-20170622175120-43.jpg-34.png,59
.\62\empty-20170607131800-91.jpg-28.png,59
.\20\k-20170523164850-13.jpg-8.png,13
.\10\a-20170622174527-58.jpg-11.png,2
.\40\E-20170517011301-91.jpg-0.png,35

(以下省略)

グラフィカルに、トレーニングデータが読み込まれたのもわかります。
f:id:gelehrtecrest:20170822010045p:plain

実際に学習させてみた

ここでも公式のマニュアルを参考にしました。基本の2層ニューラルネットワークです。
blog.dl.sony.com

マニュアルからのいくつか変更点として、

  • データセットcsvは上記で作ったcsvを使う。(学習に80% 評価に20%のデータを使いました)
  • Layer PropertyのSizeに変数x(入力データ)のサイズとして1,32,32を設定

f:id:gelehrtecrest:20170822010003p:plain

結果

このように学習ができました。
今回はとりあえず動いたことで満足です!

f:id:gelehrtecrest:20170822010107p:plain

結果が明らかに変な感じになっているのは、データセットの少なさと、csv吐き出しが想定外の形になっていることかなと思っています。
(lossの値が明らかにおかしい)
今回は練習なので、とりあえず動かすところまでということで。

あと、上記しましたが、データセットがグラフィカルに表示されているところで自分のデータセットが汚いことが実感されました。
もうすこしデータセットをきれいに整理、明らかにおかしいデータを削除しないとだなぁと・・・・
という気づきがわかるのも面白いですね。

感想と今後の予定

Neural Network Console

とても使いやすく、直感的にディープラーニングを試すことができました。
ただ、このまま公開することは難しそうです。もう少し使い方を学べば、このままツールとしてデプロイする方法もわかるのかもしれませんが・・・・そこまで試せませんでした。

あくまで、ニューラルネットワークの設計のために使いたいと思います。
TensorFlowでは設計のテストを素早く行うのはかなりの技術が必要ですが、Neural Network Consoleを使えば素早く試せるのがいいですね。

言語を超える力の更新

もっと試したあとで行う予定ですが、Neural Network Consoleで最適だと判断されたニュートラルネットワークの設計を基に、TensorFlowで開発を行い、デプロイしたいと思います。


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

2017/08/23追記
もう少しテストしたところ、ニューラルネットワークの設計をやり直さないと正しい学習が行われていないという結果がでました。
この設計についてはまた記事にします。


2017/08/24追記
記事にしました
blog.gelehrte.com


スポンサーリンク