無限不可能性ドライブ

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

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

f:id:celaeno42:20181021230550p:plain

おさらい

前回までで ユニットh21ユニットh22 についての必要な更新式が求まりました。
以下に再掲してみます。

・ユニットh21

 \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}

・ユニットh22

 \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}


見比べてみると以下のことがわかると思います。

  • かっこの部分はユニットごとに共通
  • 最後に掛け合わされている z は対象の重みの位置ごとに共通

以上を踏まえると、残りのユニットの更新式については以下のようになります。

残りのユニットの更新式

・ユニットh23

 \displaystyle \begin{align}
\frac{\partial E}{\partial w_{31}^3} = \frac{\partial E}{\partial u_3^3} \frac{\partial u_3^3}{\partial w_{31}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{13}^4 \times ReLU'(u_3^3) \\
\\+ (z_2^4 - t_2) \times w_{23}^4 \times ReLU'(u_3^3) \\
\\+ (z_3^4 - t_3) \times w_{33}^4 \times ReLU'(u_3^3)
\end{pmatrix}
\times z_1^2 \\
\\
\\
\frac{\partial E}{\partial w_{32}^3} = \frac{\partial E}{\partial u_3^3} \frac{\partial u_3^3}{\partial w_{32}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{13}^4 \times ReLU'(u_3^3) \\
\\+ (z_2^4 - t_2) \times w_{23}^4 \times ReLU'(u_3^3) \\
\\+ (z_3^4 - t_3) \times w_{33}^4 \times ReLU'(u_3^3)
\end{pmatrix}
\times z_2^2 \\
\\
\\
\frac{\partial E}{\partial w_{33}^3} = \frac{\partial E}{\partial u_3^3} \frac{\partial u_3^3}{\partial w_{33}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{13}^4 \times ReLU'(u_3^3) \\
\\+ (z_2^4 - t_2) \times w_{23}^4 \times ReLU'(u_3^3) \\
\\+ (z_3^4 - t_3) \times w_{33}^4 \times ReLU'(u_3^3)
\end{pmatrix}
\times z_3^2 \\
\\
\\
\frac{\partial E}{\partial b_3^3} = \frac{\partial E}{\partial u_3^3} \frac{\partial u_3^3}{\partial b_3^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{13}^4 \times ReLU'(u_3^3) \\
\\+ (z_2^4 - t_2) \times w_{23}^4 \times ReLU'(u_3^3) \\
\\+ (z_3^4 - t_3) \times w_{33}^4 \times ReLU'(u_3^3)
\end{pmatrix}
\times 1
\end{align}

・ユニットh24

 \displaystyle \begin{align}
\frac{\partial E}{\partial w_{41}^3} = \frac{\partial E}{\partial u_4^3} \frac{\partial u_4^3}{\partial w_{41}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{14}^4 \times ReLU'(u_4^3) \\
\\+ (z_2^4 - t_2) \times w_{24}^4 \times ReLU'(u_4^3) \\
\\+ (z_3^4 - t_3) \times w_{34}^4 \times ReLU'(u_4^3)
\end{pmatrix}
\times z_1^2 \\
\\
\\
\frac{\partial E}{\partial w_{42}^3} = \frac{\partial E}{\partial u_4^3} \frac{\partial u_4^3}{\partial w_{42}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{14}^4 \times ReLU'(u_4^3) \\
\\+ (z_2^4 - t_2) \times w_{24}^4 \times ReLU'(u_4^3) \\
\\+ (z_3^4 - t_3) \times w_{34}^4 \times ReLU'(u_4^3)
\end{pmatrix}
\times z_2^2 \\
\\
\\
\frac{\partial E}{\partial w_{43}^3} = \frac{\partial E}{\partial u_4^3} \frac{\partial u_4^3}{\partial w_{43}^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{14}^4 \times ReLU'(u_4^3) \\
\\+ (z_2^4 - t_2) \times w_{24}^4 \times ReLU'(u_4^3) \\
\\+ (z_3^4 - t_3) \times w_{34}^4 \times ReLU'(u_4^3)
\end{pmatrix}
\times z_3^2 \\
\\
\\
\frac{\partial E}{\partial b_4^3} = \frac{\partial E}{\partial u_4^3} \frac{\partial u_4^3}{\partial b_4^3}
&=
\begin{pmatrix}
 (z_1^4 - t_1) \times w_{14}^4 \times ReLU'(u_4^3) \\
\\+ (z_2^4 - t_2) \times w_{24}^4 \times ReLU'(u_4^3) \\
\\+ (z_3^4 - t_3) \times w_{34}^4 \times ReLU'(u_4^3)
\end{pmatrix}
\times 1
\end{align}

もう一歩進めて…

さて、これで隠れ層2層めのすべてのユニットのすべての重みとバイアスの更新部分(勾配)の式がわかりました。
ただ、前述したように、かっこの中身はユニットごとに共通です。
なので、ここでもう一歩進めて、共通部分を別の表記(別の文字) \displaystyle \delta(デルタ)で置き換えてみましょう。
そうすることで、実はこの後で求める隠れ層1層めの更新式を(比較的)スッキリ表すことができるようになります。

・ユニットh21

 \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}
&= \delta_1^3 \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}
&= \delta_1^3 \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}
&=  \delta_1^3 \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}
&=  \delta_1^3 \times 1
\end{align}

・ユニットh22

 \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}
&= \delta_2^3 \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}
&= \delta_2^3 \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}
&= \delta_2^3 \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}
&= \delta_2^3 \times 1
\end{align}

・ユニットh23

 \displaystyle \begin{align}
\frac{\partial E}{\partial w_{31}^3} = \frac{\partial E}{\partial u_3^3} \frac{\partial u_3^3}{\partial w_{31}^3}
&= \delta_3^3 \times z_1^2 \\
\\
\\
\frac{\partial E}{\partial w_{32}^3} = \frac{\partial E}{\partial u_3^3} \frac{\partial u_3^3}{\partial w_{32}^3}
&= \delta_3^3 \times z_2^2 \\
\\
\\
\frac{\partial E}{\partial w_{33}^3} = \frac{\partial E}{\partial u_3^3} \frac{\partial u_3^3}{\partial w_{33}^3}
&= \delta_3^3 \times z_3^2 \\
\\
\\
\frac{\partial E}{\partial b_3^3} = \frac{\partial E}{\partial u_3^3} \frac{\partial u_3^3}{\partial b_3^3}
&= \delta_3^3 \times 1
\end{align}

・ユニットh24

 \displaystyle \begin{align}
\frac{\partial E}{\partial w_{41}^3} = \frac{\partial E}{\partial u_4^3} \frac{\partial u_4^3}{\partial w_{41}^3}
&= \delta_4^3 \times z_1^2 \\
\\
\\
\frac{\partial E}{\partial w_{42}^3} = \frac{\partial E}{\partial u_4^3} \frac{\partial u_4^3}{\partial w_{42}^3}
&= \delta_4^3 \times z_2^2 \\
\\
\\
\frac{\partial E}{\partial w_{43}^3} = \frac{\partial E}{\partial u_4^3} \frac{\partial u_4^3}{\partial w_{43}^3}
&= \delta_4^3 \times z_3^2 \\
\\
\\
\frac{\partial E}{\partial b_4^3} = \frac{\partial E}{\partial u_4^3} \frac{\partial u_4^3}{\partial b_4^3}
&= \delta_4^3 \times 1
\end{align}


 \displaystyle \delta の中身を意識する必要はありますが、
ずいぶんスッキリと表すことができたのではないでしょうか。