MATLAB,Python,Scilab,Julia比較 第4章 その75【誤差逆伝播法②】

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

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

多層パーセプトロンの誤差逆伝播法の説明の流れ【再掲】

太郎くん
太郎くん

まずは、多層パーセプトロンの誤差逆伝播法の説明の流れを再掲。

  • 誤差逆伝播法の全体像の確認
  • 出力層の重みとバイアスを求める誤差からの連鎖律
  • 隠れ層の重みとバイアスを求める誤差からの連鎖律
  • 上記をプログラミングするための最適化
フクさん
フクさん

今回は、「誤差逆伝播法の全体像の確認」をする。

誤差逆伝播法の全体像

太郎くん
太郎くん

今回から多層パーセプトロンの誤差逆伝播法をやっていくんだよね。

フクさん
フクさん

そうそう。
まずは全体像を図示しよう。

多層パーセプトロンの誤差逆伝播法の全体像、W1、X、h()、Z1、σ()、W2、A1、g()、Z2、A2,SSE()、E
太郎くん
太郎くん

予想通り、単純パーセプトロンより長くなるのか。

太郎くん
太郎くん

でも、
途中の\(W_1|X\)とか\(W_2|A_1\)ってなんだ?

重みによって少しルートが変わる

フクさん
フクさん

それは、連鎖律で最終的に微分したパラメータの違いで少しルートが変わるためだな。

フクさん
フクさん

出力層の重みへの連鎖律は\(W_1\)で微分したいのだけど、
隠れ層の重みへの連鎖律で考える場合は\(W_1\)ではなく隠れ層の出力である\(A_1\)を経由することになる。
これが多層になった場合の面倒なところだな。

太郎くん
太郎くん

ようわからんが、それぞれの層の連鎖律を考える際に差があるってことか・・・。

フクさん
フクさん

まぁ、慣れてしまえばそういうもんだって程度になるけど。

太郎くん
太郎くん

(慣れるってほどの頻度でやることではなさそう・・・。)

それぞれの重みに対しての連鎖律

フクさん
フクさん

連鎖律を使用する目的は、各層の重みとバイアスの更新の方向を決めること。
今回の多層パーセプトロンは隠れ層と出力層にそれぞれが存在している。

太郎くん
太郎くん

ということは、出力層と隠れ層のそれぞれの連鎖律を求めるってことになるのかな?

フクさん
フクさん

そうそう。
合成関数で書くと以下になるな。

出力層の合成関数

\(
{\rm{SSE}}(\sigma(g(A_1,W_2)))
\)

隠れ層の合成関数

\(
{\rm{SSE}}(\sigma(g(\sigma(h(X,W_1)),W_2)))
\)

太郎くん
太郎くん

異様にごちゃごちゃしてるな・・・。
連鎖律を知らなかったらすでに逃げ出してる・・・。

フクさん
フクさん

微分可能な既知の関数の合成関数であれば、連鎖律で微分可能だ。
ってのを知っていれば、めんどくささは感じつつも解けなくはないということはわかる。

太郎くん
太郎くん

そうそう。
具体的にどうなるわかはわからないけど、
解けるってことだけは分かってるからなんとか耐えられる感じ。

フクさん
フクさん

そんな感じで克服していくとやれることが増えるってことだな。

まとめ

フクさん
フクさん

まとめだよ。

  • 誤差逆伝播法の全体像を確認。
  • 更新したい重みとバイアスの層によって連鎖律のルートが少し変わる。
  • 出力層と隠れ層の合成関数を確認。

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

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