無限不可能性ドライブ

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

逆伝播 - 出力層 - ユニット2 - 重み1 - 1

f:id:celaeno42:20180730225345p:plain


さて、今度は出力層の2つめのユニットについて見ていきます。

まずはじめに \displaystyle w_{21}^{4} について見ていくことにしましょう。

\displaystyle w_{21}^{4} の更新式はひとつめのユニット同様、


\displaystyle w_{21}^{4}\displaystyle w_{21}^{4}\displaystyle - \eta \nabla En = \displaystyle w_{21}^{4} \displaystyle - \eta \left ( \frac {\partial En}{\partial w_{21}^{4}} \right )


となりますので、前回同様 \displaystyle \nabla En つまり、\displaystyle \frac {\partial En}{\partial w_{21}^{4}} を求めていけばいいですね。
(※ \displaystyle \eta は学習率)


\displaystyle \frac {\partial En}{\partial w_{21}^{4}} = \displaystyle \frac {\partial En}{\partial u_{2}^{4}}\displaystyle \frac {\partial u_{2}^{4}}{\partial w_{21}^{4}}


なので、まずは \displaystyle \frac {\partial En}{\partial u_{2}^{4}} について見ていきましょう。


念のため損失関数を再掲しておきましょう。

\displaystyle En\displaystyle = - \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} )


この式を \displaystyle u_{2}^{4}偏微分していきます。


\displaystyle \frac {\partial En}{\partial u_{2}^{4}}\displaystyle = - \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 \frac {\partial}{\partial u_{2}^{4}} \log z_{1}^{4} について(\displaystyle t_{1} は省略)、


\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 \frac {\partial}{\partial u_{2}^{4}} \log z_{1}^{4} = \displaystyle \frac {\partial}{\partial u_{2}^{4}} \log (\exp(u_{1}^{4})) \displaystyle - \displaystyle \frac {\partial}{\partial u_{2}^{4}} \log (\exp(u_{1}^{4}) + \exp(u_{1}^{4}) + \exp(u_{3}^{4}))


\displaystyle \frac {\partial}{\partial u_{2}^{4}} \log (\exp(u_{1}^{4})) について、


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


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


同様に、\displaystyle \frac {\partial}{\partial u_{2}^{4}} \log (\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})) について、


\displaystyle \begin{align*}  \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}} \left ( \exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4}) \right )}{\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 \frac {\partial}{\partial u_{2}^{4}} \log z_{1}^{4} = \displaystyle \frac {\partial}{\partial u_{2}^{4}} \log (\exp(u_{1}^{4})) \displaystyle - \displaystyle \frac {\partial}{\partial u_{2}^{4}} \log (\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})) \displaystyle = \displaystyle 0 \displaystyle - \displaystyle z_{2}^{4} \displaystyle = \displaystyle -z_{2}^{4}

逆伝播 - 出力層その2 - 5(その他の重みとバイアス)

f:id:celaeno42:20180728230258p:plain

前回までで \displaystyle w_{11}^{4} の更新式が求まったので、ひとつめのユニットの残りの重み \displaystyle w_{12}^{4}, w_{13}^{4}, w_{14}^{4} とバイアス \displaystyle b_{1}^{4} についても見ていくことにしましょう。

まずは、\displaystyle w_{12}^{4} について見ていくことにします。


前回の \displaystyle w_{11}^{4} では


\displaystyle \frac {\partial En}{\partial w_{11}^{4}} = \frac {\partial En}{\partial u_{1}^{4}} \frac {\partial u_{1}^{4}}{\partial w_{11}^{4}} ・・・


の式を計算しましたが、\displaystyle w_{12}^{4} では 次の式を計算していきます。


\displaystyle \frac {\partial En}{\partial w_{12}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{12}^{4}}


ただし、の式と見比べてみると、\displaystyle \frac {\partial En}{\partial u_{1}^{4}} の部分が共通していることがわかります。
なので、その部分は \displaystyle w_{11}^{4} と同じです。

\displaystyle \frac {\partial En}{\partial u_{1}^{4}} = z_{1}^{4} - t_{1}


\displaystyle \frac {\partial u_{1}^{4}}{\partial w_{12}^{4}} については、


\displaystyle u_{1}^{4}\displaystyle = 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 w_{12}^{4}} = z_{2}^{3}


となります。


よって、


