デジタル・デザイン・ラボラトリーな日々

アラフィフプログラマーが数学と物理と英語を基礎からやり直す。https://qiita.com/yaju

機械学習に使われる微分の数式を理解してみる(シグモイド関数)

はじめに

機械学習関連の本や記事を見るたびに出てくる微分の数式、これを理解しないと自分は先に進めない。
しばらくはシリーズで取り組みたいと思います。

以前の記事で、シグモイド関数微分を導出してみました。再度、一から見直していきます。
yaju3d.hatenablog.jp

シグモイド関数微分

前提

sigmoid(x) = \displaystyle \frac{1}{1 + e^{-x}}

結論

f(x)=sigmoid(x) とした時、
f(x)′=f(x)(1−f(x))

導出

前回の記事では、逆数の微分公式をそのまま使用しました。
\displaystyle \left(\frac {1}{f}\right)^{\prime}=\frac{−f^{\prime}}{f^{2}} です。

逆数の微分公式

まずは、 逆数の微分公式がなぜこうなるのか、どこから2乗がでてくるのかを理解していきます。

その前に分子に分数を含む式の計算を理解しておく必要があります。
manapedia.jp

分子に分数を含む式
\displaystyle \frac{\left(\frac{1}{2}\right)}{4}
これは、下記のように変更できます。
\displaystyle \frac{\left(\frac{1}{2}\right)}{4}  = \frac{1}{2}  \div 4 = \frac{1}{2}  \times \frac{1}{4} =  \frac{1}{8}

次は、微分の定義式で下記の数式になっています。
 \displaystyle\lim_{h\to 0}\dfrac{f(x+h)-f(x)}{h}=f'(x)

これを逆数にするので下記のようになります。
\displaystyle \left(\dfrac{1}{f(x)}\right)' = \displaystyle\lim_{h\to 0}\dfrac{\frac{1}{f(x+h)}-\frac{1}{f(x)}}{h}

これを展開していきます。先ずは分子の分母を通分します。
= \displaystyle\lim_{h\to 0}\dfrac{\dfrac{f(x)-f(x+h)}{f(x+h)f(x)}}{h}

分子に分数を含む式なので変形します。
= \displaystyle\lim_{h\to 0}\dfrac{f(x)-f(x+h)}{f(x+h)f(x)} \div h

= \displaystyle\lim_{h\to 0}\dfrac{f(x)-f(x+h)}{f(x+h)f(x)} \times \dfrac{1}{h}

= \displaystyle\lim_{h\to 0}\dfrac{f(x)-f(x+h)}{h(f(x+h)f(x))}

これを下記のように分解すると微分の定義式f'(x)が見えてきます。
=\displaystyle\lim_{h\to 0}-\dfrac{1}{f(x)f(x+h)}\cdot\dfrac{f(x+h)-f(x)}{h}

=\displaystyle\lim_{h\to 0}-\dfrac{1}{f(x)f(x+h)}\cdot f'(x)

 h は極限で  0 として扱うので無視します。

=\displaystyle\lim_{h\to 0}-\dfrac{1}{f(x)f(x+0)}\cdot f'(x)

=-\dfrac{f'(x)}{f(x)^{2}}

これで逆数の微分公式が求まりました。

e の微分公式

公式 (e^{x})^\prime = e^{x}

符号違いのもう一つ公式を求めます。
公式 (e^{-x})^\prime = -e^{-x}

導出するにはチェーンルール(合成関数の微分公式)を用いて求めます。
y=e^{u}u=-x とおいて、\displaystyle  y\prime=\frac{dy}{du}\frac{du}{dx}=e^{u}\cdot(-1)=-e^{-x}

シグモイド関数微分

ここからシグモイド関数を逆数の微分公式を使用して微分します。

シグモイド関数1+exp(−x) の逆数なので
f^{\prime}(x)=\left(\displaystyle \frac {1}{1+exp(−x)}\right)^{\prime}

逆数の微分公式 -\dfrac{f'(x)}{f(x)^{2}} を当てはめます。

=\displaystyle \frac{-(1+exp(-x))^{\prime}}{(1+exp(-x))^{2}}

分子は微分するので1は消えます。
=\displaystyle \frac {-(-exp(−x))}{\left(1+exp(−x)\right)^{2}}
公式 (e^{-x})^\prime = -e^{-x} を当てはめると分子の符号がプラスになります。
=\displaystyle \frac {exp(−x)}{\left(1+exp(−x)\right)^{2}}

式を分解して分けます。分ける理由は、定義の式f(x)が出てくるようにするためです。
=\displaystyle \frac {1}{1+exp(−x)} \frac {exp(−x)}{1+exp(−x)}

=\displaystyle \frac {1}{1+exp(−x)} \left(\frac {1+exp(−x)}{1+exp(−x)}−\frac {1}{1+exp(−x)}\right)

=\displaystyle \frac {1}{1+exp(−x)} \left(1−\frac {1}{1+exp(−x)}\right)

ここで、
f(x)=\displaystyle \left(\frac {1}{1+exp(-x)}\right)
であるから、式を当てはめると

=f(x)\left(1−f(x)\right)

最後に

定義の式が出てくるように式を変形するという部分は難しいですね。
今回は、偏微分や合成関数などの出てきてません。まーやり方はいろいろあるので次回は使っていきます。