MATLAB,Python,Scilab,Julia比較 第4章 その38【多変量関数の連鎖律②】

MATLAB,Python,Scilab,Julia比較 第4章 その38【多変量関数の連鎖律②】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その38【多変量関数の連鎖律②】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia4-backnumber/

はじめに

多変量関数の連鎖律の解説。
今回は合成関数の微分。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

【再掲】多変量関数の連鎖律を把握するための知識

太郎くん
太郎くん

前回から多変量関数の連鎖律の話に突入。
とりあえず必要な知識を再掲。

  • 合成関数(済)
  • 合成関数の微分(連鎖律)
  • 多変数関数の連鎖律
  • 学習データの多入力による暗黙的関数追加
フクさん
フクさん

今回は合成関数の微分。

合成関数の微分(連鎖律)

フクさん
フクさん

合成関数の微分の話になるが、
これがいわゆる連鎖律と言うものになる。

太郎くん
太郎くん

あれ?
連鎖律を理解するためにいろいろやってるのに、
途中で連鎖律の話になっちゃうの?

フクさん
フクさん

実際に目的としているのは、多変量関数の連鎖律を経た勾配降下法だ。
今回の合成関数の微分こと連鎖律は多変量ではないし、勾配降下法を実施するところまでは至らないな。

太郎くん
太郎くん

なるほど。
まずは入出力が1つの関数の話が合って、
そのあとに多変量にしたものを考えるってことか。

フクさん
フクさん

そうそう。

合成関数の微分をしたい関数の構成

フクさん
フクさん

まず今回、合成関数の微分を行いたい関数の構成を図示しよう。

合成関数の微分を行いたい関数、x、g(x)、u、f(u)、y
太郎くん
太郎くん

数式にすると以下になるパターンだね。

\(
\begin{eqnarray}
y&=&f(u)\\
u&=&g(x)\\
y&=&f(g(x))\\
\end{eqnarray}
\)

フクさん
フクさん

そうそう。

合成関数の微分の公式

フクさん
フクさん

先ほどの関数の構成で合成関数の微分をすると以下が成立する。

\(
\displaystyle\frac{dy}{dx}=\frac{dy}{du}\frac{du}{dx}
\)

太郎くん
太郎くん

え?
なんで?

フクさん
フクさん

一応証明可能だが、まぁまぁカオスだ。

太郎くん
太郎くん

マジかよ・・・。

フクさん
フクさん

まぁ、合成関数の微分をテクニックとしてそのまま飲み込むパターンでも良い気はするが、
一応証明もしてみよう。

太郎くん
太郎くん

魔境の臭いがする・・・。

まとめ

フクさん
フクさん

まとめだよ。

  • 合計関数の微分(連鎖律)について説明。
    • まずは1入力1出力な合成関数。
  • 合計関数の微分をするための公式はあるが、一応証明もしてみる予定。

バックナンバーはこちら。

Pythonで動かして学ぶ!あたらしい線形代数の教科書

https://amzn.to/3OE5bVp

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

https://amzn.to/3OBiaax

ゼロからはじめるPID制御

https://amzn.to/3SvzuyR

OpenCVによる画像処理入門

https://amzn.to/498ZUgK

恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]

https://amzn.to/3STAe2i

Pythonによる制御工学入門

https://amzn.to/3uskuK5

理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析

https://amzn.to/3UAunQK

コメント

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