ニューラルネットワークを理解する。 - 誤差逆伝搬法
とにかくわかりにくいです。
損失関数を最小に持っていくようにパラメータを変化させていきます。その方法として出力値より損失関数を利用して偏微分してパラメータ更新に必要な勾配を求めていきます。損失関数を直接数値微分して勾配を求めるという方法の他に、連鎖律と呼ばれる局所的な微分を伝達する原理を使った誤差逆伝搬法があります。こちらの方法の方が高速に処理することができます。
以下、計算値を表示させて説明してあるサイトです。
動画による説明もありますが、なかなか難しいですねー。
もう一つ。
あとはやっぱり、
誤差逆伝播法については、まず計算グラフで説明されています。
これで、左から右へ計算の過程を表していきます。りんごを2個消費税10%で購入する場合のグラフで説明されてます。
普通に100円のりんごの数を2を掛けて消費税10%なので1.1を掛けて計算するのを"順伝播"とします。
この逆を"逆伝播"ということでその値が導き出せるようの計算していきます。その方法はりんごの値段に関する支払い金額の微分となります。
りんごの値段をx、支払い金額をLとして$${ {\partial L}/ {\partial x} }$$($${\frac {\partial L} {\partial x} }$$)として考えます。この式だけではわかりにくいので実際の計算式を書いていきましょう。
りんご2個の値段は220円となっています。消費税のかかる前の値段については
となります。そして、2個買っているのでその1個の値段については
となります。そしてこの計算のみは、りんごが1円上がれば2.2円支払い金額が上がることを意味します。
この辺が少し分かりにくいような気がしますが支払い"1"に対してりんごの値段"2.2"ということで表せているということです。
逆伝搬による微分値の伝達ということです。この原理を連鎖律と呼びます。連鎖律については以下参考サイト。
連鎖律については、合成関数の微分についての性質であり次のように定義ができます。
メモ ・・・ 多変数の合成関数を偏微分する際の連鎖律(チェインルール)
連鎖律を使うことで逆むきの計算が可能になります。この原理を使ったのが誤差逆伝播ということになります。