無限不可能性ドライブ

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

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

f:id:celaeno42:20181014232659p:plain

前回のおさらい

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


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


 \displaystyle \begin{align}
\nabla E =  \frac{\partial E}{\partial w_{11}^3} &= \frac{\partial E}{\partial u_1^3} \frac{\partial u_1^3}{\partial w_{11}^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_1^3} \frac{\partial z_1^3}{\partial u_1^3} + \frac{\partial E}{\partial z_2^4} \frac{\partial z_2^4}{\partial u_2^4} \frac{\partial u_2^4}{\partial z_1^3} \frac{\partial z_1^3}{\partial u_1^3} + \frac{\partial E}{\partial z_3^4} \frac{\partial z_3^4}{\partial u_3^4} \frac{\partial u_3^4}{\partial z_1^3} \frac{\partial z_1^3}{\partial u_1^3} \right) \times \frac{\partial u_1^3}{\partial w_{11}^3} \\
\\
\\
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{11}^4 \times ReLU'(u_1^3) \\
\\+ (z_2^4 - t_2) \times w_{21}^4 \times ReLU'(u_1^3) \\
\\+ (z_3^4 - t_3) \times w_{31}^4 \times ReLU'(u_1^3)
\end{pmatrix}
\times z_1^2
\end{align}


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

まずは2つめの重み  w_{12}^3 について

 w_{12}^3 については以下の式を求めます。


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


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


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

そこで、 \displaystyle \frac{\partial u_1^3}{\partial w_{12}^3} についてのみ考えると、


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


なので、


 \displaystyle \frac{\partial u_1^3}{\partial w_{12}^3} = z_2^2


となります。
以上から、


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


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


と導けました。

3つめの重み

パターンがわかったので同じようにして、 \displaystyle \frac{\partial u_1^3}{\partial w_{13}^3} についてのみ考えると、


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


なので、


 \displaystyle \frac{\partial u_1^3}{\partial w_{13}^3} = z_3^2


よって


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


 \displaystyle \begin{align}
\nabla E =  \frac{\partial E}{\partial w_{13}^3} &= \frac{\partial E}{\partial u_1^3} \frac{\partial u_1^3}{\partial w_{13}^3} \\
\\
\\
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{11}^4 \times ReLU'(u_1^3) \\
\\+ (z_2^4 - t_2) \times w_{21}^4 \times ReLU'(u_1^3) \\
\\+ (z_3^4 - t_3) \times w_{31}^4 \times ReLU'(u_1^3)
\end{pmatrix}
\times z_3^2
\end{align}

バイアス

バイアスも同様に  \displaystyle \frac{\partial u_1^3}{\partial b_1^3} についてのみ考えましょう。


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


なので、


 \displaystyle \frac{\partial u_1^3}{\partial b_1^3} = 1


よって


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


 \displaystyle \begin{align}
\nabla E =  \frac{\partial E}{\partial b_1^3} &= \frac{\partial E}{\partial u_1^3} \frac{\partial u_1^3}{\partial b_1^3} \\
\\
\\
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{11}^4 \times ReLU'(u_1^3) \\
\\+ (z_2^4 - t_2) \times w_{21}^4 \times ReLU'(u_1^3) \\
\\+ (z_3^4 - t_3) \times w_{31}^4 \times ReLU'(u_1^3)
\end{pmatrix}
\times 1
\end{align}

(再掲)

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


 \displaystyle \begin{align}
\frac{\partial E}{\partial w_{11}^3} = \frac{\partial E}{\partial u_1^3} \frac{\partial u_1^3}{\partial w_{11}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{11}^4 \times ReLU'(u_1^3) \\
\\+ (z_2^4 - t_2) \times w_{21}^4 \times ReLU'(u_1^3) \\
\\+ (z_3^4 - t_3) \times w_{31}^4 \times ReLU'(u_1^3)
\end{pmatrix}
\times z_1^2 \\
\\
\\
\frac{\partial E}{\partial w_{12}^3} = \frac{\partial E}{\partial u_1^3} \frac{\partial u_1^3}{\partial w_{12}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{11}^4 \times ReLU'(u_1^3) \\
\\+ (z_2^4 - t_2) \times w_{21}^4 \times ReLU'(u_1^3) \\
\\+ (z_3^4 - t_3) \times w_{31}^4 \times ReLU'(u_1^3)
\end{pmatrix}
\times z_2^2 \\
\\
\\
\frac{\partial E}{\partial w_{13}^3} = \frac{\partial E}{\partial u_1^3} \frac{\partial u_1^3}{\partial w_{13}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{11}^4 \times ReLU'(u_1^3) \\
\\+ (z_2^4 - t_2) \times w_{21}^4 \times ReLU'(u_1^3) \\
\\+ (z_3^4 - t_3) \times w_{31}^4 \times ReLU'(u_1^3)
\end{pmatrix}
\times z_3^2 \\
\\
\\
\frac{\partial E}{\partial b_1^3} = \frac{\partial E}{\partial u_1^3} \frac{\partial u_1^3}{\partial b_1^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{11}^4 \times ReLU'(u_1^3) \\
\\+ (z_2^4 - t_2) \times w_{21}^4 \times ReLU'(u_1^3) \\
\\+ (z_3^4 - t_3) \times w_{31}^4 \times ReLU'(u_1^3)
\end{pmatrix}
\times 1
\end{align}


一見複雑ですが、よく見るとほぼほぼ共通していることがわかります。
(かっこの中身が一緒です)