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

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

バックナンバーはこちら。
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}=\frac{\partial E}{\partial A}\frac{\partial A}{\partial Z}{\color{red}\frac{\partial Z}{\partial b}}
\)

太郎くん
太郎くん

前回の\(W\)が\(b\)になっただけか。

バイアスの関数

フクさん
フクさん

そしてバイアスの関数。
まぁ、バイアスの関数と言うよりも入力層の関数なんだけど。

\(
f(W)=WX+b
\)

太郎くん
太郎くん

前回は\(W\)に着目したけど、今回は\(b\)に着目する感じだね。

フクさん
フクさん

そうそう。

バイアスの偏導関数

フクさん
フクさん

そして、先ほどの関数を元に偏導関数を求める。

\(
\begin{eqnarray}
\displaystyle\frac{\partial Z}{\partial b}&=&\frac{\partial f(b)}{\partial b}=\frac{\partial(WX+b)}{\partial b}\\
&=&\frac{\partial WX}{\partial b}+\frac{\partial b}{\partial b}=\frac{\partial b}{\partial b}&=&1
\end{eqnarray}
\)

太郎くん
太郎くん

え?
1になるの?

フクさん
フクさん

そう。
1になるの。

フクさん
フクさん

\(b\)に着目すると、1次だし、係数も居ないから微分すると1になるんだよね。
と言っても、あくまで連鎖律の一部が1になるだけだから、
逆伝播全体で見れば誤差関数、活性化関数の影響は受ける。

太郎くん
太郎くん

まぁ、少しでも考えなくて済みそうなところが増えるのは助かるね。

まとめ

フクさん
フクさん

まとめだよ。

  • バイアスのブロック図と連鎖律上の位置づけを確認。
  • バイアスの偏導関数を確認。
    • もとの式がシンプルな上、1次で係数もないので1になる。

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

Pythonで動かして学ぶ!あたらしい線形代数の教科書

https://amzn.to/3OE5bVp

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

https://amzn.to/3OBiaax

ゼロからはじめるPID制御

https://amzn.to/3SvzuyR

恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]

https://amzn.to/3STAe2i

OpenCVによる画像処理入門

https://amzn.to/498ZUgK

Pythonによる制御工学入門

https://amzn.to/3uskuK5

理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析

https://amzn.to/3UAunQK

コメント

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