バックナンバーはこちら。
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つの関数の話が合って、
そのあとに多変量にしたものを考えるってことか。
そうそう。
合成関数の微分をしたい関数の構成
まず今回、合成関数の微分を行いたい関数の構成を図示しよう。
数式にすると以下になるパターンだね。
\(
\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で動かして学ぶ!あたらしい線形代数の教科書
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ゼロからはじめるPID制御
OpenCVによる画像処理入門
恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]
Pythonによる制御工学入門
理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析
コメント