【入門】シグモイド関数の導関数(Scilab)【数値計算】

【入門】シグモイド関数の導関数(Scilab)【数値計算】 数値計算
【入門】シグモイド関数の導関数(Scilab)【数値計算】

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

はじめに

の、

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

を書き直したもの。

シグモイド関数の導関数とオイラー法で求めた微分を比較するプログラムを作成する。
今回はScilab。

【再掲】シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分の式

まずは、シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分の式を再掲。

シグモイド関数

\(
\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
\)

これをScilabでplotして比較してみる。
導関数とオイラー法を比較して同一ならOK。

Scilabコード

Scilabコードは以下。

// シグモイド関数の定義
function y = sigmoid(x)
    y = 1 ./ (1 + exp(-x));
endfunction

// シグモイド関数の導関数の定義
function y = sigmoid_derivative(x)
    y = sigmoid(x) .* (1 - sigmoid(x));
endfunction

// オイラー法で微分する関数の定義
function y = euler_derivative(x, h)
    y = (sigmoid(x + h) - sigmoid(x)) / h;
endfunction

// x軸の値の範囲と間隔の設定
x = -10:0.1:10;

// シグモイド関数の計算
y_sigmoid = sigmoid(x);
y_derivative = sigmoid_derivative(x);

// オイラー法で微分した結果の計算
h = 0.01; // ステップサイズ
y_euler_derivative = euler_derivative(x, h);

// グラフを上下に並べて表示
subplot(3, 1, 1);
plot(x, y_sigmoid);
title('Sigmoid Function');
xlabel('x');
ylabel('sigmoid(x)');
xgrid();

subplot(3, 1, 2);
plot(x, y_derivative);
title('Derivative of Sigmoid Function');
xlabel('x');
ylabel('sigmoid''(x)');
xgrid();

subplot(3, 1, 3);
plot(x, y_euler_derivative);
title('Derivative of Sigmoid Function using Euler Method');
xlabel('x');
ylabel('sigmoid''(x)');
xgrid();

処理結果

処理結果は以下。

シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分(Scilab)

よって、
導出した導関数は正しいと言える。

まとめ

  • シグモイド関数、シグモイド関数の導関数、シグモイド関数のオイラー法での微分をScilabで算出。
  • グラフで比較し、導出した導関数は正しいと言える結果となった。

MATLAB、Python、Scilab、Julia比較ページはこちら

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

https://amzn.to/3OE5bVp

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

https://amzn.to/3OBiaax

ゼロからはじめるPID制御

https://amzn.to/3SvzuyR

OpenCVによる画像処理入門

OpenCVによる画像処理入門 改訂第3版 (KS情報科学専門書)
◆◆3言語(C言語、C++、Python)対応で、「画像処理の基本」が身につくと、大好評のテキストの改訂版!◆◆ ・OpenCV4.5に対応し、さらにパワーアップ! ・基本アルゴリズムとサンプルプログラムが豊富で、いますぐできる! ・理論と...

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

https://amzn.to/3STAe2i

Pythonによる制御工学入門

https://amzn.to/3uskuK5

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

https://amzn.to/3UAunQK

コメント

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