\displaystyle \frac {\partial En}{\partial w_{12}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{12}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle z_{2}^{3}


となります。

さて、残りの \displaystyle w_{13}^{4}, w_{14}^{4} についても、\displaystyle \frac {\partial u_{1}^{4}}{\partial w_{13}^{4}}, \frac {\partial u_{1}^{4}}{\partial w_{14}^{4}} だけを計算すればよさそうですね。


\displaystyle u_{1}^{4}\displaystyle = 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 w_{13}^{4}} = z_{3}^{3}

\displaystyle \frac {\partial u_{1}^{4}}{\partial w_{14}^{4}} = z_{4}^{3}


となるので、


\displaystyle \frac {\partial En}{\partial w_{13}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{13}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle z_{3}^{3}


\displaystyle \frac {\partial En}{\partial w_{14}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{14}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle z_{4}^{3}


となります。

ついでにバイアス \displaystyle b_{1}^{4} についても見ておきましょう。


\displaystyle \frac {\partial En}{\partial b_{1}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial b_{1}^{4}}


となって、重みの式とほとんど同じですね。

よって、

\displaystyle u_{1}^{4}\displaystyle = 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 b_{1}^{4}} = 1


となるので、


\displaystyle \frac {\partial En}{\partial b_{1}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial b_{1}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle 1 \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} )


となります。


最後に、いままで計算した、出力層のひとつめのユニットのそれぞれの重み更新の \displaystyle \nabla En の式を以下にまとめておきます。


\displaystyle \frac {\partial En}{\partial w_{11}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{11}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle z_{1}^{3}


\displaystyle \frac {\partial En}{\partial w_{12}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{12}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle z_{2}^{3}


\displaystyle \frac {\partial En}{\partial w_{13}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{13}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle z_{3}^{3}


\displaystyle \frac {\partial En}{\partial w_{14}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{14}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle z_{4}^{3}


\displaystyle \frac {\partial En}{\partial b_{1}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial b_{1}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle 1


以上の式から、

 (そのユニットの出力 - 教師データ)×その重みに関係した入力値

という構成になっていることがわかります。

逆伝播 - 出力層その2 - 4(重みの更新式)

f:id:celaeno42:20180723000142p:plain


さて、やっと重み \displaystyle w_{11}^{4} の更新式を求める準備ができました。

いままでの計算結果をまとめながら見ていきましょう。

前回までは、

\displaystyle \nabla En = \frac {\partial En}{\partial w_{11}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{11}^{4}}


の計算をするために特に \displaystyle \frac {\partial En}{\partial u_{1}^{4}} について見てきました。


念のため式を再掲しておきます。

\displaystyle En\displaystyle = - \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} )


\displaystyle \frac {\partial En}{\partial u_{1}^{4}}\displaystyle = - \left ( \frac {\partial}{\partial u_{1}^{4}} t_{1} \log z_{1}^{4} + \frac {\partial}{\partial u_{1}^{4}} t_{2} \log z_{2}^{4} + \frac {\partial}{\partial u_{1}^{4}} t_{3} \log z_{3}^{4} \right )  ・・・


そして、前回までに以下を求めました。

\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{1}^{4} = \displaystyle 1 - z_{1}^{4}

\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{2}^{4} = \displaystyle - z_{1}^{4}

\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{3}^{4} = \displaystyle - z_{1}^{4}


実際にの式に代入してみましょう。

\displaystyle  \begin{align*} \frac {\partial En}{\partial u_{1}^{4}} & = - \left ( \frac {\partial}{\partial u_{1}^{4}} t_{1} \log z_{1}^{4} + \frac {\partial}{\partial u_{1}^{4}} t_{2} \log z_{2}^{4} + \frac {\partial}{\partial u_{1}^{4}} t_{3} \log z_{3}^{4} \right ) \\
\\
& =  - \left ( t_{1} \frac {\partial}{\partial u_{1}^{4}} \log z_{1}^{4} + t_{2} \frac {\partial}{\partial u_{1}^{4}} \log z_{2}^{4} + t_{3} \frac {\partial}{\partial u_{1}^{4}} \log z_{3}^{4} \right ) \\
\\
& = - \left ( t_{1} \times \left ( 1 - z_{1}^{4} \right ) + t_{2} \times \left ( - z_{1}^{4} \right ) + t_{3} \times \left ( - z_{1}^{4} \right ) \right ) \\
\\
& = - \left ( t_{1} - t_{1} z_{1}^{4} - t_{2} z_{1}^{4} - t_{3} z_{1}^{4} \right ) \\
\\
& = - \left ( t_{1} - z_{1}^{4} \underline {\left ( t_{1} + t_{2} + t_{3} \right )} \right ) \\
\\
& = - \left ( t_{1} - z_{1}^{4} \right ) \\
\\
& = z_{1}^{4} - t_{1} \end{align*}


\displaystyle ( t_{1} + t_{2} + t_{3} ) は one-hot表現により 1 になります。

よって、


\displaystyle \frac {\partial En}{\partial u_{1}^{4}} = z_{1}^{4} - t_{1}


あとは残った \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{11}^{4}} です。


\displaystyle u_{1}^{4}\displaystyle = 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 w_{11}^{4}} = z_{1}^{3}


となりますので、


\displaystyle \nabla En = \frac {\partial En}{\partial w_{11}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{11}^{4}} \displaystyle = \displaystyle ( z_{1}^{4} - t_{1} ) \displaystyle \times \displaystyle z_{1}^{3}


よって、\displaystyle w_{11}^{4} の更新式は、

\displaystyle w_{11}^{4}\displaystyle w_{11}^{4}\displaystyle - \eta \nabla En = \displaystyle w_{11}^{4} \displaystyle -  \eta \left ( \frac {\partial En}{\partial w_{11}^{4}} \right ) = \displaystyle w_{11}^{4} \displaystyle -  \eta (  \displaystyle ( z_{1}^{4} - t_{1} )\displaystyle \times\displaystyle z_{1}^{3}\displaystyle )


となり、
これで求めたかった式を求めることができました。

(※ \displaystyle \eta は学習率)


途中の計算は複雑でしたが、最後は意外と簡単な式になりました。

逆伝播 - 出力層その2 - 3


さて、最後の \displaystyle \frac {\partial}{\partial u_{1}^{4}} t_{3} \log z_{3}^{4} を見ていきましょう。

計算の内容は前回とほぼ同じですが、念のためひとつひとつ見ていくことにします。

今回も前回同様、


\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{3}^{4}


この式を考えていきます。


\displaystyle z_{3}^{4} については、次のような式でした。

\displaystyle z_{3}^{4}\displaystyle = Softmax(\displaystyle u_{3}^{4}\displaystyle ) = \frac {\exp(u_{3}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})}


