無限不可能性ドライブ

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

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

f:id:celaeno42:20181020222802p:plain

重みの更新式

大まかなところは1つめのユニットと変わりません。


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


今回は2つめのユニット(ユニットh22)なので、 u_1^3 u_2^3 になっていることに注意してください。

連鎖率(チェインルール)

ユニットh21 と同様の考え方で、 \displaystyle \frac{\partial E}{\partial u_2^3} を求める式を立ててみます。


 \displaystyle \begin{align}
\frac{\partial E}{\partial u_2^3} &= \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}
\end{align}


(再掲)ユニットh21 \displaystyle \frac{\partial E}{\partial u_1^3} の式


 \displaystyle \begin{align}
\frac{\partial E}{\partial u_1^3} &= \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}
\end{align}


見比べてみると、ユニットh21ユニットh22 で、それぞれのかたまりの第1項め、第2項めが共通していることがわかります。
では、順番にみていきましょう。

1つめのかたまり

まずは1つめのかたまりについて見ていきましょう。


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


の部分です。
左から第1項め、第2項め、第3項め、第4項めとします。

・第1項めと第2項めについて

ここは ユニットh21 と同じです。


 \displaystyle \frac{\partial E}{\partial z_1^4} \frac{\partial z_1^4}{\partial u_1^4} = \frac{\partial E}{\partial u_1^4} = z_1^4 - t_1


・第3項めについて

第3項めは  \displaystyle \frac{\partial u_1^4}{\partial z_2^3} です。


\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 \frac{\partial u_1^4}{\partial z_2^3} = w_{12}^4


・第4項めについて

ユニットh21 と同様に、


 \displaystyle \frac{\partial z_2^3}{\partial u_2^3} = ReLU'(u_2^3)


・まとめ1

ひととおり必要な部品が揃ったのでつなげてみましょう。


 \displaystyle \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} = (z_1^4 - t_1) \times w_{12}^4 \times ReLU'(u_2^3)


2つめのかたまり

2つめのかたまりはこの部分です。


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


・第1項めと第2項めについて

ここも ユニットh21 と同じです。


 \displaystyle \frac{\partial E}{\partial z_2^4} \frac{\partial z_2^4}{\partial u_2^4} = \frac{\partial E}{\partial u_2^4} = z_2^4 - t_2


・第3項めについて

第3項めは  \displaystyle \frac{\partial u_2^4}{\partial z_2^3} です。


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


よって


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


・第4項めについて

ここは1つめのかたまりと同じです。


 \displaystyle \frac{\partial z_2^3}{\partial u_2^3} = ReLU'(u_2^3)


・まとめ2

ひととおり必要な部品が揃ったのでつなげてみましょう。


 \displaystyle \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} = (z_2^4 - t_2) \times w_{22}^4 \times ReLU'(u_2^3)


3つめのかたまり

最後のかたまりです。


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


・第1項めと第2項めについて

ここも ユニットh21 と同じです。


 \displaystyle \frac{\partial E}{\partial z_3^4} \frac{\partial z_3^4}{\partial u_3^4} = \frac{\partial E}{\partial u_3^4} = z_3^4 - t_3


・第3項めについて


\displaystyle u_3^4 = w_{31}^4 z_1^3 + w_{32}^4 z_2^3 + w_{33}^4 z_3^3 + w_{34}^4 z_4^3 + b_3^4


なので


 \displaystyle \frac{\partial u_3^4}{\partial z_2^3} = w_{32}^4


・第4項めについて

第4項めはまったく同じです。


 \displaystyle \frac{\partial z_2^3}{\partial u_2^3} = ReLU'(u_2^3)


・まとめ3

ひととおり必要な部品が揃ったのでつなげてみます。


 \displaystyle \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} = (z_3^4 - t_3) \times w_{32}^4 \times ReLU'(u_2^3)


まとめると…

すべてのネタが揃ったのでまとめてみましょう。


 \displaystyle \begin{align}
