サポートベクターとは?SVMの基礎からカーネル・マージン・実務まで徹底解説

サポートベクターとは — 概要と直感

「サポートベクター(support vector)」は、機械学習の分類手法であるサポートベクターマシン(SVM: Support Vector Machine)において重要な役割を果たすデータ点のことを指します。SVMは、クラス間の境界(決定境界)をできるだけ「余裕(マージン)」を持って引くことを目的とするアルゴリズムで、その境界を最も制約する、つまり境界の位置を決める上で影響力の大きい訓練データ点が「サポートベクター」です。

線形SVMの直感:マージンとサポートベクター

線形に分離可能な2クラス分類を考えると、SVMは分類面(直線や超平面)を複数候補の中から選びます。その基準は「2クラス間のマージン(境界から最も近いデータ点までの距離)」を最大化することです。最適な境界を決めるとき、境界から最も近い点(あるいは複数の点)が境界の位置を決定します。これらがサポートベクターであり、その他の離れている点は境界に影響を与えません。

  • マージン:2つのクラスを分ける決定面と、各クラスに最も近い点との距離の合計または2倍(定義による)。
  • サポートベクター:最適化問題でラグランジュ乗数がゼロでないデータ点(後述)。

数式的定式化(簡潔に)

線形SVMの代表的な定式化(ハードマージン)は、重みベクトル w とバイアス b を求める最適化問題として表されます:

minimize 1/2 ||w||^2 subject to y_i (w·x_i + b) ≥ 1 for all i

この凸最適化問題をラグランジュ双対問題に変換すると、解は訓練データの線形結合として表現され、係数(ラグランジュ乗数)が正となるデータ点がサポートベクターになります。双対問題の性質上、最終的な決定関数は訓練点のうちサポートベクターのみを使って表現されるため、モデルはこれらの点に依存します。

ソフトマージンと正則化(実運用上の重要性)

現実のデータはしばしば線形分離不可能です。そこでSVMではスラック変数 ξ_i を導入し、誤分類をある程度許容する「ソフトマージン」最適化を行います。目的関数は以下のように変わります:

minimize 1/2 ||w||^2 + C Σ ξ_i subject to y_i (w·x_i + b) ≥ 1 − ξ_i, ξ_i ≥ 0

ここで C は誤分類(またはマージン違反)をどれだけ厳しく罰するかを決める正則化パラメータです。Cが大きいほど誤分類を許さず複雑な境界を学習しやすく、Cが小さいほど滑らかな(マージンが広い)境界になります。

カーネル法:非線形問題への拡張

SVMの強力な特徴の一つが「カーネルトリック」です。データを高次元空間に写像して線形分離可能にし、その空間で線形SVMを適用するという考え方です。計算上は高次元写像 φ(x) を明示的に計算するのではなく、内積 K(x, x') = φ(x)·φ(x') を計算する関数(カーネル)を用います。

  • 代表的なカーネル:線形、ポリノミアル、RBF(ガウシアン)、シグモイド
  • RBFカーネルは局所的な影響力を持ち、多くの実務でよく使われる
  • 理論的基礎:カーネルはMercerの条件を満たす必要がある(正定値核)

双対表現とサポートベクターの決定

SVMの双対問題を解くと、最終的な分類器は次のように書けます:

f(x) = Σ α_i y_i K(x_i, x) + b

ここで α_i がラグランジュ乗数で、最終的に α_i > 0 の訓練点 x_i がサポートベクターです。α_i がゼロである点は分類器に寄与しません。このスパース性がSVMの計算的利点の一つであり、予測時にはサポートベクターのみを使えば良いという特徴になります。

学習アルゴリズムと計算コスト

SVMは凸最適化で解が一意に決まることが多いですが、実際のソルバにはいくつかの方式があります。代表的なものはLIBSVMやSMO(Sequential Minimal Optimization)で、これらは双対問題を効率的に解くための実装です。

  • 計算コスト:サンプル数 n が大きいと計算量およびメモリが大きくなる(一般にO(n^2)〜O(n^3)の振る舞いを示すことが多い)。
  • 大規模データ:線形SVM(線形カーネル)や近年のライブラリ(SGDベース、LIBLINEARなど)を使うことが実用的。

ハイパーパラメータとチューニング

SVMの性能はハイパーパラメータに敏感です。代表的なもの:

  • C:誤分類のペナルティ(正則化)。
  • γ(ガンマ):RBFカーネルやポリノミアルカーネルでのスケールを決めるパラメータ(RBFでは近傍のサイズを決定)。
  • カーネルの種類や次数(ポリノミアルの次数など)。

交差検証(クロスバリデーション)やグリッドサーチ、ランダムサーチで最適化するのが一般的です。また、特徴量のスケーリング(標準化/正規化)は必須で、スケーリングしないと距離ベースのカーネルで性能が悪化します。

多クラス分類への拡張

SVMはもともと2クラス分類器ですが、多クラス分類には以下のような戦略で拡張されます:

  • one-vs-rest(OvR):各クラスに対してそのクラス vs その他 を学習する。
  • one-vs-one(OvO):クラス対クラスの二値分類子をすべて組み合わせる(kクラスならk(k-1)/2個)。

実装によっては内部でどちらかの戦略を選んでいます。大規模データではOvRの方が計算効率が良い場合が多いです。

メリット・デメリットと適用場面

メリット:

  • 高次元データ(特徴量が多い)でも有効なことが多い。
  • カーネルトリックにより非線形分離問題に対応可能。
  • 理論的にしっかりした凸最適化で安定した解が得られる。
  • スパース性により、サポートベクターのみで予測可能。

デメリット:

  • サンプル数が非常に多い場合、学習コスト・メモリが大きくなる。
  • ハイパーパラメータ(C, γなど)のチューニングが必要。
  • 確率的出力は直接得られない(Plattスケーリング等の後処理が必要)。
  • ノイズや外れ値に敏感な場合がある(Cの調整である程度対応可能)。

実務での注意点とベストプラクティス

  • 特徴量のスケーリング(標準化)は必須。特にRBFやポリノミアルは入力のスケールに敏感。
  • データの次元が非常に高くかつサンプル数が少ない場合は、SVMはよく機能することが多い(テキスト分類など)。
  • サンプル数が多い場合は線形SVMや確率的勾配降下法(SGD)を用いた近似の利用を検討する。
  • モデル評価は交差検証で安定させ、クラス不均衡がある場合は適切な評価指標(AUC, F1など)を使う。
  • カーネル選択はデータの性質に合わせて行う。RBFは汎用的だが、線形で十分な場合は線形SVMが計算負荷が低く好ましい。

応用例と実績

SVMは1990年代末から2000年代にかけて多くの分野で高性能を示し、顔認識、テキスト分類(スパム検出、文書分類)、バイオインフォマティクス(遺伝子発現データの分類)などで利用されてきました。深層学習の普及以降は画像処理など一部分野でニューラルネットワークに置き換わることが多いものの、中規模データや高次元低サンプルの問題では依然として強力な手法です。

まとめ

サポートベクターはSVMの学習結果を決める重要なデータ点であり、SVMのスパース性や効率的推論に寄与します。SVM自体はマージン最大化という明確な目的関数を持ち、カーネルトリックやソフトマージンなどで現実問題に柔軟に対応できます。実務では特徴量スケーリング、ハイパーパラメータの適切なチューニング、大規模データへの対処法(線形SVMや近似法)を意識することが成功の鍵です。

参考文献