ここで

\displaystyle E_{3} = \log\displaystyle z_{3}^{4}

とおくと、


\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{3}^{4} = \displaystyle \frac {\partial E_{3}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial E_{3}}{\partial z_{3}^{4}} \displaystyle \frac {\partial z_{3}^{4}}{\partial u_{1}^{4}}


となります。


\displaystyle \frac {\partial E_{3}}{\partial z_{3}^{4}} = \displaystyle \frac {\partial}{\partial z_{3}^{4}} \log z_{3}^{4} = \displaystyle \frac {1}{z_{3}^{4}}


\displaystyle \frac {\partial z_{3}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial}{\partial u_{1}^{4}} \left ( \frac {\exp(u_{3}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} \right )


前回、前々回同様、次の公式を使って、

\displaystyle \left ( \frac {g(x)}{f(x)} \right )' = \displaystyle \frac {g'(x) f(x) - g(x) f'(x)}{f(x)^2} ・・・


\displaystyle \left \{ \begin{array}{ll} \,U_{3} = exp(u_{3}^{4}) &( 分子の部分)\cdots g(x) \\ \,S = exp(u_{1}^{4}) + exp(u_{2}^{4}) + exp(u_{3}^{4}) &(分母の部分)\cdots f(x) \end{array} \right.


とすると、


\displaystyle \frac {\partial U_{3}}{\partial u_{1}^{4}} = \frac {\partial}{\partial u_{1}^{4}} \exp(u_{3}^{4}) = 0


\displaystyle \frac {\partial S}{\partial u_{1}^{4}} = \frac {\partial}{\partial u_{1}^{4}} \left ( \exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4}) \right ) = \exp(u_{1}^{4})


の公式に代入すると、

\displaystyle \begin{align*}  \frac {U_{3}'S - U_{3}S'}{S^2} & = \frac {0 \times S - \exp(u_{3}^{4})\exp(u_{1}^{4})}{S^2} \\
\\
& = - \frac {\exp(u_{3}^{4}) \exp(u_{1}^{4}) }{S^2} \\
\\
& = - \frac {\exp(u_{1}^{4})}{S} \frac {\exp(u_{3}^{4})}{S} \end{align*}


