線形SVM ~アルゴリズム~ 線形識別関数②

線形SVM ~アルゴリズム~
線形識別関数②

 

線形SVM ~アルゴリズム~ 線形識別関数①までの内容で
“線形識別関数”については理解されたかと思います。

線形SVM ~アルゴリズム~ 線形識別関数①の図

SVM_2

では、2次元空間を2つに分けていますが実際は
ユーザーの特徴(変数)分の次元があります。

例えば、男女の分類をしたい時に
身長、体重、髪の長さを使った時は3つの変数なので
3次元の”特徴空間”であるといえます。

上の例は、2次元を直線で分類していますが
3次元空間の場合、平面で分離することになります。
4次元空間の場合は3次元で分離、5次元の場合は4次元で
分離します。

このように、”元の空間に対して1次元少ない空間?”を
超平面と呼びます。

「いや、平面じゃないから」
って話なのですがそういう名前なので仕方ありません。

元の空間(特徴空間)の超平面を考えると
元の空間の点は超平面を挟んで必ず2つに分類できます。

これが重要なことで、
識別関数、識別超平面を考えるとどんな点を持ってきても
空間上の点は2分されることとなります。

ほんとはここでしっかり勉強しないといけないことがありますが
基礎数学の範囲に深く入ってしまうのでスルーします。
(気になる人は分離超平面定理とか調べてください)

一応、“ユークリッド空間上”なら元の空間の点は
超平面によって必ず2分されると覚えておいた方が良いです。

めちゃくちゃ詳しいことは私もよくわかっていません。

まぁ、2次元の図に直線引っ張ると大きく2つに分かれますよね?
じゃあ3次元なら平面作ると大きく2つに分かれますよね?

ただ、そういうことです。

線形SVM ~アルゴリズム~ 線形識別関数①では
識別関数(識別超平面)を一般的に

$$f(\boldsymbol{ x })={}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x } +w_0$$
と表すと記載しました。

突然ですが、
$$w_0$$
について、混同をよく起こすので
$$(教科書で\boldsymbol{ w }にまとめて書いたりして
混同します)$$

$$\theta_0$$
とします。

よって改めて、識別超平面(=識別関数)を書くと
$$f(\boldsymbol{ x })={}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x } +\theta_0$$
となります。

ここでちょくちょく重要なのは
$$f(\boldsymbol{ x })={}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x } +\theta_0=0$$
で表される超平面に対し、
$$ \boldsymbol{ w }$$
が直行しているということです。

つまり、 $$({}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x } +\theta_0=0)\perp \boldsymbol{ w }$$
ということです。

事実だけで良い方はこの記事はここまでで構いませんが
なぜ直行しているか気になる場合は下記をご覧ください。

なぜなら
$${}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x } +\theta_0=0$$
$$\Leftrightarrow{}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x }=- \theta_0$$
ここで両辺を
$$\boldsymbol{w}の長さ(ノルム)である\| \boldsymbol{w} \|$$

で割れば
$${}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x }=- \theta_0$$

$$\Updownarrow$$

$$\frac{ {}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x } }{ \| \boldsymbol{w} \| }=-\frac{ \theta_0}{ \| \boldsymbol{w} \| }$$
となり、ここで
$$\boldsymbol{n} =\frac{ \boldsymbol{ w }}{ \| \boldsymbol{w} \| }\tag{①}$$
$$\nabla \boldsymbol{w}=-\frac{ \theta_0}{ \| \boldsymbol{w} \| }\tag{②}$$
とおけば

$${}^t\!\boldsymbol{n}\cdot\boldsymbol{x}=\nabla \boldsymbol{w}$$
という式になり、変形すると
$${}^t\!\boldsymbol{n}\cdot\boldsymbol{x}-\nabla \boldsymbol{w}=0\tag{③}$$
となる。

上の赤字は識別関数の=0の集合、
識別境界を表しています。

その識別境界上の点Pを取ってくると
$${}^t\!\boldsymbol{n}\cdot\boldsymbol{p}-\nabla \boldsymbol{w}=0\tag{④}$$
が成り立つはずです。

③-④をすると
$${}^t\!\boldsymbol{n}\cdot\boldsymbol{x}-\nabla \boldsymbol{w}-({}^t\!\boldsymbol{n}\cdot\boldsymbol{p}-\nabla \boldsymbol{w})=0$$
になりますから
$${}^t\!\boldsymbol{n}\cdot(\boldsymbol{x}-\boldsymbol{p})=0$$
となります。

この式がなにを表しているかというと
識別境界上の点x,pの引き算から生まれるベクトルは
識別境界上にあることになります。
(識別境界面上)

それとnの内積が0ということなので
識別境界とベクトルnは直交しているということになります。
ベクトルnはなんだったかというと
$$①\boldsymbol{n} =\frac{ \boldsymbol{ w }}{ \| \boldsymbol{w} \| }$$
であり、ベクトルwの長さで割られた正規化されたベクトルwでした。

つまり、
正規化されたベクトルwと識別超平面上のベクトルが直交
$$\Updownarrow$$
ベクトルwと識別超平面が直交
$$\Updownarrow$$
$$({}^t \! \boldsymbol{ w }
\cdot \boldsymbol{ x } +\theta_0=0)\perp \boldsymbol{ w }$$

ということです。
ではここまでの識別関数(=識別超平面)を
使って分類問題を解いていきましょう。

 

次項

SVM ~立式①~

SNSでもご購読できます。

コメントを残す