2019/04/23

2020/04/14

数値微分を具体例を用いてわかりやすく解説!

ニューラルネットワーク

ライター:

この記事では数値微分について解説します。

数値微分は具体的な計算を用いて関数の傾きを求めます。この数値微分は解析的に解けない関数の傾きを求めるのに有効な手法です。

数値微分は勾配法といったアルゴリズムなどにも用いられています。

数値微分

数値微分の仕組み

高校で学習した数学の記憶をたよりに微分の定義を思い出してみましょう。以下のような微分の定義がありましたね。

 

\( f'(x) = \lim_{h \to 0}\displaystyle \frac{f(x+h) – f(x)}{h} \)

 

\( f'(x) \)をコンピューターを用いて求めるにはどうすればよいでしょう。極限といった問題はコンピューターで解くことは困難であることが知られています。

ですので、以下のように考えることができます。

 

\( f'(x) = \displaystyle \frac{f(x+h) – f(x)}{h} \)

\( h \)を微小な値とする。

 

このように導関数を近似を用いて求める手法を数値微分と呼びます。上記は数値微分の一つの手法で2点近似と呼ばれます。

コンピューターでは以下のように計算を行います。

 

\( h = 0.001 \)とすると

 

\( f'(x) = \frac{f(x+0.001) – f(x)}{0.001} \)

 

コンピューターの能力をいかした計算方法ですね。数値微分は誤差を許す一方で解析的に解けない関数の傾きを求められるという長所があります。

また、数値微分は必ず誤差が生じてしまいます。この誤差は\( h → 0 \)を極限まで近づけることができないために生じるものです。

この誤差を小さくするため、上で紹介した数値微分の改良した中心差分近似という手法があります。中心差分近似では以下のように導関数を求めます。

 

\( f'(x) = \displaystyle \frac{f(x+h) – f(x-h)}{2h} \)

 

計算量が増える一方で、誤差を小さくすることができます。

では、どれだけの誤差が生じているか、二点近似、中心差分近似、それぞれを用いて具体的に確認してみましょう。

数値微分と誤差

\( f(x) = x^3 \)の\( x = 0, 5, 10\)での傾きを考えます。

微分法、二点近似と中心差分近似、それぞれを用いて傾きを求めます。

ここでは微小値\( h = 0.001 \)とします。

 

微分法では\( f'(0) = 0, f'(5) = 75,f'(10) = 300  \)と求まります。これが傾きの真の値です。

二点近似では\( f'(0) = 0.001, f'(5) = 75.015,f'(10) = 300.3 \)と求まります。

また中心差分近似では\( f'(0) = 0, f'(5) = 75.000001,f'(10) = 300.000001 \)と求まります。

 

二点近似と中心差分近似の誤差を比べてみましょう。二点近似の方が誤差が大きくなっています。

中心差分近似のほうが傾きを正確に近似していることが分かります。

まとめ

今回は数値微分について解説しました。この数値微分は解析的に解けない問題を無理やり解くことができる点が強力です。

数値微分を用いて強引に傾きを求めることで、複雑な関数の最小値、最大値といった問題を考えることができるようになります。

(totalcount 29,459 回, dailycount 62回 , overallcount 16,405,231 回)

ライター:

ニューラルネットワーク

single-banner

COMMENT

コメントを残す

メールアドレスが公開されることはありません。
*は必須項目です。




CAPTCHA