MATLAB,Python,Scilab,Julia比較 第4章 その57【逆伝播⑧】

MATLAB,Python,Scilab,Julia比較 第4章 その57【逆伝播⑧】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その57【逆伝播⑧】

バックナンバーはこちら。
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

【再掲】逆伝播を想定した単純パーセプトロンの構成

太郎くん
太郎くん

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

逆伝播を想定した単純パーセプトロンの構成、誤差関数は二乗和誤差(SSE:Sum of Squared Error)を1/2したものを使用。1/2にしておくと微分時に消えるので便利、x1、x2、×w1、×w2、+b、A、Y、E=1/2∑_{i=1}^n(A-Y)^2
フクさん
フクさん

今回は、逆伝播全体について。

逆伝播全体の位置づけ

フクさん
フクさん

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

ブロック図上の位置づけ

逆伝播のブロック図(全体)、W、f()、Z、σ()、A、SSE()、E

連鎖律上での位置づけ

\(
\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で動かして学ぶ!あたらしい線形代数の教科書

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をコピーしました