本記事ではサポートベクターマシンについて説明しています。
目次は以下の通りです。
サポートベクターマシンとは?
サポートベクターマシンは、SVMとも呼ばれ機械学習における分類アルゴリズムの一つです。特にパターン認識やデータの分類に優れた性能を発揮します。SVMの主な目的は、与えられたデータセットに対して最適な境界線(または超平面)を見つけ出し、データを異なるクラスに分類することです。この境界線を「決定境界」と呼びます。SVMは、データをできるだけ広く分類できるようにすることで、未知のデータに対して高い予測精度を持つことが特徴です。そして、高い予測精度を出すためにはマージンを最大化する必要があります。
マージンとは
マージンとは境界線とデータ点との距離を指します。
具体的には次のような図のことです。

ハードマージンSVMとソフトマージンSVMの違い
ハードマージンSVM
ハードマージンSVMは、データが完全に線形に分離できる場合に使用されます。この場合、すべてのデータ点が決定境界の「マージン」の外側に位置し、誤分類は一切許されません。ハードマージンSVMは理論的には理想的ですが、現実のデータでは誤分類が避けられない場合が多いため、実用的には使いにくいことがあります。
つまり、条件が厳しいからハードというわけですね。
ソフトマージンSVM
ハードが条件厳しいということなら、ソフトは条件がより優しいということですよね。つまりソフトマージンSVMは、ハードマージンSVMの制約を緩めたものです。データが線形に分けられない場合でも、誤分類を許容し、最適な境界線を求めます。ソフトマージンSVMでは、「C」というハイパーパラメータを使って、誤分類をどの程度許容するかを調整します。Cの値を大きくすると誤分類を少なく抑えようとし、Cを小さくするとマージンを広く保ちながら誤分類を許容するようになります。
線形SVMと非線形SVMの違い
線形SVM
線形SVMは、データが直線または平面で分けられる場合に使用されます。なので、決定境界が線形だから線形SVMというのですね。特徴空間におけるデータが、直線(2次元の場合)または超平面(3次元以上の場合)で分けることができる場合、線形SVMは最適な境界線を見つけることができます。線形SVMは計算量が少なく、シンプルで高速なアルゴリズムです。
非線形SVM
非線形SVMは、データが線形では分けられない場合に使用されます。非線形な境界を作るためには、カーネル法を利用します。カーネル法では、データを高次元空間にマッピングし、その空間内で線形に分けられるように変換します。これにより、非線形な分類問題を解決することができます。カーネル法には、例えば「RBFカーネル(ガウスカーネル)」や「多項式カーネル」などが使われます。
まとめ
本記事のポイントを以下にまとめます。
・SVMのキーワードはマージン最大化
・ハードマージンSVMとソフトマージンSVMの違いは条件の厳しさ
・線形SVMと非線形SVMの違いは決定境界にある
コメント