MATLAB,Python,Scilab,Julia比較 第4章 その21【シグモイドによる決定境界安定化①】

MATLAB,Python,Scilab,Julia比較 第4章 その21【シグモイドによる決定境界安定化①】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その21【シグモイドによる決定境界安定化①】

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

決定境界直線の一般的な安定化方法

太郎くん
太郎くん

とりあえず、カスタムヘヴィサイド(造語)ってやつで決定境界直線を安定化できたところだね。

フクさん
フクさん

カスタムヘヴィサイド関数・・・その名の通り、勝手に作った関数なのだが、
実は一般的に使用される関数もある。

太郎くん
太郎くん

ん?
どんなの?

フクさん
フクさん

シグモイド関数だ。

シグモイド関数

太郎くん
太郎くん

シグモイド関数は、名前は良く聞くなぁ。
ディープラーニング関連で出てくるような・・・。

フクさん
フクさん

ディープラーニング関連のニューラルネットワークを学ぶ際に
最初に知ることになる活性化関数が大体シグモイド関数だろう。

太郎くん
太郎くん

具体的には何してくれてるのかわからんけどね。

フクさん
フクさん

目的はヘヴィサイド関数とおおよそ一緒だ。

太郎くん
太郎くん

入力0を境に出力が0,1が切り替わる感じ?

フクさん
フクさん

やりたいことはそこなんだけど、
それだとヘヴィサイド関数の問題であった、勾配が無いってのに引っかかる。
シグモイド関数はヘヴィサイド関数と似てはいるが、常に勾配がある関数。

太郎くん
太郎くん

前回まで使用したカスタムヘヴィサイド関数みたいな?

フクさん
フクさん

カスタムヘヴィサイド関数は±2.5の0近辺に勾配を持たせたものだが、それ以外には勾配はない。
シグモイド関数は±∞の全域に勾配がある。
まぁあまり原点から離れるとかなり勾配は緩くなるけどね。

太郎くん
太郎くん

つまり、ヘヴィサイドの目的とも合致して、
カスタムヘビサイドの特性を持ちつつ
さらに全域で勾配を持ってくれる便利関数があるってことか。

フクさん
フクさん

そうそう。
そこらへんを次回もう少し詳細に説明しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • 決定境界直線の一般的な安定化方法がある。
    • シグモイド関数を使用する方法。
  • ヘヴィサイド関数のように0,1を表現することを目的とした関数だが、シグモイド関数は全域で勾配がある。

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

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