MATLAB,Python,Scilab,Julia比較 第4章 その16【決定境界直線の安定化③】

MATLAB,Python,Scilab,Julia比較 第4章 その16【決定境界直線の安定化③】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その16【決定境界直線の安定化③】

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

フクさん
フクさん

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

太郎くん
太郎くん

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

フクさん
フクさん

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

カスタムヘヴィサイド、原点に近づいた方が誤差関数もより小さくなる。
フクさん
フクさん

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

太郎くん
太郎くん

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

フクさん
フクさん

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

太郎くん
太郎くん

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

フクさん
フクさん

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

まとめ

フクさん
フクさん

まとめだよ。

  • 決定境界直線をいい感じのところに持っていくにはヘヴィサイド関数を差し替える必要がある。
  • ヘヴィサイド関数の原点近辺に傾斜を付けたカスタムヘヴィサイド関数(造語)が良さげ。

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

コメント

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