\frac{\partial E}{\partial u_2^3} &= \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} \\
\\
&= (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{align}


残りの部分

あとは  \displaystyle \frac{\partial u_2^3}{\partial w_{21}^3} だけです。
これは簡単ですね。 u_2^3 も隠れ層2層めの順伝播で求めています。


 \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 \begin{align}
\frac{\partial u_2^3}{\partial w_{21}^3} &= \frac{\partial}{\partial w_{21}^3} (w_{21}^3 z_1^2 + w_{22}^3 z_2^2 + w_{23}^3 z_3^2 + b_2^3) \\
\\
&= z_1^2
\end{align}


まとめ: 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}


と求めることができました。

【数式編】(逆伝播)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}


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

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

f:id:celaeno42:20181007215631p:plain

隠れ層の重みの更新式

今回から、隠れ層の重みとバイアスの更新式についてみていきます。
今回は、2層目の隠れ層の1つめのユニット ユニットh21 の重み  w_{11}^3 についてみていきましょう。
隠れ層でも重みの更新式は以下のようにあらわすことができます。


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

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

連鎖率(チェインルール)

 \displaystyle \frac{\partial E}{\partial u_1^3} を求めるにあたっては注意が必要です。

損失関数の計算式を再掲してみましょう。


 \displaystyle E =  -\sum_{k=1}^3 t_k \log z_k^4 = -(t_1 \log z_1^4 + t_2 \log z_2^4 + t_3 \log z_3^4 )


上のニューラルネットワークの図からもわかるように、 z_1^4, z_2^4, z_3^4 を求めるにあたっては、
それぞれで、 u_1^3 の値が計算に利用されています。
損失関数を  u_1^3偏微分するには、それら  u_1^3 が影響を及ぼした値も考慮する必要があります。

よって  \displaystyle \frac{\partial E}{\partial u_1^3} を求める式は、連鎖率によって次のようになります。


 \displaystyle \begin{align}
\frac{\partial E}{\partial u_1^3} &= \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}
\end{align}


かなり複雑な式になりましたが、ひとつひとつみていけばそれほど難しくないことがわかります。

1つめのかたまり

まずは1つめのかたまりについて見ていきましょう。


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


の部分です。
左から第1項め、第2項め、第3項め、第4項めとします。

・第1項めと第2項めについて

第1項めと第2項めをまとめます。


 \displaystyle \frac{\partial E}{\partial z_1^4} \frac{\partial z_1^4}{\partial u_1^4} = \frac{\partial E}{\partial u_1^4}


実は、 \displaystyle \frac{\partial E}{\partial u_1^4} は出力層の逆伝播で求めていて、


 \displaystyle \frac{\partial E}{\partial z_1^4} \frac{\partial z_1^4}{\partial u_1^4} = \frac{\partial E}{\partial u_1^4} = z_1^4 - t_1


となっています。

・第3項めについて

第3項めは  \displaystyle \frac{\partial u_1^4}{\partial z_1^3} です。
 u_1^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 \frac{\partial u_1^4}{\partial z_1^3} = w_{11}^4


・第4項めについて

第4項めは  \displaystyle \frac{\partial z_1^3}{\partial u_1^3} ですが、 z_1^3 は次のように求めています。


 \displaystyle z_1^3 = ReLU(u_1^3)


 ReLU の計算は  max(x, 0) で行われるので、次のように表されます。


\displaystyle
ReLU(x) =
\left \{ \begin{array}{ll}
 x & (x \geq 0) \\
 0 & (x \lt 0)
 \end{array} \right.


 ReLU は数学的には微分不可能ですが、微分については次のように定義されています。


\displaystyle
ReLU'(x) =
\left \{ \begin{array}{ll}
 1 & (x \geq 0) \\
 0 & (x \lt 0)
 \end{array} \right.


 ReLU のグラフを見るとわかりますが、負の値~0 までは傾き 0、それ以上で傾き 1 の直線となっているので、上記の定義となっていると思われます。

f:id:celaeno42:20180923235613p:plain:w400

以上を念頭に


 \displaystyle \frac{\partial z_1^3}{\partial u_1^3} = ReLU'(u_1^3)


としておきます。

・まとめ1

ひととおり必要な部品が揃ったのでつなげてみましょう。


 \displaystyle \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} = (z_1^4 - t_1) \times w_{11}^4 \times ReLU'(u_1^3)

2つめのかたまり

今回はこの部分です。
1つめのかたまり同様に進めていきましょう。


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


・第1項めと第2項めについて

第1項めと第2項めをまとめます。
これもすでに出力層の逆伝播で求めています。


 \displaystyle \frac{\partial E}{\partial z_2^4} \frac{\partial z_2^4}{\partial u_2^4} = \frac{\partial E}{\partial u_2^4} = z_2^4 - t_2


・第3項めについて

第3項めは  \displaystyle \frac{\partial u_2^4}{\partial z_1^3} です。
 u_1^4 は出力層の順伝播で求めているように以下の式になります。


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


よって


 \displaystyle \frac{\partial u_2^4}{\partial z_1^3} = w_{21}^4


・第4項めについて

第4項めはまったく同じです。


 \displaystyle \frac{\partial z_1^3}{\partial u_1^3} = ReLU'(u_1^3)


・まとめ2

ひととおり必要な部品が揃ったのでつなげてみましょう。


 \displaystyle \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} = (z_2^4 - t_2) \times w_{21}^4 \times ReLU'(u_1^3)


