無限不可能性ドライブ

『ニューラルネットワーク自作入門』に刺激されてExcelVBAでニューラルネットワークを作ってみたものの、やっぱり数学やらなきゃと思い少しずつやってきたのもあって、自分の知識の整理とかそういった感じです。

【数式編】(逆伝播)出力層の重みとバイアスを更新する 1-(2)

f:id:celaeno42:20181001232444p:plain

前回のおさらい

前回求めた  w_{11}^4 の更新式はこのようなものでした。


 \displaystyle w_{11}^4 ← w_{11}^4 - \eta \nabla E

 \displaystyle \begin{align}
 \nabla E =  \frac{\partial E}{\partial w_{11}^4} &= \frac{\partial E}{\partial u_1^4} \frac{\partial u_1^4}{\partial w_{11}^4} \\
\\
&= (z_1^4 - t_1) \times z_1^3
\end{align}


今回はその他の重み  w_{12}^4, w_{13}^4, w_{14}^4 とバイアス  b_1^4 の更新式を求めていきます。

まずは2つめの重み

まずは  w_{12}^4 について見ていきましょう。
更新式は次のようになります。


 \displaystyle w_{12}^4 ← w_{12}^4 - \eta \nabla E

 \displaystyle \nabla E =  \frac{\partial E}{\partial w_{12}^4} = \frac{\partial E}{\partial u_1^4} \frac{\partial u_1^4}{\partial w_{12}^4}


 w_{11}^4 の式と見比べると  \displaystyle \frac{\partial E}{\partial u_1^4} の部分は同じことがわかります。

なので、 \displaystyle  \frac{\partial u_1^4}{\partial w_{12}^4} についてのみ考えます。


\displaystyle u_1^4 = w_{11}^4 z_1^3 + w_{12}^4 z_2^3 + w_{13}^4 z_3^3 + w_{14}^4 z_4^3 + b_1^4


でしたので、


\displaystyle \begin{align}
 \frac{\partial u_1^4}{\partial w_{12}^4} &= \frac{\partial}{\partial w_{12}^4} (w_{11}^4 z_1^3 + w_{12}^4 z_2^3 + w_{13}^4 z_3^3 + w_{14}^4 z_4^3 + b_1^4) \\
\\
&= z_2^3
\end{align}


となります。
よって、


 \displaystyle \begin{align}
 \nabla E =  \frac{\partial E}{\partial w_{12}^4} &= \frac{\partial E}{\partial u_1^4} \frac{\partial u_1^4}{\partial w_{12}^4} \\
\\
&= (z_1^4 - t_1) \times z_2^3
\end{align}


その他の重みとバイアス

その他の重みとバイアスについても、 \displaystyle \frac{\partial E}{\partial u_1^4} の部分は同じなので、
それぞれの  u偏微分だけを求めればいいですね。


\displaystyle u_1^4 = w_{11}^4 z_1^3 + w_{12}^4 z_2^3 + w_{13}^4 z_3^3 + w_{14}^4 z_4^3 + b_1^4


なので、それぞれ


\displaystyle \begin{align}
 \frac{\partial u_1^4}{\partial w_{13}^4} &= \frac{\partial}{\partial w_{13}^4} (w_{11}^4 z_1^3 + w_{12}^4 z_2^3 + w_{13}^4 z_3^3 + w_{14}^4 z_4^3 + b_1^4) \\
\\
&= z_3^3
\end{align}


\displaystyle \begin{align}
 \frac{\partial u_1^4}{\partial w_{14}^4} &= \frac{\partial}{\partial w_{14}^4} (w_{11}^4 z_1^3 + w_{12}^4 z_2^3 + w_{13}^4 z_3^3 + w_{14}^4 z_4^3 + b_1^4) \\
\\
&= z_4^3
\end{align}


\displaystyle \begin{align}
 \frac{\partial u_1^4}{\partial b_1^4} &= \frac{\partial}{\partial b_1^4} (w_{11}^4 z_1^3 + w_{12}^4 z_2^3 + w_{13}^4 z_3^3 + w_{14}^4 z_4^3 + b_1^4) \\
\\
&= 1
\end{align}


となります。

総まとめ:ユニットo11 の重みとバイアスの勾配( \nabla E

ユニットo11 のすべての重みとバイアスの勾配( \nabla E)の部分をまとめておきます。


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{11}^4} = \frac{\partial E}{\partial u_1^4} \frac{\partial u_1^4}{\partial w_{11}^4} = (z_1^4 - t_1) \times z_1^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{12}^4} = \frac{\partial E}{\partial u_1^4} \frac{\partial u_1^4}{\partial w_{12}^4} = (z_1^4 - t_1) \times z_2^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{13}^4} = \frac{\partial E}{\partial u_1^4} \frac{\partial u_1^4}{\partial w_{13}^4} = (z_1^4 - t_1) \times z_3^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{14}^4} = \frac{\partial E}{\partial u_1^4} \frac{\partial u_1^4}{\partial w_{14}^4} = (z_1^4 - t_1) \times z_4^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial b_1^4} = \frac{\partial E}{\partial u_1^4} \frac{\partial u_1^4}{\partial b_1^4} = (z_1^4 - t_1) \times 1
\end{align}


となります。

この式で求めた値に学習率を掛けて、元の重みやバイアスから引くことで出力層の重みやバイアスを更新していきます。