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

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

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

関数と関数を掛けたものを微分する……えっ、何でそんな面倒なことするの?

と思ったりもしておりますが、計算は可能なので、見ていきます。

積の微分では、f(x)とg(x)を掛け合わせたものを微分するわけですが、
その際に、f '(x)の接線の接触部分である接点を中心に拡大すると直線とほとんど同じになることから、

ディープラーニングG検定の勉強中 その9(微分と関数値の近似、極大・極小)
の中で、関数と微分の近似の式を導き出しています。


であれば、g'(x)も同様に当てはまることになります。それが式1です。

式1
2-6-1.png

積の微分では、式1を利用して2つの関数から算出します。
式1をf(x)とg(x)の積の形に変形します。

式2
2-6-2.png

そもそもの微分の式は、以下ですが、

式3
2-3-1-7.png

その式の分子をf(x)とg(x)の積に応用します。

式4
2-6-3.png

この式4は、式2に置き換えることができるので、これを計算すると、式5となります。

式5
2-6-4.png

式5に置き換えているのは、積の微分を計算可能とするためです。
この式は、積の微分の式の分子部分となります。


ここで、式3を積の微分に応用した式6によって、計算しますが、

式6
2-6-5.png

このままでは、計算し辛いため(※)、

※このことを説明しているサイト
高校数学の美しい物語(積の微分公式とその証明の味わい)

分子を式5と入れ替えて計算を行い、積の微分を算出します。

式7
2-6-6.png


それでは、実際に異なる2つの関数(式8)を代入して計算してみます。

式8
2-6-7.png

式9
2-6-8.png

式9で算出された積の微分が正しいかどうか、Pythonで検算してみます。

参考サイト
note.nkmk.me(Python, SymPyの使い方(因数分解、方程式、微分積分など))
Python 数値計算入門([SymPy] 多項式の展開と因数分解)

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

x = sympy.Symbol('x')

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

fxgx = sym.expand(fx * gx)  # f(x) × g(x)

sym.Eq(sym.Derivative(fx*gx), sym.diff(fxgx))  # 積の微分の式、その計算結果とその出力

--------------------
出力結果

2-6-9.png

式9と同じ結果となりました。
Pythonでは式や計算結果を整形して出力する機能があるのでこれも便利ですね。
積の微分では、今回の方法の他に「仲介役」を挟んで計算する方法もあるので(上記数学サイトに記載があります)、こちらも理解しておきます。

進捗状況

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

ディープラーニングG検定の試験日まであと54日

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

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

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