3つめのかたまり

最後のかたまりです。


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


・第1項めと第2項めについて


 \displaystyle \frac{\partial E}{\partial z_3^4} \frac{\partial z_3^4}{\partial u_3^4} = \frac{\partial E}{\partial u_3^4} = z_3^4 - t_3


・第3項めについて


\displaystyle u_3^4 = w_{31}^4 z_1^3 + w_{32}^4 z_2^3 + w_{33}^4 z_3^3 + w_{34}^4 z_4^3 + b_3^4


なので


 \displaystyle \frac{\partial u_3^4}{\partial z_1^3} = w_{31}^4


・第4項めについて

第4項めはまったく同じです。


 \displaystyle \frac{\partial z_1^3}{\partial u_1^3} = ReLU'(u_1^3)


・まとめ3

ひととおり必要な部品が揃ったのでつなげてみましょう。


 \displaystyle \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} = (z_3^4 - t_3) \times w_{31}^4 \times ReLU'(u_1^3)


まとめると…

すべてのネタが揃ったのでまとめてみましょう。


 \displaystyle \begin{align}
\frac{\partial E}{\partial u_1^3} &= \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} \\
\\
&= (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{align}


残りの部分

あとは  \displaystyle \frac{\partial u_1^3}{\partial w_{11}^3} だけです。
これは簡単ですね。 u_1^3 は隠れ層2層めの順伝播で求めています。


 \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 \begin{align}
\frac{\partial u_1^3}{\partial w_{11}^3} &= \frac{\partial}{\partial w_{11}^3} (w_{11}^3 z_1^2 + w_{12}^3 z_2^2 + w_{13}^3 z_3^2 + b_1^3) \\
\\
&= z_1^2
\end{align}


まとめ: 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}


と求めることができました。

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

f:id:celaeno42:20181006001617p:plain

前回までのおさらい

前回までで、ユニットo11ユニットo12 の更新部分の式(勾配)を求めました。

ユニット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}


ユニットo12 の重みとバイアスの勾配( \nabla E


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{21}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{21}^4} = (z_2^4 - t_2) \times z_1^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{22}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{22}^4} = (z_2^4 - t_2) \times z_2^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{23}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{23}^4} = (z_2^4 - t_2) \times z_3^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{24}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{24}^4} = (z_2^4 - t_2) \times z_4^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial b_2^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial b_2^4} = (z_2^4 - t_2) \times 1
\end{align}


見比べてみると、(そのユニットの出力 - 該当する教師データ(ラベル))× 各入力値 となっていることがわかります。

ユニットo13 の重みとバイアスの勾配( \nabla E

以上から、ユニットo13 の重みとバイアスの勾配の式は次のようになります。


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{31}^4} = \frac{\partial E}{\partial u_3^4} \frac{\partial u_3^4}{\partial w_{31}^4} = (z_3^4 - t_3) \times z_1^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{32}^4} = \frac{\partial E}{\partial u_3^4} \frac{\partial u_3^4}{\partial w_{32}^4} = (z_3^4 - t_3) \times z_2^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{33}^4} = \frac{\partial E}{\partial u_3^4} \frac{\partial u_3^4}{\partial w_{33}^4} = (z_3^4 - t_3) \times z_3^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{34}^4} = \frac{\partial E}{\partial u_3^4} \frac{\partial u_3^4}{\partial w_{34}^4} = (z_3^4 - t_3) \times z_4^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial b_3^4} = \frac{\partial E}{\partial u_3^4} \frac{\partial u_3^4}{\partial b_3^4} = (z_3^4 - t_3) \times 1
\end{align}

