バックナンバーはこちら。
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からいきなり1になることなんだと思うんだよね。

中々鋭いね。
じゃー、どうすべきか?

なんかこうじわっとした感じにすれば良いんじゃない?

少し勾配を付けるってことだな。
おそらくこのイメージだろう。


こうすると、原点に近付く方がより誤差関数が小さくなるという状況が作れる。

総当たりで確認するけど、より誤差が小さい結果があれば、それと差し替えるから、
より原点に適正な位置に決定境界直線が移動するってことか。

この関数を便宜上、カスタムヘヴィサイド関数と名付けよう。
当然ながら造語だ。

(勝手な造語をしやがった・・・。)

次回から試しにこれで、いい感じの位置に決定境界直線が来るか確認してみよう。
まとめ

まとめだよ。
- 決定境界直線をいい感じのところに持っていくにはヘヴィサイド関数を差し替える必要がある。
- ヘヴィサイド関数の原点近辺に傾斜を付けたカスタムヘヴィサイド関数(造語)が良さげ。
バックナンバーはこちら。
コメント