【入門】逆伝播③【数値計算】

【入門】逆伝播③【数値計算】 数値計算
【入門】逆伝播③【数値計算】

MATLAB、Python、Scilab、Julia比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

はじめに

の、

MATLAB,Python,Scilab,Julia比較 第4章 その57【逆伝播⑧】
MATLAB,Python,Scilab,Julia比較 第4章 その58【逆伝播⑨】
MATLAB,Python,Scilab,Julia比較 第4章 その59【逆伝播⑩】
MATLAB,Python,Scilab,Julia比較 第4章 その60【逆伝播⑪】

を書き直したもの。

単純パーセプトロンに対する逆伝播についての話。

  • 逆伝播全体について。
  • 入力、出力が複数であるが故の連鎖律の事情。
  • 入力、出力が複数であるが故の連鎖律の事情のもう一つの考え方。
  • プログラム化に向けての話。

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

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

逆伝播を想定した単純パーセプトロンの構成、誤差関数は二乗和誤差(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}
\)

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

次のページへ

次のページから入力、出力が複数であるが故の連鎖律の事情。

コメント

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