まとめ

これで出力層のパラメータ調整で必要となる勾配の式がわかりました。
実際に重みのパラメータを更新する場合は、


\displaystyle 更新後の重み = 更新前の重み - \left( 学習率 \times \frac{\partial E}{\partial w_{ij}^4} \right)


で更新していきます。(バイアスの場合も同様です。)

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

f:id:celaeno42:20181005222118p:plain

前回のおさらい

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


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

 \displaystyle \begin{align}
 \nabla E =  \frac{\partial E}{\partial w_{21}^4} &= \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{21}^4} \\
\\
&= (z_2^4 - t_2) \times z_1^3
\end{align}


今回はその他の重み  w_{22}^4, w_{23}^4, w_{24}^4 とバイアス  b_2^4 の更新式を求めていきます。

まずは2つめの重み

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


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

 \displaystyle \nabla E =  \frac{\partial E}{\partial w_{22}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{22}^4}


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

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


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


でしたので、


\displaystyle \begin{align}
 \frac{\partial u_2^4}{\partial w_{22}^4} &= \frac{\partial}{\partial w_{22}^4} (w_{21}^4 z_1^3 + w_{22}^4 z_2^3 + w_{23}^4 z_3^3 + w_{24}^4 z_4^3 + b_2^4) \\
\\
&= z_2^3
\end{align}


となります。
よって、


 \displaystyle \begin{align}
 \nabla E =  \frac{\partial E}{\partial w_{22}^4} &= \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{22}^4} \\
\\
&= (z_2^4 - t_2) \times z_2^3
\end{align}


その他の重みとバイアス

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


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


なので、それぞれ


\displaystyle \begin{align}
 \frac{\partial u_2^4}{\partial w_{23}^4} &= \frac{\partial}{\partial w_{13}^4} (w_{21}^4 z_1^3 + w_{22}^4 z_2^3 + w_{23}^4 z_3^3 + w_{24}^4 z_4^3 + b_2^4) \\
\\
&= z_3^3
\end{align}


\displaystyle \begin{align}
 \frac{\partial u_2^4}{\partial w_{24}^4} &= \frac{\partial}{\partial w_{14}^4} (w_{21}^4 z_1^3 + w_{22}^4 z_2^3 + w_{23}^4 z_3^3 + w_{24}^4 z_4^3 + b_2^4) \\
\\
&= z_4^3
\end{align}


\displaystyle \begin{align}
 \frac{\partial u_2^4}{\partial b_2^4} &= \frac{\partial}{\partial b_1^4} (w_{21}^4 z_1^3 + w_{22}^4 z_2^3 + w_{23}^4 z_3^3 + w_{24}^4 z_4^3 + b_2^4) \\
\\
&= 1
\end{align}


となります。

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

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


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{21}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{21}^4} = (z_2^4 - t_2) \times z_1^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{22}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{22}^4} = (z_2^4 - t_2) \times z_2^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{23}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{23}^4} = (z_2^4 - t_2) \times z_3^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial w_{24}^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{24}^4} = (z_2^4 - t_2) \times z_4^3
\end{align}


 \displaystyle \begin{align}
 \frac{\partial E}{\partial b_2^4} = \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial b_2^4} = (z_2^4 - t_2) \times 1
\end{align}


となります。

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

f:id:celaeno42:20181002231009p:plain

ユニットo12 の重みの更新式

今回は ユニットo12 の重み  w_{21}^4 の更新式を見ていきます。
以前求めた  w_{11}^4 の更新式を参考にすると…


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

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


となることがわかると思います。
今回は ユニットo12 を対象としているので、 u_2^4 となっていることに注意してください。
計算手順は ユニットo11 と同じですが、再度順を追って見ていくことにします。

損失関数の偏微分

まずは  \displaystyle \frac{\partial E}{\partial u_2^4} について見ていきます。

損失関数の式を再掲しておきます。


 \displaystyle E =  -\sum_{k=1}^3 t_k \log z_k^4 = -(t_1 \log z_1^4 + t_2 \log z_2^4 + t_3 \log z_3^4 )


