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

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

今回は、偏微分を見ていきます。


参考サイト
Sci-pursuit(偏微分の意味とやり方)

多変数関数の変数のうち、1つの変数の変化だけを追うようにして、他の変数は定数とみなす方法が偏微分です。

偏微分の計算は、微分の公式

式1
4-2-2.png

を使って行います。

それでは、式2の2変数関数について、

式2
4-2-1.png

それぞれ u と v の偏微分をしてみます。
ここでの( )は、定数として扱う部分、という意味で使っています。

式3 変数 u に対する偏微分
4-2-3.png

式3では微分の対象ではない v を定数とみなすことができるものの、どんなときでも消去できるわけではないことに注意する必要があります。微分の公式に則って、ピンク色の部分のように微分することになります。

式4 変数 v に対する偏微分
4-2-4.png


偏微分は、3種類以上の変数の関数に対しても行うことができます。

ここでは3種類のそれぞれの変数に対する微分を見ていきます。

式5 3変数関数
4-2-5.png

式6 変数 u に対する偏微分
4-2-6.png

式7 変数 v に対する偏微分
4-2-7.png

式8 変数 w に対する偏微分
4-2-8.png


この3変数関数に対する偏微分をPythonでも確認してみます。

参考サイト
SYSTEM GUARDIAN(Python 偏微分で大満足カレーを作る Matplotlib)

--------------------
import sympy as sym
sym.init_printing()
from IPython.display import display

(u,v,w) = sym.symbols("u,v,w")

targetFunc = (2 * u**3) + (7 * v**2) + (5 * w**4) - (3 * u * v) + (2 * v * w**2) + u + (4 * v) + 5

def PartialDiff(PD):
 du = sym.diff(PD, u)    # uで偏微分
 dv = sym.diff(PD, v)    # vで偏微分
 dw = sym.diff(PD, w)   # wで偏微分
 return du, dv, dw

def main():
 du, dv, dw = PartialDiff(targetFunc)
 print("3変数関数:")
 display(targetFunc)
 print("uで偏微分:")
 display(du)
 print("vで偏微分:")
 display(dv)
 print("wで偏微分:")
 display(dw)

if __name__ == '__main__':
 main()

--------------------
出力結果
4-2-9.png


偏微分は思ったほど難しくなくてよかったです。
でも、次の全微分はややこしそうw

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

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

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