ディープラーニングG検定の勉強中 その13(商の微分)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、商の微分についてです。

f(x)をg(x)で割ったものを微分したもの

式1
2-8-1.png

について見ていきます。

参考サイト
KIT数学ナビゲーション(基本的な関数の微分 1/x)
KIT数学ナビゲーション(合成関数を微分する手順)

式1の、

式2
2-8-2.png

となります。

よって、積の微分の公式により、

式3
2-8-3.png

が成り立ちます。
ただし、h'(x)のままでは計算できないため、一旦式を分解してから、合成関数の形にして計算できるようにします。

まずは、式2のg(x)の分数表示を、分数の指数表示にします。

式4
2-8-4.png

ここで、g(x)を u に置き換えて、2つの関数に分解します。

式5
2-8-5.png

①をdy/duとして、微分します。

式6
2-8-6.png

②をdu/dxとして、微分します。

式7
2-8-7.png

①と②に分解した微分を合成関数の微分の公式に代入します。

式8 合成関数の微分の公式
2-8-8.png

式9
2-8-9.png

これで、計算可能な形になったので、式3に代入して、

式10
2-8-10.png

この式10で導き出された式が商の微分の公式となります。


それでは、商の微分の公式に、実際の関数を代入してみます。

以下の2つの関数があるときに、

式11
2-8-12.png

商の微分の公式、
式12
2-8-11.png

に代入すると、式13となり、

式13
2-8-13.png

これを計算すると、式14の、2つの関数による商の微分の結果となります。

式14
2-8-14.png


この計算結果の検算として、Pythonでも確かめてみます。

--------------------
import sympy as sym

x = sym.Symbol('x')

fx = 2 * x**3 + 4 * x**2  #f(x)
gx = 3 * x**4      # g(x)

fxd = sym.diff(fx)    # f '(x)
gxd = sym.diff(gx)   # g '(x)

fxgx = ((fxd * gx) - (fx * gxd))   # 商の微分の公式の分子の計算

sym.Eq(sym.Derivative(fx/gx), sym.expand(fxgx / (gx**2)))

--------------------
出力結果
2-8-15.png


Pythonで商の微分をsympy.diff()だけで行おうとすると、出力結果が分かりにくいものとなるため、
今回は、計算が単純になるようにしてから微分しています。


商の微分の次は積分ですが、テキストの第6章までは特に活用されないみたいなので、
先に次の章となる、ベクトル・行列の勉強に進みます。


ディープラーニングG検定の勉強の進捗状況

最短コースでわかるディープラーニングの数学
76/328(23.2%)

"ディープラーニングG検定の勉強中 その13(商の微分)" へのコメントを書く

お名前[必須入力]
メールアドレス
ホームページアドレス
コメント[必須入力]

※ブログオーナーが承認したコメントのみ表示されます。