この式を  u_2^4偏微分します。


 \displaystyle \frac{\partial E}{\partial u_2^4} = - \left( \frac{\partial}{\partial u_2^4} t_1 \log z_1^4 + \frac{\partial}{\partial u_2^4} t_2 \log z_2^4 + \frac{\partial}{\partial u_2^4} t_3 \log z_3^4 \right)


今回も左から第1項め、第2項め、第3項めとしてひとつずつ見ていきます。

・第1項めについて

まずは  \displaystyle \frac{\partial}{\partial u_2^4} t_1 \log z_1^4 を見ていきます。


 \displaystyle z_1^4 = \frac{\exp(u_1^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)}


なので、


 \displaystyle \log z_1^4 = \log \left( \frac{\exp(u_1^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)} \right)


公式  \displaystyle \log \frac{x}{y} = \log x - \log y を利用して、


 \displaystyle = \log(\exp(u_1^4)) - \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4))


よって、


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} t_1 \log z_1^4 &=  t_1 \times \frac{\partial}{\partial u_2^4} \log z_1^4 \\
\\
&= t_1 \times \left( \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4)) - \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) \right)
\end{align}


公式  \displaystyle (\log f(x))' = \frac{f'(x)}{f(x)} を利用すると


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} \log(\exp(u_1^4)) &= \frac{\frac{\partial}{\partial u_2^4} \exp(u_1^4)}{\exp(u_1^4)} \\
\\
&= \frac{0}{\exp(u_1^4)} \\
\\
&= 0 \\
\\
\\
\frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) &= \frac{\frac{\partial}{\partial u_2^4}(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4))}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)} \\
\\
&= \frac{\exp(u_2^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)} \\
\\
&= z_2^4
\end{align}


以上より、


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} t_1 \log z_1^4 &=  t_1 \times \frac{\partial}{\partial u_2^4} \log z_1^4 \\
\\
&= t_1 \times \left( \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4)) - \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) \right) \\
\\
&= t_1 \times ( 0 - z_2^4 ) \\
\\
&= t_1 \times -z_2^4
\end{align}


・第2項めについて

次に  \displaystyle \frac{\partial}{\partial u_2^4} t_2 \log z_2^4 を見ていきます。

第1項めと同様に、


 \displaystyle z_2^4 = \frac{\exp(u_2^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)}


なので、


 \displaystyle \begin{align}
\log z_2^4 &= \log \left( \frac{\exp(u_2^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)} \right) \\
\\
&= \log(\exp(u_2^4)) - \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4))
\end{align}


よって、


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} t_2 \log z_2^4 &=  t_2 \times \frac{\partial}{\partial u_2^4} \log z_2^4 \\
\\
&= t_2 \times \left( \frac{\partial}{\partial u_2^4} \log(\exp(u_2^4)) - \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) \right)
\end{align}


公式  \displaystyle (\log f(x))' = \frac{f'(x)}{f(x)} を利用して


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} \log(\exp(u_2^4)) &= \frac{\frac{\partial}{\partial u_2^4} \exp(u_2^4)}{\exp(u_2^4)} \\
\\
&= \frac{\exp(u_2^4)}{\exp(u_2^4)} \\
\\
&= 1
\end{align}

 \displaystyle \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) は先ほど求めたので、


 \displaystyle \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) = z_2^4


以上より、


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} t_2 \log z_2^4 &=  t_2 \times \frac{\partial}{\partial u_2^4} \log z_2^4 \\
\\
&= t_2 \times \left( \frac{\partial}{\partial u_2^4} \log(\exp(u_2^4)) - \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) \right) \\
\\
&= t_2 \times ( 1 - z_2^4 )
\end{align}


・第3項めについて

最後に  \displaystyle \frac{\partial}{\partial u_2^4} t_3 \log z_3^4 を見ていきます。

内容は第1項めとほとんど同じです。


 \displaystyle z_3^4 = \frac{\exp(u_3^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)}


なので、


 \displaystyle \begin{align}
\log z_3^4 &= \log \left( \frac{\exp(u_3^4)}{\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)} \right) \\
\\
&= \log(\exp(u_3^4)) - \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4))
\end{align}


