2016年10月2日 更新

Juliaで学ぶ画像処理〜ニューラルネットワーク(Neural Network) part2〜

今回は前回に引き続き、プログラミング言語Juliaで機械学習のニューラルネットワークの実装方法についてご紹介します。

1,631 view お気に入り 0
 (2082)

このようになり、識別器としてうまく機能していることがチェックできました!

これを使えば手書き文字の識別ができそうですね!

4. Juliaで手書き文字の読み込み

なお、注意しなければいけないのは、学習データは白色で文字を書いているということで、画素は0-1の大きさで変動し、黒色は0であるということです。学習データとデータの形を合わせる必要があります。これのチェックはサンプルデータを出力させるとみることができます。

上のコードでprintln(kk)のコメントアウトを外してみると、画像がどのように配列で表されているかをチェックすることができます。

今、手書き画像を読み出すと、
 (2086)

 (2087)

という結果になります。これは値の幅が-127から127となっていて、白が-127として表されていることに注意です。

もともとのデータと同じにするため、このデータを以下のように変換します。
 (2089)

こうすると、データの形が同じになります!面倒臭いので自動的にデータの形式を揃えてくれるものがあればなあ。

4. 実行結果

それでは実行してみましょう。
 (2093)

 (2094)

このような結果が得られ、8番目である確率が最も高いですよ、という結果になっています。判別できていますね。



今回のサンプルプログラムを実行することで、ニューラルネットワークを大まかにどのようにプログラムすればよいのかわかったと思います。次回ではまた別のサンプルを実行してみようと思います。
29 件

関連する記事 こんな記事も人気です♪

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜を終えて

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜を終えて

2016年7月22日に画像処理・画像解析エンジニアMeet Up! #3 ~Lp-tech2周年特集~がありました。様子についてご紹介します。
画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜

画像処理・画像解析エンジニアMeet Up! #3 〜Lp-tech2周年特集〜

画像処理・画像解析エンジニアのミートアップ第3段として、Lp-tech感謝祭を開催します。内容は湖城氏によるImageJの講習会、そしてLp-techの人気のある記事に関してそれの勉強会をする予定です。
Julia と画像処理②〜画像のセグメンテーション(Seed Region Growing とFelzenszwalbアルゴリズム)〜

Julia と画像処理②〜画像のセグメンテーション(Seed Region Growing とFelzenszwalbアルゴリズム)〜

プログラミング言語「julia」を用いて画像処理を行います.インストールに続き,今回は画像のセグメンテーションのライブラリを用いて,セグメンテーションを行います.
Deep learningで画像認識③〜ネオコグニトロンとは?〜

Deep learningで画像認識③〜ネオコグニトロンとは?〜

Deep learningは、画像認識において大きな成功を収めています。そこで用いられる多層ネットワークは、畳み込みニューラルネットワーク(convolutional neural network:CNN)と呼ばれており、画像認識に適した独特の構造を持っています。
木田智士 | 21,830 view

この記事のキーワード

この記事のキュレーター

エルピクセル編集部 エルピクセル編集部