5.3.2 単純な例
誤差逆伝播の例を示す。
・2層ネットワーク(図5.1)
・2乗和誤差関数(5.61)
・出力ユニットは線形活性化関数
・隠れユニットはシグモイド活性化関数(5.58)
※シグモイド関数の微分は(5.60)。演習5.8参照
1.順伝播を実行する。(5.62)(5.63)(5.64)
2.出力ユニットのを計算する。(5.65)
3.逆伝播により隠れユニットのを得る。(5.66)
4.誤差関数の各重みに関する微分を評価する。(5.67)
5.3.3 逆伝播の効率
目的:逆伝播法を用いて誤差関数を一度評価するのに必要な計算量を求める。
結果:
詳細
逆伝播法の最も重要な側面の1つは計算上の効率の良さ。
誤差関数の微分を評価するのに必要な計算量を確認する。
※ネットワークの重みとバイアスの総計をとする。
順伝播の計算量
(5.48)と(5.49)だが、重み数がユニット数よりもはるかに多いのが一般的なので、(5.48)の和の評価に関するものが大部分となる。すべてのユニットで(5.48)をとると重み数だけ評価するため計算量は。
図1を考えるとユニット数は。重み数は。
逆伝播の計算量
(5.56)。これも和の評価が大部分となる。入力と第1層間の重み数はないが、計算量は。 ※出力ユニット分(5.54)は<<。
誤差関数の微分の計算量
(5.53)。これが重み数だけあるため計算量は。
よって逆伝播法を用いて誤差関数を評価する場合計算量は。
逆伝播法以外のアプローチ
有限差の差分による近似(5.68)。誤差は。 精度がいる場合は中心差分(5.69)を用いれば良い。誤差。ただし計算量は(5.68)のおおよそ倍。
順伝播()で。 これを重み数だけ計算するため計算量は全体で
5.3.2 ヤコビ行列
目的:逆伝播のテクニックをヤコビ行列の評価に応用する。
結果:(5.73)と(5.74)。 各出力ユニットが個々にシグモイド活性化関数を持つ場合は(5.75)、ソフトマックス関数を持つ場合は(5.76)。
詳細
ヤコビ行列について
たくさんの異なるモジュールで構成されたシステムにおいて、例えば図5.8において誤差関数の微分は(5.71)となりヤコビ行列が現れる。
ヤコビ行列がわかっていれば入力に任意の既知の誤差がある場合、出力誤差への寄与を評価することができる(5.72)。一般に、ヤコビ行列は定数ではなく用いた入力ベクトルに依存するため、新しい入力ベクトルに対してヤコビ行列そのものを再評価する必要がある。
逆伝播を応用した評価方法
隠れユニット2層の3層ネットワークのからまでの流れはたぶん次図みたいな感じ。
要素について考えると(5.73)となる。
※(5.48)により。
は(5.74)となる。
※(5.48),(5.49)により
。
この逆伝播は出力ユニットから始まり、そこでの微分は出力ユニットの活性化関数の関数形式を直接微分をして求める。
ユニットが個々にシグモイド化関数を持つ場合より(5.75)。
ソフトマックス関数を持つ場合には
より(5.76)。
※はクロネッカーのデルタであることに注意
ヤコビ行列を評価する手続き
- 入力をネットワークに入れて順伝播させてすべての隠れユニットと出力ユニットの出力を得る。
- を求める。
- 再帰的な関係式(5.74)を用いてネットワーク内のすべての隠れユニットを逆伝播させる。
- (5.73)を用いて入力への逆伝播を行う。
- を変更しながら2~4を繰り返す。
※2~4でヤコビ行列の行が求まる