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

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

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

あれ?
入力が\(W\)?
\(W\)って入力じゃなくて重みだよね?

フクさん
フクさん

調整したいのは入力じゃなくて重み。
だから、単純パーセプトロンの学習における入力は重みと見なしてる感じだな。

太郎くん
太郎くん

なるほど、
言われてみるとそうだ。

フクさん
フクさん

そして、さきほどの合成関数を数式で表現するとこうなるな。

合成関数

\(E=SSE(\sigma(f(W)))\)

太郎くん
太郎くん

そのまんまだね。

各関数

フクさん
フクさん

そして、各関数を書き出す。

誤差関数

\(
\displaystyle E=\frac{1}{2}\sum_{i=1}^n(A-Y)^2
\)

活性化関数

\(
A=\sigma(X)
\)

入力と重みの内積

\(
Z=f(W)=
\begin{bmatrix}
w_1&w_2&b
\end{bmatrix}
\begin{bmatrix}
x_1\\
x_2\\
1
\end{bmatrix}
\)

太郎くん
太郎くん

この関数の合成がさっきの合成関数ってことになるのか。

フクさん
フクさん

あとは、合成関数の微分こと連鎖律を考えていくことになる。

まとめ

フクさん
フクさん

まとめだよ。

  • 一連の合成関数について書き出し。
  • 合成関数を構成する各数式を書き出し。
    • 誤差関数、活性化関数、入力と重みの内積。

バックナンバーはこちら。

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