バックナンバーはこちら。
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で動かして学ぶ!あたらしい線形代数の教科書
ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ゼロからはじめるPID制御
OpenCVによる画像処理入門
恋する統計学[回帰分析入門(多変量解析1)] 恋する統計学[記述統計入門]
Pythonによる制御工学入門
理工系のための数学入門 ―微分方程式・ラプラス変換・フーリエ解析
コメント