2016年9月30日 更新

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

5,482 view お気に入り 0
ニューラルネットワークはパラメータを少しずつ調整していくことで精度をよくしていく方法です。損失関数を以下のように定義し、これを評価の対象とします。
 (2053)

ソフトマックス関数はシグモイド関数と呼ばれる関数の多次元バージョンで、多変量解析や多クラスのフィードフォワード型のニューラルネットワークに用いられるようです。直感的には、誤識別した確率のようなものと思っていただいてよいと思います。loss_layerを小さくすることでtraindataの識別能力が上がります。



さて、いよいよニューラルネットワークを動かす準備をします。以下のような定義でネットワークを構築しているようです。この定義は他の例を実行する際にも有用であるように思います。
 (2055)

今回はSGDと呼ばれる方法でニューラルネットワークを更新していきます。以下のコードで反復回数を10000回に設定し、様々なパラメータの設定をしています。
 (2057)

setup_coffee_loungeやadd_coffee_breakなど、関数の名前がユニークですね。どうやらsetup_coffee_loungeでは1000回の反復ごとのデータを保存、add_coffee_breakでは100回ごとの学習の結果を報告してくれるようです。

最後に以下のように書いて、学習がスタートします。
 (2059)

5. 実行結果

以下のような結果になれば学習されています。
 (2062)

これで学習がされました。学習された結果は/snapshotsのフォルダに新しくファイルが作られていると思います。最終的な結果は
 (2064)

と得られました。次の記事ではこれを用いて新しい画像に関してどのような汎化性能を持つか調べていきます。
44 件

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

画像処理・画像解析エンジニア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で学ぶ画像処理〜ニューラルネットワーク(Neural Network) part2〜

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

今回は前回に引き続き、プログラミング言語Juliaで機械学習のニューラルネットワークの実装方法についてご紹介します。
Julia と画像処理②〜画像のセグメンテーション(Seed Region Growing とFelzenszwalbアルゴリズム)〜

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

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

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

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

この記事のキーワード

この記事のキュレーター

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