サポートベクターマシン(SVM: Support Vector Machine)とは、データを分類するための最適な超平面(決定境界)を見つける機械学習アルゴリズムです。マージンの最大化という明確な数学的原理に基づいており、高次元データでの分類に強みを持ちます。
マージンの最大化
SVMは、2つのクラスを分離する超平面のうち、最も近いデータ点(サポートベクター)からの距離(マージン)が最大となるものを選択します。このマージンの最大化が汎化性能の向上に寄与します。
| ひとことで言うと | 2つのグループを、できるだけ余裕をもって分ける境界線を引く手法。 |
|---|---|
| どこで使う | データが少ない場合の分類、文書分類、画像の判定。 |
| 注意点 | データ件数が非常に多いと計算が重い。事前にスケールを揃える必要がある。 |
カーネルトリック
線形に分離できないデータに対しては、カーネルトリックを用いて高次元空間に写像してから分離します。RBFカーネル、多項式カーネル、シグモイドカーネルなどが一般的です。
1データを配置特徴量の空間に置く
▶
2境界の候補を考える分ける線は無数にある
▶
3余白を最大に両側の余裕が最も広い線
▶
4支持点が決める境界近くの数点が鍵
▶
5新データを判定線のどちら側か
SVMの利点と限界
高次元・少量データでの高い性能、過学習しにくい、数学的に洗練された手法という利点があります。一方、大規模データでの計算コストが高い、確率出力が直接得られない、ハイパーパラメータの調整が必要などの限界があります。