シグモイド関数の微分は、機械学習の誤差逆伝搬法で登場したが微分の際に意味が分からなかったので高校数学を復習してみた。
前提
sigmoid(z) = \frac{1}{1 + e^{-z}}
結論
f(z) = sigmoid(z) \\
とした時、
f(z)' = (1 - f(z)) \cdot f(z)
導出
シグモイド関数を使いやすく式変形すると以下の式になる。
f(z) = (1 + e^{-z})^{-1} \tag{1}
ここで、
1 + e^{-z} = u \tag{2}
とおくと、
f(z) = u^{-1} \tag{3}
と、f(z)を表せる。
(2)(3)を微分して
\frac{du}{dz} = -e^{-z} \tag{4}
\frac{dy}{du} = -u^{-2} = -(1 + e^{-z})^{-2} \tag{5}
合成関数の微分の公式に(4)(5)を当てはめて
\frac{dy}{dz} = \frac{1}{(1 + e^{-z})^2} \cdot e^{-z} \tag{6}
(6)を式変形して
\frac{dy}{dz} = \frac{e^{-z}}{1 + e^{-z}} \cdot \frac{1}{1 + e^{-z}} \tag{7}
(7)の右辺の左側を変形して
\frac{e^{-z}}{1 + e^{-z}} = \frac{1 + e^{-z}}{1 + e^{-z}} - \frac{1}{1 + e^{-z}} \tag{8}
(7)に(8)を当てはめると
\frac{dy}{dz} = \left( \frac{1 + e^{-z}}{1 + e^{-z}} - \frac{1}{1 + e^{-z}} \right ) \cdot \frac{1}{1 + e^{-z}} \tag{9}
シグモイド関数の
f(z) = \frac{1}{1 + e^{-z}}
を(9)に当てはめられるので
f(z)' = (1 - f(z)) \cdot f(z)
となり、最初に示した形になる。
合成関数の微分
\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx}
参考
シグモイド関数を微分してみたよ
※参考サイトでは、dz/du=e^-zとしていますが間違っており、正しくは-e^-zなのでご注意ください。