よって、


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} t_3 \log z_3^4 &=  t_3 \times \frac{\partial}{\partial u_2^4} \log z_3^4 \\
\\
&= t_3 \times \left( \frac{\partial}{\partial u_2^4} \log(\exp(u_3^4)) - \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) \right)
\end{align}


公式  \displaystyle (\log f(x))' = \frac{f'(x)}{f(x)} を利用して


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} \log(\exp(u_3^4)) &= \frac{\frac{\partial}{\partial u_2^4} \exp(u_3^4)}{\exp(u_3^4)} \\
\\
&= \frac{0}{\exp(u_3^4)} \\
\\
&= 0
\end{align}


 \displaystyle \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) = z_2^4


以上より、


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} t_3 \log z_3^4 &=  t_3 \times \frac{\partial}{\partial u_2^4} \log z_3^4 \\
\\
&= t_3 \times \left( \frac{\partial}{\partial u_2^4} \log(\exp(u_3^4)) - \frac{\partial}{\partial u_2^4} \log(\exp(u_1^4) + \exp(u_2^4) + \exp(u_3^4)) \right) \\
\\
&= t_3 \times ( 0 - z_2^4 ) \\
\\
&= t_3 \times -z_2^4
\end{align}


・まとめると…

 \displaystyle \frac{\partial E}{\partial u_2^4} = - \left( \frac{\partial}{\partial u_2^4} t_1 \log z_1^4 + \frac{\partial}{\partial u_2^4} t_2 \log z_2^4 + \frac{\partial}{\partial u_2^4} t_3 \log z_3^4 \right)


を求めようとしていて、


 \displaystyle \begin{align}
\frac{\partial}{\partial u_2^4} t_1 \log z_1^4 &= t_1 \times -z_2^4 \\
\\
\frac{\partial}{\partial u_2^4} t_2 \log z_2^4 &= t_2 \times (1 - z_2^4) \\
\\
\frac{\partial}{\partial u_2^4} t_3 \log z_2^4 &= t_3 \times -z_2^4
\end{align}


とわかったので、


 \displaystyle \begin{align}
\frac{\partial E}{\partial u_2^4} &= - \left( \frac{\partial}{\partial u_2^4} t_1 \log z_1^4 + \frac{\partial}{\partial u_2^4} t_2 \log z_2^4 + \frac{\partial}{\partial u_2^4} t_3 \log z_3^4 \right) \\
\\
&= - \left( (t_1 \times - z_2^4) + (t_2 \times (1-z_2^4)) + (t_3 \times -z_2^4) \right) \\
\\
&= - (- t_1 \cdot z_2^4 + t_2 - t_2 \cdot z_2^4 - t_3 \cdot z_2^4) \\
\\
&= - (t_2 - t_1 \cdot z_2^4 - t_2 \cdot z_2^4 - t_3 \cdot z_2^4) \\
\\
&= - (t_2 - z_2^4 (t_1 + t_2 + t_3) )   ※ \\
\\
&= - (t_2 - z_2^4) \\
\\
&= z_2^4 - t_2  (1)
\end{align}

(※ 教師データは one-hot 表現としているため、 t_1 + t_2 + t_3 = 1


uの偏微分

では残りの \displaystyle \frac{\partial u_2^4}{\partial w_{21}^4} について見ていきましょう。


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


なので、


\displaystyle \begin{align}
 \frac{\partial u_2^4}{\partial w_{21}^4} &= \frac{\partial}{\partial w_{21}^4} (w_{21}^4 z_1^3 + w_{22}^4 z_2^3 + w_{23}^4 z_3^3 + w_{24}^4 z_4^3 + b_2^4) \\
\\
&= z_1^3  (2)
\end{align}


まとめ: w_{21}^4 の更新式

以上((1)、(2))から、 w_{21}^4 を調整するための具体的な更新式は以下のようになります。(※  \eta は学習率)


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

 \displaystyle \begin{align}
 \nabla E =  \frac{\partial E}{\partial w_{21}^4} &= \frac{\partial E}{\partial u_2^4} \frac{\partial u_2^4}{\partial w_{21}^4} \\
\\
&= (z_2^4 - t_2) \times z_1^3
\end{align}

【数式編】(逆伝播)出力層の重みとバイアスを更新する 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}


となります。

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