1 導入

1.1 SVMの定義と目的

サポートベクターマシン(SVM)は、統計学習理論に基づく教師あり機械学習アルゴリズムである。主に分類問題回帰問題に用いられ、異なるクラスに属するデータ点を分離する最適な超平面(決定境界)を見つけることを目的とする。SVMの核心は「マージン最大化」の原理にあり、データ点と超平面の距離を最大化することで、未知のデータに対する汎化性能を高める。このアプローチにより、過学習を抑制しつつ高い分類精度を実現する。

1.2 統計的学習理論における位置づけ

SVMは、ウラジミール・ヴァプニクらによって開発された統計的学習理論、特に構造的リスク最小化(SRM)の原理に基づいている。SRMは、経験リスク最小化(ERM)とモデルの複雑性のバランスをとることで、真のリスクを最小化する。SVMはこの原理を具体的に実装したアルゴリズムであり、理論的な裏付けの強さから、統計学と機械学習の橋渡し的存在として認識されている。特に、小サンプル学習や高次元データにおいて優れた性能を発揮する。

2 線形SVM

2.1 マージンの概念

2.1.1 ハードマージンSVM

ハードマージンSVMは、訓練データが完全に線形分離可能である場合に適用される。この手法では、すべてのデータ点が超平面から一定の距離(マージン)以上離れていることを要求し、そのマージンを最大化する超平面を求める。マージン内にデータ点が存在してはならず、完全な分離が前提となる。これにより、最も堅牢な決定境界が得られるが、現実のデータではノイズ外れ値の影響で適用が難しい場合が多い。

2.1.2 ソフトマージンSVM

ソフトマージンSVMは、現実的なデータセットに対応するために開発された。線形分離不可能な場合やノイズが存在する場合でも、一部のデータ点がマージン内や誤分類されることを許容する。スラック変数(ξ)を導入し、誤分類に対するペナルティを正則化パラメータCで制御する。これにより、マージン最大化と誤分類の最小化のトレードオフを調整できる。

2.2 最適化問題の定式化

2.2.1 主問題

線形SVMの主問題は、以下の最適化問題として定式化される:

- 目的関数:最小化 (1/2)w² + C Σ ξ_i

ここで、wは超平面の法線ベクトル、bはバイアス項、Cは正則化パラメータ、ξ_iはスラック変数、y_iはクラスラベル(±1)である。

2.2.2 ラグランジュ双対問題

主問題を解く代わりに、ラグランジュ双対問題を解くことで計算効率を向上できる。双対問題は以下のように表される:

  • 目的関数:最大化 Σ α_i - (1/2) Σ Σ α_i α_j y_i y_j (x_i・x_j)
  • 制約条件:Σ α_i y_i = 0, 0 ≤ α_i ≤ C

ここで、α_iはラグランジュ乗数である。双対問題の利点は、データ点の内積のみで表現されるため、後述するカーネルトリックへの拡張が容易になる点である。

2.3 サポートベクターの役割

サポートベクターとは、決定境界の位置を決定するデータ点のことである。具体的には、ラグランジュ乗数α_iが0より大きい(α_i > 0)データ点がサポートベクターとなる。これらの点はマージン境界上またはマージン内に位置し、超平面のパラメータwを決定する唯一の要素である。サポートベクター以外のデータ点は、最適化問題の解に影響を与えない。この性質により、SVMは少数の重要なデータ点のみでモデルが表現されるため、メモ効率が良い。

3 非線形SVMへの拡張

3.1 カーネルトリック

カーネルトリックは、線形分離不可能なデータを高次元空間に写像し、その空間で線形分離を可能にする手法である。具体的には、元の特徴空間から高次元特徴空間への写像関数φを用いるが、φを明示的に計算する代わりに、カーネル関数K(x_i, x_j) = φ(x_i)・φ(x_j)を直接使用する。これにより、計算コストを抑えながら非線形分類を実現できる。双対問題の内積部分をカーネル関数で置き換えるだけで実装可能である。

3.2 代表的なカーネル関数

3.2.1 多項式カーネル

多項式カーネルは、K(x_i, x_j) = (x_i・x_j + c)^d で定義される。ここで、dは多項式の次数、cは定数項である。このカーネルは、元の特徴量の多項式組み合わせを考慮した特徴空間を生成する。低次元のデータに対して、非線形な決定境界を表現できるが、次数が高くなると計算コストが増大し、過学習のリスクも高まる。

3.2.2 ガウスカーネル(RBFカーネル)

ガウスカーネル(RBFカーネル)は、K(x_i, x_j) = exp(-γx_i - x_j²) で定義される。ここで、γはカーネル幅を制御するパラメータである。このカーネルは無限次元の特徴空間に対応し、非常に柔軟な決定境界を表現できる。実用的に最も広く使用されるカーネルの一つであり、γの調整によってモデルの複雑性を制御できる。

3.2.3 シグモイドカーネル

シグモイドカーネルは、K(x_i, x_j) = tanh(κ x_i・x_j + θ) で定義される。このカーネルはニューラルネットワークの活性化関数に類似しており、特定のパラメータ設定で多層パーセプトロン等価な振る舞いを示す。ただし、すべてのパラメータで正定値性が保証されるわけではないため、使用には注意が必要である。

3.3 高次元空間における分離

