無限不可能性ドライブ

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

【数式編】(逆伝播)2つめの隠れ層の重みとバイアスを更新する 2-(2)

f:id:celaeno42:20181021220532p:plain

前回のおさらい

前回求めた  w_{21}^3 の更新式は以下の通りです。


 \displaystyle w_{21}^3 ← w_{21}^3 - \eta \nabla E


 \displaystyle \begin{align}
\nabla E = \frac{\partial E}{\partial w_{21}^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial w_{21}^3} \\
\\
\\
&= \left( \frac{\partial E}{\partial z_1^4} \frac{\partial z_1^4}{\partial u_1^4} \frac{\partial u_1^4}{\partial z_2^3} \frac{\partial z_2^3}{\partial u_2^3} + \frac{\partial E}{\partial z_2^4} \frac{\partial z_2^4}{\partial u_2^4} \frac{\partial u_2^4}{\partial z_2^3} \frac{\partial z_2^3}{\partial u_2^3} + \frac{\partial E}{\partial z_3^4} \frac{\partial z_3^4}{\partial u_3^4} \frac{\partial u_3^4}{\partial z_2^3} \frac{\partial z_2^3}{\partial u_2^3} \right) \times \frac{\partial u_2^3}{\partial w_{21}^3} \\
\\
\\
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{12}^4 \times ReLU'(u_2^3) \\
\\+ (z_2^4 - t_2) \times w_{22}^4 \times ReLU'(u_2^3) \\
\\+ (z_3^4 - t_3) \times w_{32}^4 \times ReLU'(u_2^3)
\end{pmatrix}
\times z_1^2
\end{align}


今回はその他の重み  w_{22}^3, w_{23}^3 とバイアス  b_2^3 の更新部分の式(勾配)を求めていきます。

それぞれの更新式

それぞれの更新式を並べてみます。


 \displaystyle w_{21}^3 ← w_{21}^3 - \eta \nabla E

 \displaystyle \nabla E = \frac{\partial E}{\partial w_{21}^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial w_{21}^3}



 \displaystyle w_{22}^3 ← w_{22}^3 - \eta \nabla E

 \displaystyle \nabla E = \frac{\partial E}{\partial w_{22}^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial w_{22}^3} ・・・(1)



 \displaystyle w_{23}^3 ← w_{23}^3 - \eta \nabla E

 \displaystyle \nabla E = \frac{\partial E}{\partial w_{23}^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial w_{23}^3} ・・・(2)



 \displaystyle b_2^3 ← b_2^3 - \eta \nabla E

 \displaystyle \nabla E = \frac{\partial E}{\partial b_2^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial b_2^3} ・・・(3)


それぞれで  \displaystyle \frac{\partial E}{\partial u_2^3} の部分は同じことがわかります。
なので、それ以外の部分だけ求めましょう。


(1)の部分

 \displaystyle u_2^3 = w_{21}^3 z_1^2 + w_{22}^3 z_2^2 + w_{23}^3 z_3^2 + b_2^3


なので


 \displaystyle \frac{\partial u_2^3}{\partial w_{22}^3} = z_2^2


(2)の部分

同様に、


 \displaystyle \frac{\partial u_2^3}{\partial w_{23}^3} = z_3^2


(3)の部分

 \displaystyle \frac{\partial u_2^3}{\partial b_2^3} = 1



総まとめ

すべて求まったので、それぞれの  \nabla E の部分をまとめておきましょう。


 \displaystyle \begin{align}
\frac{\partial E}{\partial w_{21}^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial w_{21}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{12}^4 \times ReLU'(u_2^3) \\
\\+ (z_2^4 - t_2) \times w_{22}^4 \times ReLU'(u_2^3) \\
\\+ (z_3^4 - t_3) \times w_{32}^4 \times ReLU'(u_2^3)
\end{pmatrix}
\times z_1^2 \\
\\
\\
\frac{\partial E}{\partial w_{22}^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial w_{22}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{12}^4 \times ReLU'(u_2^3) \\
\\+ (z_2^4 - t_2) \times w_{22}^4 \times ReLU'(u_2^3) \\
\\+ (z_3^4 - t_3) \times w_{32}^4 \times ReLU'(u_2^3)
\end{pmatrix}
\times z_2^2 \\
\\
\\
\frac{\partial E}{\partial w_{23}^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial w_{23}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{12}^4 \times ReLU'(u_2^3) \\
\\+ (z_2^4 - t_2) \times w_{22}^4 \times ReLU'(u_2^3) \\
\\+ (z_3^4 - t_3) \times w_{32}^4 \times ReLU'(u_2^3)
\end{pmatrix}
\times z_3^2 \\
\\
\\
\frac{\partial E}{\partial b_2^3} = \frac{\partial E}{\partial u_2^3} \frac{\partial u_2^3}{\partial b_2^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{12}^4 \times ReLU'(u_2^3) \\
\\+ (z_2^4 - t_2) \times w_{22}^4 \times ReLU'(u_2^3) \\
\\+ (z_3^4 - t_3) \times w_{32}^4 \times ReLU'(u_2^3)
\end{pmatrix}
\times 1
\end{align}


一見複雑ですが、よく見比べてみると規則性があることがわかるかと思います。