LoginSignup
11
11

More than 5 years have passed since last update.

合成関数の微分と連鎖律について

Posted at

参考:ゼロから作るDeep Learning(p130)

ディープラーニングでは勾配降下法によってパラメータを更新する。
そのとき数値微分によって勾配の計算ができる。
しかし、時間がかかるので、誤差逆伝播法というものが使われる。

誤差逆伝播法を理解する上で合成関数の微分と連鎖律を理解する必要がある。
以下に、それぞれの説明をしていく。

合成関数

合成関数とは複数の関数によって構成される関数のことである。以下のような式が例になる。

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モード?)のときの「の」がやけにおそろ恐ろしい。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11