出力層の合成関数
まず、全体の合成関数から出力層の合成関数の位置を確認。
以下に図示する。
そして、先ほども記載したが出力層で見た合成関数は以下になる。
\(
{\rm{SSE}}(\sigma(g(A_1,W_2)))
\)
これの導関数を連鎖律で求めればよい。
出力層の連鎖律
誤差\(E\)を出力層の重み\(W_2\)で微分するにあたって、
間に\(A_2,Z_2\)が居るので、連鎖律は以下になる。
\(
\displaystyle\frac{\partial E}{\partial W_2}=\frac{\partial E}{\partial A_2}\frac{\partial A_2}{\partial Z_2}\frac{\partial Z_2}{\partial W_2}
\)
それぞれの偏微分を求める。
\(
\displaystyle\frac{\partial E}{\partial A_2}=\frac{1}{2}(A_2-Y)^2=A_2=Y
\)
\(
\displaystyle\frac{\partial A_2}{\partial Z_2}=\sigma^\prime(Z_2)
\)
\(
\displaystyle\frac{\partial Z_2}{\partial W_2}=(W_2 A_2 + b_2)^\prime=A_2
\)
連鎖律として組み合わせる。
\(
\displaystyle\frac{\partial E}{\partial W_2}=(A-Y)\sigma^\prime(Z_2)A_1
\)
ちなみに、バイアスの方は途中過程は省略するが以下になる。
\(
\displaystyle\frac{\partial E}{\partial W_2}=(A-Y)\sigma^\prime(Z_2)
\)
連鎖律を把握してると結構簡単に求められる。
多層であるが故の注意点
ここで注意点がある。
先ほどの出力層の連鎖律に出てくる\(A_1,Z_2\)だが、定数というわけではない。
これは多層パーセプトロンへの入力に依存して決まるもの。
そうすると、具体的な数値が求められない気がするが、
そのために事前に順伝播を行う。
この順伝播時の\(A_1,Z_2\)を記憶しておけばOK。
多層であるが故に追加で記憶しておくパラメータってことになる。
隠れ層から誤差関数までの合成関数
まず、全体の合成関数から隠れ層から誤差関数までの合成関数の位置を確認。
以下に図示する。
※ 画像:全体の合成関数から隠れ層から誤差関数までの位置を確認
全体の合成関数から隠れ層から誤差関数までの位置を確認、W1、X、h()、Z1、σ()、W2、A1、g()、Z2、A2,SSE()、E
そして、これも先ほど記載したが出力層で見た合成関数は以下になる。
\(
{\rm{SSE}}(\sigma(g(\sigma(h(X,W_1)),W_2)))
\)
途中までは出力層と一緒に見えるけど\(Z_1\)は\(W_2\)に対しての偏微分じゃなくて、\(A_1\)に対しての偏微分をするって感じになる。
次のページへ
次のページから隠れ層の連鎖律の話。
コメント