線形SVM ~アルゴリズム~
線形識別関数②
線形SVM ~アルゴリズム~ 線形識別関数①までの内容で
“線形識別関数”については理解されたかと思います。
線形SVM ~アルゴリズム~ 線形識別関数①の図
では、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 }$$
ということです。
ではここまでの識別関数(=識別超平面)を
使って分類問題を解いていきましょう。
次項