機械学習のための微分(復習)

Python, ML, Math14 January 2021

機械学習において微分が超重要ということで、主要な微分関連をまとめます。
教材として、キカガクの脱ブラックボックスコースをメインで使用するのでそのサマリとなります。

前提

微分とはある関数の接線の傾きを求めること。(と習った)
ある関数f(x)の微分は以下の式で算出できる

$$ f'(x) = lim_{h \to 0} \frac{f(x+h)-f(x)}{h} $$

基本公式

  • 定数

    $$ C' = 0 $$

  • 累乗

    $$ (x^n)' = nx^{n-1} $$

  • ネイピア数

    $$ (e^{ax})' = ae^{ax} $$

  • 対数(log)

    $$ (\log_x)' = \frac{1}{x} $$

合成関数の微分

以下のように、関数を微分してるもの

$$ f(x) = (5x + 3)^2 $$
$$ f'(x) = \{ (5x + 3)^2 \}' $$

ここで、内部の(5x + 3)をuで置き換えると

$$ u = 5x + 3 $$
$$ f(u) = u^2 $$

連鎖律

合成関数の微分では連鎖律という仕組みを用いて、uの微分から本来求めたいxの微分を算出できる

$$ \frac{df(x)}{dx} = \frac{df(x)}{du} \times \frac{du}{dx} $$

これは、duを打ち消せる(分数の性質上)ことからもわかります。
よって上記をそれぞれ計算すると、

$$ \frac{df(x)}{du} = 2u $$
$$ \frac{du}{dx} = 5 $$
$$ \frac{df(x)}{dx} = 2u \times 5 = 10u = 10(5x + 3) $$

偏微分

複数の変数を持つ関数を、ある1つの変数に着目して微分すること。
着目する変数以外は定数としてミナス

変数x, yを持つ以下のような関数を考える

$$ f(x, y) = 3x + 2y $$

ここで、xで偏微分すると以下のようになる

$$ \frac{\partial}{\partial x} = 3 + 0 $$

2yは定数としてミナスので0

また、

$$\partial$$

はラウンドディー(もしくはディー)と読む

tags: Python, ML, Math