ニューラルネットワークはパラメータを少しずつ調整していくことで精度をよくしていく方法です。損失関数を以下のように定義し、これを評価の対象とします。
ソフトマックス関数はシグモイド関数と呼ばれる関数の多次元バージョンで、多変量解析や多クラスのフィードフォワード型のニューラルネットワークに用いられるようです。直感的には、誤識別した確率のようなものと思っていただいてよいと思います。loss_layerを小さくすることでtraindataの識別能力が上がります。
さて、いよいよニューラルネットワークを動かす準備をします。以下のような定義でネットワークを構築しているようです。この定義は他の例を実行する際にも有用であるように思います。
さて、いよいよニューラルネットワークを動かす準備をします。以下のような定義でネットワークを構築しているようです。この定義は他の例を実行する際にも有用であるように思います。
今回はSGDと呼ばれる方法でニューラルネットワークを更新していきます。以下のコードで反復回数を10000回に設定し、様々なパラメータの設定をしています。
setup_coffee_loungeやadd_coffee_breakなど、関数の名前がユニークですね。どうやらsetup_coffee_loungeでは1000回の反復ごとのデータを保存、add_coffee_breakでは100回ごとの学習の結果を報告してくれるようです。
最後に以下のように書いて、学習がスタートします。
最後に以下のように書いて、学習がスタートします。
5. 実行結果
以下のような結果になれば学習されています。
これで学習がされました。学習された結果は/snapshotsのフォルダに新しくファイルが作られていると思います。最終的な結果は
と得られました。次の記事ではこれを用いて新しい画像に関してどのような汎化性能を持つか調べていきます。