カーネルトリックにより、元の特徴空間では複雑な非線形境界しか表現できなかったデータも、高次元特徴空間では線形分離可能になる。この写像は、データの次元を劇的に増加させるが、計算上はカーネル関数の評価のみで済むため、実用的な計算量で処理できる。ただし、過学習を防ぐためには正則化パラメータCやカーネルパラメータの適切な調整が必要となる。

4 SVMの実践と応用

4.1 パラメータチューニング

4.1.1 正則化パラメータC

正則化パラメータCは、誤分類に対するペナルティの強さを制御する。Cの値が大きいほど誤分類を厳しく罰するため、訓練データに対する適合度が高くなるが、過学習のリスクも増大する。逆にCが小さいと、マージンが広くなり汎化性能が向上するが、訓練誤差が大きくなる可能性がある。一般的には、交差検証を用いて最適なCの値を探索する。

4.1.2 カーネルパラメータ(例:γ)

ガウスカーネルにおけるγは、各データ点の影響範囲を決定する。γが大きいと各データ点の影響範囲が狭くなり、複雑な決定境界が形成される(過学習傾向)。γが小さいと影響範囲が広くなり、滑らかな決定境界が得られる(未学習傾向)。Cとγの組み合わせがSVMの性能に大きく影響するため、グリッドサーチやベイズ最適化などの手法でチューニングを行う。

4.2 多クラス分類への拡張

4.2.1 一対一法

一対一法(One-vs-One)では、K個のクラスがある場合、すべてのクラスのペア(K(K-1)/2個)に対して二値分類器を学習する。各分類器は2つのクラスを識別し、新しいデータ点に対しては多数決投票でクラスを決定する。この方法は、各分類器が少数の訓練データのみを使用するため学習が高速であるが、分類器の数がクラス数の二乗に比例して増加する。

4.2.2 一対多法

一対多法(One-vs-All)では、各クラスに対して、そのクラスとそれ以外の全クラスを識別する二値分類器を学習する。K個の分類器が必要であり、新しいデータ点に対しては最も高い信頼度を示した分類器のクラスを選択する。この方法は分類器の数がクラス数に比例するため効率的だが、各分類器が不均衡データを扱う必要がある。

4.3 回帰への応用(SVR)

サポートベクター回帰(SVR)は、SVMを回帰問題に拡張したものである。SVRでは、ε-敏感損失関数を導入し、予測値と真値の差がε以内の場合は誤差をゼロとみなす。マージン最大化の代わりに、ε-管(ε-tube)内にできるだけ多くのデータ点を含むように回帰関数を学習する。これにより、外れ値に対して頑健な回帰モデルが得られる。

4.4 実世界での活用例

4.4.1 テキスト分類(スパム検出)

SVMはテキスト分類において高い性能を示す。特にスパム検出では、メール本文をBag-of-WordsやTF-IDFでベクトル化し、SVMで分類する。高次元の特徴空間でも過学習しにくく、線形カーネルでも実用的な精度が得られるため、大規模なスパムフィルタリングシステムで広く利用されている。

4.4.2 画像認識(手書き文字認識)

手書き文字認識では、ピクセル値を特徴量としてSVMを適用する。特にガウスカーネルを用いることで、文字の変形やノイズに対して頑健な識別が可能となる。MNISTデータセットなどのベンチマークでは、深層学習が登場する以前はSVMが最高精度を達成していた。現在でも、小規模データセットや計算資源が限られた環境で有効である。

4.4.3 バイオインフォマティクス(タンパク質機能予測)

バイオインフォマティクスでは、タンパク質のアミノ酸配列からその機能を予測する問題にSVMが応用される。配列から抽出された様々な特徴(アミノ酸組成、物理化学的特性など)を入力とし、特定の機能クラスに属するかどうかを分類する。高次元でノイズの多い生物学的データに対して、SVMの堅牢性が有効に機能する。

5 限界と発展

5.1 大規模データへの課題

SVMは、訓練データ数nに対してO(n²)からO(n³)の計算量が必要であり、大規模データセット(n > 10万程度)では訓練時間が現実的でなくなる。また、サポートベクターの数が増えると予測時の計算コストも増大する。この問題に対処するため、確率的勾配降下法(SGD)を用いた線形SVMや、近似カーネル法(ランダムフーリエ特徴など)が開発されている。

5.2 カーネル選択の難しさ

適切なカーネル関数とそのパラメータの選択は、SVMの性能を左右する重要な要素であるが、その選択には専門知識と試行錯誤が必要である。特に、ドメイン固有の特性を反映したカーネルを設計することは容易ではなく、誤ったカーネル選択は性能低下を招く。自動的なカーネル学習手法の研究が進められているが、実用的にはグリッドサーチや交差検証に依存している。

5.3 最近の関連手法(深層学習との比較)

深層学習の台頭により、画像認識や自然言語処理の多くのタスクでSVMの性能を上回る結果が報告されている。深層学習はエンドツーエンドの特徴学習が可能であり、大規模データに対してスケーラブルである。一方で、SVMは小・中規模データでの優位性、理論的な解釈可能性、過学習の抑制など、依然として利点を持つ。近年では、深層学習の特徴抽出器とSVMの分類器を組み合わせたハイブリッド手法や、カーネル法の深層化(深層カーネル学習)などの研究が進められている。