読者です 読者をやめる 読者になる 読者になる

微分について

機械学習 確率統計

微分をご存知でしょうか?

関数{f(x)}に対する微分は次の式で定義できますね
 {
\frac{df(x)}{dx}  =  \lim_{h \to 0}\frac{f(x+h)-f(x)}{h}
}

微分はでは関数{f(x)}の点{x}における接線の傾きを表します。
例えば、{f(x) = x^2}の関数を考えます。図で表すと以下のようになります。

f:id:ogidow:20170220084146p:plain

ここで{x=4}の点に接線を引きます。
f:id:ogidow:20170220085549p:plain

この緑の線の傾きが微分によって求めることができます。

では、任意の{x}の傾きを求めることができると何が嬉しいのでしょうか?

例えば、{f(x) = x^2}が体重とかコストとかを近似できると仮定します。体重もコスト小さいに越したことはないでしょう。
何らかのパラメータxが4の時、微分の値は{\frac{df(x)}{dx}  = 8 > 0}となりパラメータを小さくすれば、{f(x)}が最小になりそうだなと推測することができます。また、{f(x)}が最小の点で接線はx軸に水平になるので。{\frac{df(x)}{dx}  = 0}となり、{f(x)}は(厳密には違いますが)最小だと推測することができます。

何となく微分ができれば関数の最小値を求めることができて便利そうだなということがわかりました。
でもなぜ、微分で接線の傾きを求めることができるのでしょうか。直線の式といえば{y = ax + b}で表されます。
直線の傾きと呼ばれる部分は{a}です。中学校などで{(x1,y1),(x2, y2)}を通る直線の傾きは{a = \frac{yの増加量}{xの増加量} = \frac{y2 - y1}{x2 - x1}}と習ったと思います。
しかし、部分ではある1点における傾きを求めるので上記の方法は使うことができません。

ではどうするのでしょうか。{f(x) = x^2}として、
{(x1,y1),(x2, y2)}ではなく{(x,f(x)), (x + h, f(x + h)}と考えてみます。すると、2点を通る直線の傾きは{a =  \frac{f(x + h) - f(x)}{x + h - x} = \frac{f(x + h) - f(x)}{h}}と書けます。求めたいのは2点を通る直線の傾きではなく1点を通る直線の傾きです。{h}が限りなく0になれば2点ではなく1点を通る直線になりそうです。
{\lim_{h \to 0}\frac{f(x+h)-f(x)}{h}}としてhを限りなく0に近づけると、微分の定義戻りました。
微分によって、関数の最小値を求めることができると単回帰分析などでサンプルしたデータ群を元にデータを近似したモデルを作ることができるようになるのですがそれは別の記事で書きます。