線形判別ではデータの平均ベクトルや分散共分散行列を用いて判別法を構成した。サポートベクターマシンはこれらの判別法とは全く異なる考え方に基づく。
サポートベクターマシン(SVM)
マシンとは判別器の意味。判別が自明な2群のデータを用いて、2群を最もよく分離するような関数を構成する。判別が自明である、とは図1の左のように、直線(超平面)によってデータが青(1群)、赤(2群)に完全に分離されている。この状態を線形分離可能という。図1の右側はどのような直線によっても2群を分離できない状況を表している。
線形分離可能なデータの場合、直線の傾きによって、最も近いデータやその距離は異なる。直線とそれに最も近いデータの距離(マージン)を最大にするような直線を選ぶ。
最適化問題の立式
n個の2次元のデータを(ただし)とする。2群を分離する直線と直交する方向をとする。直線の方程式は任意の定数をとして、データの線形結合によって表される。
各データと直線の距離(点と直線の距離)は
線形分離が可能なデータは、直線(分離超平面)によってまたはのどちらか一方に分類される。図3の青のデータは、赤のデータは、を満たすとする。青(1群)、赤(2群)は直線(超平面)によって分離されるデータによって次のように構成される。
群の所属を表すためのラベル変数を導入する。に対して
青に属するデータには-1を掛けるため不等式の向きは反対になり、全てのデータがを満たす。するとデータと直線の距離(2)は次のように書き直せる。
線形分離可能な場合、2群を分離する超平面とそれを中間に挟む形で2つの超平面が存在する。両端の超平面には少なくとも1つのデータが存在し、その間にはデータは存在しない。
青と赤それぞれの群のうち超平面と最も近いデータとの距離をマージンと呼ぶ。線形分離可能なデータにおいては、2群を分離する直線は無数に引くことができる。サポートベクターマシンでは、2群の間の幅が最も大きいすなわちマージンを最大にする直線のを求める。最適化問題は以下のように定義される。
つまりすべてのデータが直線とその値以上に離れているというマージンの定義を満たすような直線のうち、最大の距離を実現するものを見つける問題。超平面上にあるデータには(6)の制約条件の等号が成立して、
超平面のスケールを変換することで(6)の最適化問題は次のように書き換えられる。
(8)をラグランジュ未定乗数法を用いて解く。をラグランジュ乗数とする。ラグランジュ関数は、
双対理論を用いることにより(9)はさらに次のように書き換えられる。
(9)の最適解はであり、これを満たすは、
のうちゼロでないのは青と赤のそれぞれのデータのうち超平面(直線)に近いものだけ(図4で超平面に垂線を下ろすデータ、マージンを与えるものだけ)であり、これらをサポートベクターと呼ぶ。サポートベクターによって構成される判別器のことをサポートベクターマシンと呼ぶ。サポートベクターであるデータの添え字をと書く。すると最適なは次のように書ける。
図4の超平面(直線)の式は
と書き表される。新たに得られたデータの判別はの正負で行う。
サポートベクターマシン(SVM)のカーネル法
SVMは線形分離可能な学習データに基づき、マージンを最大にする分離超平面を求める。この考え方を線形な判別から非線形な判別へと拡張するにはどうすればよいか。一般的にデータの次元が上がると、高次元空間での2群の学習データはより線形分離の状態に近づいていく。特にデータの次元がサンプル数を超えると線形分離可能となることが知られている。この性質を利用し、データを非線形関数によって高次元空間へ写像して分離超平面を求めるという考え方。この特徴空間で求めた分離超平面は、元の空間では非線形判別関数を構成する。
高次元化
データがある平面にのっていると仮定し、直線とサポートベクターが最も離れるような平面を選択した、と考える。
2次元のデータがどちらの群に含まれるかを曲線で判別する場合、データが3次元の曲面にのっていると考える。図5,6ではサポートベクターと曲線が一番離れるような曲面を選ぶことで、の正負で判別できる。
これは入力空間上で2次元のデータを3次元データへと変換している。2次元データをを、例えばへと変換する。入力空間でのn次元のデータを高次元に変換する関数をとする。最適化問題は線形の場合(10)と同じになる。
最適な曲面の式(判別関数)も線形のときと同じように
と表される。新たなデータが得られたときの判別は、
の正負で判別する。
カーネル法
入力空間上のデータの次元が大きくなると、サポートベクターマシンを適用する特徴空間の次元も極めて大きくなる。このような場合最適化問題や判別関数に現れる内積を計算が事実上不可能となる。この問題に対処するのがカーネル法であり、内積の計算をカーネル関数に置き換える方法である。
最適化問題と、最適な曲面の式(判別関数)はそれぞれ次のように表される。
新たなデータの判別は次の関数の正負で判別する。