バックナンバーはこちら。
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
【再掲】多変量関数の連鎖律を把握するための知識

とりあえず多変量関数の連鎖律を把握するための知識を再掲。
- 合成関数(済)
- 合成関数の微分(連鎖律)(済)
- 多変数関数の連鎖律
- 学習データの多入力による暗黙的関数追加

今回は多変数関数の連鎖律の話になる。
多変数関数の連鎖律とは?

今回が直近のテーマそのものの話になるのか。

前回、合成関数の微分(連鎖律)をやったので、
それの多変量化だな。

多変量化ってのがイメージ沸か無ぇ。

やることは一緒だな。
ただ数が増える。
であるが故に微分が偏微分になる。

偏微分は変な微分なイメージが強い・・・。
複雑なものを簡単に解釈できるツールだということは理解しているつもりだけど。

まぁ、とりあえずは普通の微分のつもりで見ておけばOKだ。

(「普通の微分」というパワーワード・・・。)

多変量と言っても、まずは2入力で考える。
実際、今回使用する単純パーセプトロンの入力も2つだし。

まずはシンプルにやってもらえると助かるね。
多変数関数の連鎖律

まずは、該当関数の構成を図示しよう、


\(x,y\)が入力で、\(g(),h()\)をて\(u,v\)となる、
\(f(u,v)\)を経て\(A\)になる。
って関数。

もうすでに偏微分な数式が書き込まれとる・・・。

各所の偏微分がはっきりしていればあとは簡単。
連鎖律の理屈で繋げるだけ。
以下の数式になる。
\(
\begin{eqnarray}
\displaystyle \frac{A}{x}=\frac{A}{u}\frac{u}{x}\\
\displaystyle \frac{A}{y}=\frac{A}{v}\frac{v}{y}\\
\end{eqnarray}
\)

図と数式をセットにしてあると、
そんなもんかって程度になるね。

というわけで、多変量になっても数が増えるだけってことだ。
まぁ、ニューラルネットワークを想定した場合はもう少し複雑になるのだが、
そこは次回簡単に説明しよう。
まとめ

まとめだよ。
- 多変数関数の連鎖律について説明。
- 数が増えるだけで普通の連鎖律と変わらない。
- 図示&数式があると分かり易い。
バックナンバーはこちら。
Pythonで動かして学ぶ!あたらしい線形代数の教科書
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ゼロからはじめるPID制御
OpenCVによる画像処理入門
恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]
Pythonによる制御工学入門
理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析
コメント