当サイトについて知りたい方はこちら

機械学習と数学:微分の定義

機械学習ではしばしば微分を計算することがあります。Pythonで使える機械学習ライブラリで実装をする場合には、とりわけ微分の知識が必要になることは少ないですが、教養として理解しておくと良いと思います。

ここでは、高校数学で勉強する、「微分」をさらっと学びます。

微分とは?

微分は、ある関数の導関数を求めることを指します。例えば機械学習では、関数の最小化問題を解かなければならない場合があります。ある関数f(x)が最小となるxを探すには、f(x)の導関数を求めなければなりません。このような時に、微分が必要になるのです。

ある関数の微分は、その関数における接線の傾きを意味します。簡単な例として、関数f(x) = x^2の場合を考えます。f(x)のx=4における接線と、f(x)をグラフに表すと、次のようになります。

関数y=x^2と、x=4における接線(Excelで作成)

接線は文字通り関数と接している線です。この接線は基準とするxをどこに設定するかによって傾きが変化します。この傾きは、導関数と一致していることが知られています。したがって、接線の傾きをxの関数として表せば、f(x)の導関数を求めることができそうです。

では、どのようにして接線の傾きをxで表現すれば良いのでしょうか。ここで、関数の2つの点に注目したいと思います。

その2つの点は、(x,f(x))と(x+h,f(x+h))です。hは実数を示しています。

2つの点を定義する

ここで、この2点を通る直線の傾きを計算したいと思います。傾きは、(yの変化量)/(xの変化量)で求められるので、傾き=(f(x+h)-f(x))/hとなります。

この傾きの式は、xとhの2つの文字で表されています。これをxだけの式にするには、hを消せば良さそうです。

hをひたすら0に近づけていくと、2点間の距離は狭まり、やがて1つの点に収束します。つまり、先ほどの傾きの式でhを0に近づけた際の極限を求めればf'(x)をxの関数として導出することができます。

これより、微分の定義を示す式が導出されます。ある関数f(x)の導関数f'(x)は、次のような式で表すことができます。

微分の定義式

微分の定義式から導関数を計算する

先ほど求めた式を使って、導関数を計算したいと思います。

例:f(x) = x^2の場合

f'(x) = (x+h)^2 – x^2/h = (x^2 + 2hx + h^2 – x^2)/h = ( h^2 + 2hx)/h = h + 2x → 2x

簡単に計算できました。関数f(x) = x^2の導関数は2xです。

微分の公式

ここで、f(x) = x^n(nは実数)と表される関数の導関数を求める公式を紹介します。

微分の公式

これを覚えておけば、一瞬で導関数を計算することができます。

例1$$f(x)= x^3$$

$$f'(x) = 3x^2$$

例2 $$ f(x) = x^5 $$

$$ f'(x) = 5x^4 $$

今回は、微分の定義を紹介し、簡単な関数を微分する方法を学習しました。次回の「機械学習と数学」では、三角関数や対数の微分を学びます。

タイトルとURLをコピーしました