ここで、

\displaystyle  \frac {\exp(u_{1}^{4})}{S} = \frac {\exp(u_{1}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} = \displaystyle z_{1}^{4}


\displaystyle  \frac {\exp(u_{3}^{4})}{S} = \frac {\exp(u_{3}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} = \displaystyle z_{3}^{4}


なので、

\displaystyle - \frac {\exp(u_{1}^{4})}{S} \frac {\exp(u_{3}^{4})}{S} = - z_{1}^{4} z_{3}^{4}


よって、
\displaystyle \frac {\partial z_{3}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial}{\partial u_{1}^{4}} \left ( \frac {\exp(u_{3}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} \right ) = \displaystyle - z_{1}^{4} z_{3}^{4}



以上から、
\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{3}^{4} = \displaystyle \frac {\partial E_{3}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial E_{3}}{\partial z_{3}^{4}} \displaystyle \frac {\partial z_{3}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {1}{z_{3}^{4}}\displaystyle \times\displaystyle \left ( - z_{1}^{4} z_{3}^{4} \right ) = \displaystyle - z_{1}^{4}


なんと、前回と同じ結果になりました。

逆伝播 - 出力層その2 - 2

前回の式を再掲しておきましょう。


\displaystyle \frac {\partial En}{\partial u_{1}^{4}}\displaystyle = - \left ( \frac {\partial}{\partial u_{1}^{4}} t_{1} \log z_{1}^{4} + \frac {\partial}{\partial u_{1}^{4}} t_{2} \log z_{2}^{4} + \frac {\partial}{\partial u_{1}^{4}} t_{3} \log z_{3}^{4} \right )


前回は、 \displaystyle \frac {\partial}{\partial u_{1}^{4}} t_{1} \log z_{1}^{4} について見ていきましたので、今回は \displaystyle \frac {\partial}{\partial u_{1}^{4}} t_{2} \log z_{2}^{4} について見ていくことにします。

前回同様、\displaystyle t_{2} は定数なのでいったん考えないでおきます。

なので今回は、


\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{2}^{4}


この式を考えていきます。


\displaystyle z_{2}^{4} については、次のような式でした。

\displaystyle z_{2}^{4}\displaystyle = Softmax(\displaystyle u_{2}^{4}\displaystyle ) = \frac {\exp(u_{2}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})}


ここで

\displaystyle E_{2} = \log\displaystyle z_{2}^{4}

とおくと、


\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{2}^{4} = \displaystyle \frac {\partial E_{2}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial E_{2}}{\partial z_{2}^{4}} \displaystyle \frac {\partial z_{2}^{4}}{\partial u_{1}^{4}}


となります。


\displaystyle \frac {\partial E_{2}}{\partial z_{2}^{4}} = \displaystyle \frac {\partial}{\partial z_{2}^{4}} \log z_{2}^{4} = \displaystyle \frac {1}{z_{2}^{4}}


\displaystyle \frac {\partial z_{2}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial}{\partial u_{1}^{4}} \left ( \frac {\exp(u_{2}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} \right )


ここで前回使った次の公式の出番です。

\displaystyle \left ( \frac {g(x)}{f(x)} \right )' = \displaystyle \frac {g'(x) f(x) - g(x) f'(x)}{f(x)^2} ・・・


\displaystyle \left \{ \begin{array}{ll} \,U_{2} = exp(u_{2}^{4}) &( 分子の部分)\cdots g(x) \\ \,S = exp(u_{1}^{4}) + exp(u_{2}^{4}) + exp(u_{3}^{4}) &(分母の部分)\cdots f(x) \end{array} \right.


とすると、


\displaystyle \frac {\partial U_{2}}{\partial u_{1}^{4}} = \frac {\partial}{\partial u_{1}^{4}} \exp(u_{2}^{4}) = 0


\displaystyle \frac {\partial S}{\partial u_{1}^{4}} = \frac {\partial}{\partial u_{1}^{4}} \left ( \exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4}) \right ) = \exp(u_{1}^{4})


の公式に代入すると、

\displaystyle \begin{align*}  \frac {U_{2}'S - U_{2}S'}{S^2} & = \frac {0 \times S - \exp(u_{2}^{4})\exp(u_{1}^{4})}{S^2} \\
\\
& = - \frac {\exp(u_{2}^{4}) \exp(u_{1}^{4}) }{S^2} \\
\\
& = - \frac {\exp(u_{1}^{4})}{S} \frac {\exp(u_{2}^{4})}{S} \end{align*}


ここで、

\displaystyle  \frac {\exp(u_{1}^{4})}{S} = \frac {\exp(u_{1}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} = \displaystyle z_{1}^{4}


\displaystyle  \frac {\exp(u_{2}^{4})}{S} = \frac {\exp(u_{2}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} = \displaystyle z_{2}^{4}


なので、

\displaystyle - \frac {\exp(u_{1}^{4})}{S} \frac {\exp(u_{2}^{4})}{S} = - z_{1}^{4} z_{2}^{4}


よって、
\displaystyle \frac {\partial z_{2}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial}{\partial u_{1}^{4}} \left ( \frac {\exp(u_{2}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} \right ) = \displaystyle - z_{1}^{4} z_{2}^{4}



以上から、
\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{2}^{4} = \displaystyle \frac {\partial E_{2}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial E_{2}}{\partial z_{2}^{4}} \displaystyle \frac {\partial z_{2}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {1}{z_{2}^{4}}\displaystyle \times\displaystyle \left ( - z_{1}^{4} z_{2}^{4} \right ) = \displaystyle - z_{1}^{4}

逆伝播 - 出力層その2 - 1

f:id:celaeno42:20180723000142p:plain

さて前回で、\displaystyle \nabla En = \frac {\partial En}{\partial w_{11}^{4}} を求めれば、重みを更新することができることがわかりました。

今回は、具体的に式の内容を見ていきたいと思います。


\displaystyle \frac {\partial En}{\partial w_{11}^{4}} は連鎖率により、


\displaystyle \frac {\partial En}{\partial w_{11}^{4}} = \displaystyle \frac {\partial En}{\partial u_{1}^{4}} \displaystyle \frac {\partial u_{1}^{4}}{\partial w_{11}^{4}}


となりますので、それぞれの項について見ていくことで、最終的に \displaystyle \frac {\partial En}{\partial w_{11}^{4}} を求めることができます。


まずは \displaystyle \frac {\partial En}{\partial u_{1}^{4}} について見ていきましょう。

損失関数が以下の式で表されることを思い出してください。

\displaystyle En\displaystyle = - \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} )


この式を \displaystyle u_{1}^{4}偏微分していきます。


\displaystyle \frac {\partial En}{\partial u_{1}^{4}}\displaystyle = - \left ( \frac {\partial}{\partial u_{1}^{4}} t_{1} \log z_{1}^{4} + \frac {\partial}{\partial u_{1}^{4}} t_{2} \log z_{2}^{4} + \frac {\partial}{\partial u_{1}^{4}} t_{3} \log z_{3}^{4} \right )


では、ひとつ目の項 \displaystyle \frac {\partial}{\partial u_{1}^{4}} t_{1} \log z_{1}^{4} について見ていきましょう。
まず、\displaystyle t_{1} は定数なのでいったん考えないでおきます。

今回は、


\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{1}^{4}


これで考えを進めていきましょう。


\displaystyle z_{1}^{4} は次のような式だったことを思い出してください。

\displaystyle z_{1}^{4}\displaystyle = Softmax(\displaystyle u_{1}^{4}\displaystyle ) = \frac {\exp(u_{1}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})}


ここで

\displaystyle E_{1} = \log\displaystyle z_{1}^{4}

とおくと、


\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{1}^{4} = \displaystyle \frac {\partial E_{1}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial E_{1}}{\partial z_{1}^{4}} \displaystyle \frac {\partial z_{1}^{4}}{\partial u_{1}^{4}}


となります。


\displaystyle \frac {\partial E_{1}}{\partial z_{1}^{4}} = \displaystyle \frac {\partial}{\partial z_{1}^{4}} \log z_{1}^{4} = \displaystyle \frac {1}{z_{1}^{4}}


\displaystyle \frac {\partial z_{1}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial}{\partial u_{1}^{4}} \left ( \frac {\exp(u_{1}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} \right )


ここで次の公式を使います。

\displaystyle \left ( \frac {g(x)}{f(x)} \right )' = \displaystyle \frac {g'(x) f(x) - g(x) f'(x)}{f(x)^2} ・・・


\displaystyle \left \{ \begin{array}{ll} \,U_{1} = exp(u_{1}^{4}) &( 分子の部分)\cdots g(x) \\ \,S = exp(u_{1}^{4}) + exp(u_{2}^{4}) + exp(u_{3}^{4}) &(分母の部分)\cdots f(x) \end{array} \right.


とすると、


\displaystyle \frac {\partial U_{1}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial}{\partial u_{1}^{4}} \exp(u_{1}^{4}) = \displaystyle \exp(u_{1}^{4})  \displaystyle \left ( ※ \left ( \exp(x) \right )' = \left ( e^{x} \right )' = e^{x} \right )


\displaystyle \frac {\partial S}{\partial u_{1}^{4}} = \frac {\partial}{\partial u_{1}^{4}} \left ( \exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4}) \right ) = \exp(u_{1}^{4})


の公式に代入すると、

\displaystyle \begin{align*}  \frac {U_{1}'S - U_{1}S'}{S^2} & = \frac {\exp(u_{1}^{4})S - \exp(u_{1}^{4})\exp(u_{1}^{4})}{S^2} \\
\\
& = \frac {\exp(u_{1}^{4})}{S} \left ( \frac {S - \exp(u_{1}^{4})}{S} \right ) \\
\\
& = \frac {\exp(u_{1}^{4})}{S} \left ( 1 - \frac {\exp(u_{1}^{4})}{S} \right ) \end{align*}


ここで、

\displaystyle  \frac {\exp(u_{1}^{4})}{S} = \frac {\exp(u_{1}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} = \displaystyle z_{1}^{4}


なので、

\displaystyle \frac {\exp(u_{1}^{4})}{S} \left ( 1 - \frac {\exp(u_{1}^{4})}{S} \right ) = z_{1}^{4} \left ( 1 - z_{1}^{4} \right )


よって、
\displaystyle \frac {\partial z_{1}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial}{\partial u_{1}^{4}} \left ( \frac {\exp(u_{1}^{4})}{\exp(u_{1}^{4}) + \exp(u_{2}^{4}) + \exp(u_{3}^{4})} \right ) = \displaystyle z_{1}^{4} \left ( 1 - z_{1}^{4} \right )



以上から、
\displaystyle \frac {\partial}{\partial u_{1}^{4}} \log z_{1}^{4} = \displaystyle \frac {\partial E_{1}}{\partial u_{1}^{4}} = \displaystyle \frac {\partial E_{1}}{\partial z_{1}^{4}} \displaystyle \frac {\partial z_{1}^{4}}{\partial u_{1}^{4}} = \displaystyle \frac {1}{z_{1}^{4}}\displaystyle \times\displaystyle \left ( z_{1}^{4} \left ( 1 - z_{1}^{4} \right ) \right ) = \displaystyle 1 - z_{1}^{4}

逆伝播 - 出力層その1

f:id:celaeno42:20180723000142p:plain

それでは、いよいよ逆伝播を使って重みとバイアスの更新をしていきましょう。

逆伝播はその名の通り、順伝播の逆の手順を行っていくイメージです。
順伝播でたどってきた道筋を微分しながら逆に戻っていきます。

ニューラルネットワークでは、重みとバイアスの値を更新していきたいので、それぞれの重みとバイアスについて考えていきます。

まずは出力層の1つめのユニットの1つめの重み \displaystyle w_{11}^{4} について見ていくことにします。

損失関数の値を小さくするために \displaystyle w_{11}^{4} の値を調整したいのですが、その更新式は


\displaystyle w_{11}^{4}\displaystyle w_{11}^{4}\displaystyle - \eta \nabla En = \displaystyle w_{11}^{4} \displaystyle -  \eta \left ( \frac {\partial En}{\partial w_{11}^{4}} \right )


のようになります。(※ \displaystyle \eta は学習率)

つまり、\displaystyle \nabla En = \frac {\partial En}{\partial w_{11}^{4}} を求めれば、重みを更新することができます。


\displaystyle \frac {\partial En}{\partial w_{11}^{4}} は連鎖率により、


\displaystyle \frac {\partial En}{\partial w_{11}^{4}} = \frac {\partial En}{\partial u_{1}^{4}} \frac {\partial u_{1}^{4}}{\partial w_{11}^{4}}


で求められます。
次回以降はこの式を見ていきたいと思います。