バックナンバーはこちら。
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
【再掲】逆伝播を想定した単純パーセプトロンの構成

まずは、逆伝播を想定した単純パーセプトロンの構成を再掲。


今回は、逆伝播全体について。
逆伝播全体の位置づけ

逆伝播全体の位置づけを確認する。
まぁ、全体の話だから位置づけもへったくれもないのだけど。
ブロック図上の位置づけ

連鎖律上での位置づけ
\(
\displaystyle\frac{\partial E}{\partial b}=\color{red}\frac{\partial E}{\partial A}\frac{\partial A}{\partial Z}{\frac{\partial Z}{\partial b}}
\)

まぁ、全体だから位置づけも全体になるよねー。
これまでの各偏導関数

そして、連鎖律の各部品になり得る、
これまでの各偏導関数を列挙する。
誤差関数の偏導関数
\(
\displaystyle \frac{\partial E}{\partial A}=A-Y
\)
活性化関数(出力層)の偏導関数
\(
\displaystyle \frac{\partial A}{\partial Z}=\sigma(Z)\{1-\sigma(Z)\}
\)
入力層の偏導関数
\(
\displaystyle \frac{\partial Z}{\partial W}=X
\)
バイアスの偏導関数
\(
\displaystyle \frac{\partial Z}{\partial b}=1
\)
全偏導関数の合体

そして、これらを連鎖律にそって合体させる。
重みに対しての連鎖律
\(
\begin{eqnarray}
\displaystyle\frac{\partial E}{\partial W}&=&\frac{\partial E}{\partial A}\frac{\partial A}{\partial Z}{\frac{\partial Z}{\partial W}}\\
&=&(A-Y)\sigma(Z)\cdot\{1-\sigma(Z)\}\cdot X
\end{eqnarray}
\)
バイアスに対しての連鎖律
\(
\begin{eqnarray}
\displaystyle\frac{\partial E}{\partial b}&=&\frac{\partial E}{\partial A}\frac{\partial A}{\partial Z}{\frac{\partial Z}{\partial b}}\\
&=&(A-Y)\sigma(Z)\cdot\{1-\sigma(Z)\}\cdot 1=(A-Y)\sigma(Z)\cdot\{1-\sigma(Z)\}
\end{eqnarray}
\)

複数の関数の偏導関数の組み合わせではあるけど、
連鎖律で分解してから、合体しなおせば、全体として演算可能な偏導関数ができるわけか。

ここらかもう一歩厄介な話はあるが、それは次回だな。

(不穏すぎる・・・。)
まとめ

まとめだよ。
- 全体の位置づけ確認。
- 各偏導関数を再掲。
- 各偏導関数を連鎖律に則して結合。
バックナンバーはこちら。
Pythonで動かして学ぶ!あたらしい線形代数の教科書
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ゼロからはじめるPID制御
OpenCVによる画像処理入門
恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]
Pythonによる制御工学入門
理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析
コメント