MATLAB,Python,Scilab,Julia比較 第4章 その8【形式ニューロン⑥】

MATLAB,Python,Scilab,Julia比較 第4章 その8【形式ニューロン⑥】 数値計算
MATLAB,Python,Scilab,Julia比較 第4章 その8【形式ニューロン⑥】

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

【再掲】形式ニューロンへ至る道

太郎くん
太郎くん

まずは、形式ニューロンへ至る道を再掲。

  • ヘヴィサイド関数(済)
  • 形式ニューロン(済)
  • 分類問題のHelloWorld(済)
  • 誤差関数(済)
  • 決定境界直線(済)
  • 決定境界直線の特定方法
  • 総当たり法による分類
フクさん
フクさん

今回は決定境界直線の特定方法について説明する。

決定境界直線の必要性

フクさん
フクさん

前回、決定境界直線の話をしたが、
分類をする上では、決定境界直線そのものはしらなくても分類は実現可能だ。

太郎くん
太郎くん

え?そうなの?
決定境界直線を境に分類されるから必要だと思うのだけど?

フクさん
フクさん

決定境界直線を決定づけるのは学習したモデル。
その学習済みの完成したモデルに対して推論を行わせるには
単純に入力を入れればOK。
利用する側が決定境界直線を意識することはない。

太郎くん
太郎くん

ということは、決定境界直線は無視してOKってこと?

フクさん
フクさん

利用するだけだったら無視してもOK。

太郎くん
太郎くん

じゃー無視しよう。

フクさん
フクさん

しかし、学習結果としてどこに決定境界直線が引かれているかは見えてないと
その境界線が適切かがわからない。
つまり、学習後のモデルの性能を見る上では重要ってことだな。

太郎くん
太郎くん

で、結局、境界線は求める必要はあるの?ないの?

フクさん
フクさん

今回に於いては必要と位置づけよう。
どこに境界線を引いたかは作る側からしたら重要だし。

太郎くん
太郎くん

(結局必要になるんだったらそれでよかったのでは・・・。)

決定境界直線の特定方法

フクさん
フクさん

再掲になるが、今回、分類を行うモデルは以下になる。

\(
y=H\Bigg(
\begin{bmatrix}
w_1&w_2&b
\end{bmatrix}
\begin{bmatrix}
x_1\\
x_2\\
1
\end{bmatrix}
\Bigg)
\)

フクさん
フクさん

そして、境界線はヘヴィサイド関数がどのような出力をしたときのものになるだろうか?

太郎くん
太郎くん

境界線だから、ヘヴィサイド関数が0から1、または1から0に変化した時?

フクさん
フクさん

まぁ、それも正解ではあるな。
ただし、その情報だと境界線の特定が困難だ。
ヘヴィサイド関数としてはあり得ない出力だが、
0と1の間の0.5の出力した時が境界線上と仮定しよう。
グラフで表現すると以下の感じだ。

ヘヴィサイド関数が0.5を出力すると仮定した場合、強いて言えば0.5を出力するのはここ
太郎くん
太郎くん

ちょっと理解が追い付いてないけど、
0と1の間を境界線とするってのは納得できるかな。

フクさん
フクさん

ヘヴィサイド関数が0.5を出力するのは入力が0の時。
つまり以下の式が成り立つ

\(0.5=H(0)\)

太郎くん
太郎くん

関数の入力と出力の関係で見れば正しいのか。

フクさん
フクさん

ヘヴィサイド関数の入力が0の時に決定境界直線上にあると言えるので、以下の式を解いていく。

\(
\begin{eqnarray}
0&=&
\begin{bmatrix}
w_1&w_2&b
\end{bmatrix}
\begin{bmatrix}
x_1\\
x_2\\
1
\end{bmatrix}\\
0&=&w_1x_1+w_2x_2+b\\
w_1x_1&=&-w_2x_2-b\\
x_2&=&-\frac{w_1x_1+b}{w_2}
\end{eqnarray}
\)

フクさん
フクさん

よって、
\(w_1,w_2,b\)が求まった後であれば、
\(x_1\)から\(x_2\)が求まる。
ここでの\(x_2\)は\(y=0.5\)を満たす決定境界直線を示すものとなる。

太郎くん
太郎くん

(全然わかんねぇけど、数式で求まることがわかってるんだったら大丈夫か・・・。)

まとめ

フクさん
フクさん

まとめだよ。

  • 決定境界直線の必要性について。
    • 推論するだけだったら不要だが、学習済みモデルの性能を評価する際は必要。
  • 決定境界直線の特定方法を説明。
    • ヘヴィサイド関数の出力が0.5であることを仮定して数式を解けばOK。

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

コメント

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