【入門】誤差逆伝播法①【数値計算】

【入門】誤差逆伝播法①【数値計算】 数値計算
【入門】誤差逆伝播法①【数値計算】

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

はじめに

の、

MATLAB,Python,Scilab,Julia比較 第4章 その74【誤差逆伝播法①】
MATLAB,Python,Scilab,Julia比較 第4章 その75【誤差逆伝播法②】
MATLAB,Python,Scilab,Julia比較 第4章 その76【誤差逆伝播法③】
MATLAB,Python,Scilab,Julia比較 第4章 その77【誤差逆伝播法④】

を書き直したもの。

前回から、非線形分類の話に突入。
今回は、何を使って非線形分類を実現するかについて。
加えて以下の説明。

  • 誤差逆伝播法の全体像の確認
  • 出力層の重みとバイアスを求める誤差からの連鎖律
  • 隠れ層の重みとバイアスを求める誤差からの連鎖律

誤差逆伝播法

非線形分類は単純パーセプトロンじゃなくて多層パーセプトロンが必要で、
無理やり数式で表現すると結構ヤバいってのが前回の話。

加えて、ちゃんと分類するためには学習が必要。
そうでないと適切な重み、バイアスを特定できない。

ここで出てくるのが誤差逆伝播法。

単純パーセプトロンの時は意図的に「逆伝播」って言い方をしていたところになる。
多層パーセプトロンことニューラルネットワークになってからは、名実ともに「誤差逆伝播法」と呼べる。

逆伝播と誤差逆伝播法の差分

しかし、単純パーセプトロンのときと、今回の多層パーセプトロンの誤差逆伝播法って何か差分があるのか?
基本的には一緒な気がしないでもない。

基本的には一緒になる。
問題は、更新する重みが複数のユニット、複数の層に渡っているところ。
1層あたりの複数のユニットに対しては、ベクトル演算の都合であまり問題にはならないが、
多層に渡ってる方が大問題。

多層になってるから、単純に連鎖律が長くなる程度ではあるが、
複数の層(隠れ層、出力層)のそれぞれの重みを更新するため、少し雰囲気が変わる。
(つまりメンドクサクなってる。)

連鎖律を求める方針

とりあえず、それぞれの連鎖律を求める流れを決めておく。
以下を想定している。

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

一個一個は単純パーセプトロンの時と変わらない。
ただ、数が多いから混乱しやすい。
ここは慣れるしかない。

誤差逆伝播法の全体像

まずは誤差逆伝播法の全体像を図示する。

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

見た通りではあるが、単純パーセプトロンより長くなる。
気を付ける点として、途中の\(W_1|X\)とか\(W_2|A_1\)がある。

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

先ほどの\(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)))
\)

異様にごちゃごちゃしているため、連鎖律を知らなかったら逃げ出したくなるかもしれない。
しかし、
「微分可能な既知の関数の合成関数であれば、連鎖律で微分可能だ。」
ってのを知っていれば、めんどくささは感じつつも解けなくはないということはわかる。
具体的にどうなるわかはわからないけど、
解けるってことだけは分かってるから、なんとか耐えられる感じ。

次のページへ

次のページから出力層、隠れ層の連鎖律の話。

コメント

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