MATLAB,Python,Scilab,Julia比較 第4章 その32【連鎖律の前準備⑥】

MATLAB,Python,Scilab,Julia比較 第4章 その32【連鎖律の前準備⑥】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その32【連鎖律の前準備⑥】

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

【再掲】連鎖律を把握するための知識

太郎くん
太郎くん

まずは、連鎖律を把握するための知識を再掲

  • 逆数の微分公式(済)
  • 積の微分公式(済)
  • 商の微分公式(済)
  • シグモイド関数の導関数(済)
  • 多変量関数の連鎖律
  • 勾配降下法
フクさん
フクさん

今回は、シグモイド関数の導関数とオイラー法による微分結果の比較用プログラムについて。

シグモイド関数、その導関数、オイラー法での数式

フクさん
フクさん

まず、シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分の式を列挙しよう。

シグモイド関数

\(
\displaystyle\sigma(x)=\frac{1}{1+e^{-x}}
\)

シグモイド関数の導関数

\(
\sigma\prime(x)=\sigma(x)\{1-\sigma(x)\}
\)

シグモイド関数のオイラー法による微分

\(
\displaystyle\sigma\prime_{euler}(x)=\frac{\sigma(x+h)-\sigma(x)}{h}\dots h=0.01
\)

太郎くん
太郎くん

オイラー法は、数式の性格を気にせず微分が求められるから楽ちんだね。

フクさん
フクさん

その代わりどこまで行っても近似値だ。
まぁ、今回はその近似値と比較して同等であれば導関数としては正しそうって評価の仕方になるけど。

プログラム化に向けて

太郎くん
太郎くん

とりえあず、さっきの数式でそれぞれをプロットする感じか。

フクさん
フクさん

そうだね。
-10~10の範囲で、0.1刻みでプロットできれば良いだろう。
出力された波形が等しければ導関数もきっと正しい。
ってことにしよう。

太郎くん
太郎くん

少しいい加減な雰囲気はあるが、
それ以外に正しさの証明も難しそうだもんね。

フクさん
フクさん

まぁ、シグモイド関数の導関数は有名だから、
試すまでもなく正しいんだけどね。

太郎くん
太郎くん

それを言ってしまったら身もふたも無いな・・・。

まとめ

フクさん
フクさん

まとめだよ。

  • シグモイド関数、シグモイド関数の導関数の再掲と、シグモイド関数のオイラー法による微分の数式を確認。
  • 上記を実現するプログラムを作成して、似た波形になればOKと見なす。
    • シグモイド関数の導関数は有名なので間違っていることは無いはず。

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

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