ディープラーニングでは勾配降下法によってパラメータを更新する。
そのとき数値微分によって勾配の計算ができる。
しかし、時間がかかるので、誤差逆伝播法というものが使われる。
誤差逆伝播法を理解する上で合成関数の微分と連鎖律を理解する必要がある。
以下に、それぞれの説明をしていく。
合成関数
合成関数とは複数の関数によって構成される関数のことである。以下のような式が例になる。
z=t^2 \\
t=x+y \\
連鎖律とは合成関数の微分についての性質である。以下のように定義される。(これを連鎖律の原理と言う。)
ある関数が合成関数で表される場合、
その合成関数の微分は、
合成関数を更生するそれぞれの関数の微分の席によって表すことができる。
これを式で表すと以下のようになる。
\frac{dz}{dx} = \frac{dz}{dt}\frac{dt}{dx}
計算してみる。
以下を「連鎖律の原理」を用いて計算していく。
z=t^2 \\
t=x+y \\
このときの、\frac{dz}{dx}を求める。
このz, tを微分する。
\frac{dz}{dt}=2t (tに関するzの微分) \\
\frac{dt}{dx}=1 (xに関するtの微分) \\
微分したものを代入する。
「連鎖律の原理」より
\frac{dz}{dx}= \frac{dz}{dt}\frac{dt}{dx}と言える。代入すると、 \\
\begin{align}
\frac{dz}{dx} &= \frac{dz}{dt}\frac{dt}{dx} \\
&= 2t * 1\\
&= 2t
\end{align}
よって、t=x+yなので、以下が答えになる。
\frac{dz}{dx} = 2(x+y)
##おまけ
```math
の
qiitaの数式モード(texモード?)のときの「の」がやけにおそろ恐ろしい。
```math
の