いろんな書物をあたっていた所、わかりやすい内容があったので、
忘れないように書いておく。
ニューラルネットワークには学習フェーズと
実際に画像などを読み込ませて結果を判断する推論(分類)フェーズがあるが、今回は学習フェーズでの話。
++++++++++++++++++
●ニューラルネットワークの学習手順
1、
訓練データの中からランダムにデータを取り出す。
取り出されたデータをミニバッチと呼ぶ。
このミニバッチの損失関数の値を減らすことを学習の目的とする。
2、
ミニバッチの損失関数を減らすために、各重みパラメータの勾配を求める。
これによって、損失関数の値を最も減らす方向がわかる。
3、
重みパラメータを勾配方向に微小な値分だけ更新する。
4、
上記1~3を繰り返す。
全データではなく、確率的に選び出したデータで作業を行っているので、これを確率的勾配降下法と呼ぶ。
(頭文字を取って、SGDという関数名が多い)
*********************
なるほど。
要は重みとバイアスのパラメータを、いかに訓練データの特徴量に合ったものに変えていくかって事が大事なんですね。
まあ、この値さえ決まってしまえば、あとはテストデータを入れてボタンをポンで結果は出ますもんなあ。
このニューラルネットワークを最初に考えた人は、たいしたもんです。