支持ベクトルマシン(SVM)とは

このページは、古典機械学習の代表的分類器の一つである 支持ベクトルマシン(SVM, Support Vector Machine) を、初学者向けに短く整理するノートです。時系列の背景は SVM 史、幾何とカーネルの補足は マージンとカーネル(短く)、全体の座標は 古典機械学習モデル史 を参照してください。

ざっくりいうと

  • 二値分類(典型)では、特徴空間上で 2 クラスを分ける境界(超平面) を学習します。
  • 単に分けられればよいのではなく、境界の 両側にできるだけ広い「余白(マージン)」 を取ることを目標にすることが多いです。
  • 実際に境界の位置を決めるのは、データの ごく一部の点だけです。これらを サポートベクトルと呼びます。
  • データがきれいに分離できないときは ソフトマージン(多少の誤分類を許す)にします。
  • 非線形な境界が必要なときは カーネル法で、高次元への写像を「陰に」扱うことができます(詳細は マージンとカーネル(短く))。

回帰向けの拡張 SVR(サポートベクトル回帰) もありますが、入門では 分類の SVM が先に説明されることが多いです。

線形モデル(ロジスティック回帰など)との違い(感覚)

観点 ロジスティック回帰(典型) SVM(典型)
境界のイメージ 線形結合+シグモイドで 確率・オッズ を扱いやすい マージン最大化ヒンジ損失 など、幾何・最適化で境界を決める説明が多い
出力 クラス確率(の近似)がそのまま出やすい 分離スコアやマージンから判定;確率は別途キャリブレーションなどが要ることがある
非線形 特徴変換・多項式などを 明示的に 足す カーネルで暗黙の特徴空間を使うのが定番

どちらも高次元の表形式データで長く使われてきました。課題・データ量・説明のしやすさで選ばれることが多いです。

何を学習しているか(イメージ)

教師ありでは、だいたい 特徴ベクトル x とラベル(±1 や 0/1) のペアが N 組あります(整理は 特徴量設計(概要))。

  1. 線形 SVM なら、まず 重みベクトルとバイアス(境界を定めるパラメータ)を決める。
  2. ソフトマージンでは、分類を間違えた点にペナルティを課す 正則化係数 C などがハイパーパラメータになる。
  3. カーネル SVMでは、カーネル種類(RBF など)と γ(ガンマ) なども調整対象になりやすい。

特徴のスケールが列ごとにバラバラな場合は、標準化などを検討します(標準化と正規化(スケーリング))。

強みと限界(短く)

強み

  • 高次元でも比較的 汎化しやすいとされる局面があり、古典 ML の強い分類器として定着した。
  • サポートベクトルだけに依存するため、学習後のモデルがコンパクトになることがある。
  • カーネルで非線形境界を扱える。

限界

  • データが非常に大きいと 学習コスト・メモリが重くなりやすい(近似・別手法への移行が検討される)。
  • ハイパーパラメータ(C、カーネル、γ など)の チューニングが実務負担になりやすい。
  • 確率出力が必要な用途では、追加の後処理や別モデルが要ることがある。
  • 多クラスは一対他(one-vs-rest)などの 組み合わせで扱うことが多く、単一の式で「多クラス専用」と説明しにくい。

関連