こんにちは、今回もNeural NetworkをJuliaで実装していきます。
先日、Neural Networkの練習として、Kaggle(https://www.kaggle.com)を紹介していただきました。今回はデータだけ与えられた状態でどのようにスタートして識別器を作っていくのかの一連のプロセスを実装していきたいと思います。
先日、Neural Networkの練習として、Kaggle(https://www.kaggle.com)を紹介していただきました。今回はデータだけ与えられた状態でどのようにスタートして識別器を作っていくのかの一連のプロセスを実装していきたいと思います。
1. 用いるデータ
今回用いるデータは、以下のページからダウンロードしました。
https://www.kaggle.com/c/street-view-getting-started-with-julia
コンペティションの題名は「First Step with Julia」となっており、Neural Networkをはじめてする人のためのよいたたき台となると思います。
今回の目標は以下のようなGoogle Street の写真から書かれているラベルの文字を認識することです。
https://www.kaggle.com/c/street-view-getting-started-with-julia
コンペティションの題名は「First Step with Julia」となっており、Neural Networkをはじめてする人のためのよいたたき台となると思います。
今回の目標は以下のようなGoogle Street の写真から書かれているラベルの文字を認識することです。
2. Neural Networkを行うための前処理
Neural Networkを行うためにチェックすべきポイントです。ケースバイケースなのですが、必要となる場合も多いようです。
文字認識などの場合は画像をグレースケールに
カラー画像をグレースケールにすると1/3の情報量でよいことになります。これにより、調整するべきパラメータも減り、計算もはやくなります。
ラベルの統一
今回の例では英単語が入っています。何かと問題が起きるのはいやなので、それぞれ数字にラベル付けしましょう。
大文字から順番に
list = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi......'
としておいて、ラベルAならば0を出力という設定にしておくと後々良さそうです。
大文字から順番に
list = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi......'
としておいて、ラベルAならば0を出力という設定にしておくと後々良さそうです。
画像の大きさを揃える
Networkに入れる前に画像の大きさがまちまちだと困ります。なので、大きさを全て揃える必要があります。
今回の例では画像の大きさがバラバラになっているので、大きさを(32,32)に統一するようにしました。
今回の例では画像の大きさがバラバラになっているので、大きさを(32,32)に統一するようにしました。
3. 実装したプログラム
画像データをNeural Networkに用いるデータにするため、pythonでhdf5形式のファイルを書き出しました。処理として、グレースケールにしたあと、大きさを統一し、またラベルを数字に変換しています。hdf5形式のファイルはデータのロードなどが高速でとても便利なようですよ。