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

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

バックナンバーはこちら。
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択だから、
程度の話ができないってことか。

フクさん
フクさん

そうそう。

太郎くん
太郎くん

そうすると、もしかして、このヘヴィサイド関数を置き換えれる必要があるってことになるのかな?

フクさん
フクさん

中々鋭いね。その通りだ。
まぁ、その話が次の対策案の話になる。

まとめ

フクさん
フクさん

まとめだよ。

  • 決定境界直線がギリギリなる理由。
    • ヘヴィサイド関数の性質に原因がある。
  • ヘヴィサイド関数の性質は入力0を境に出力0,1が切り替わるのみで勾配が無い。
    • これにより程度の表現ができず、境界直線も適正位置が探せない。

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

コメント

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