サポートベクターマシン - マージンを最大化する分類の王者
「どうすれば、2つのグループを最も"余裕を持って"分けられるか?」 この問いへの答えがSVMだ。マージン最大化・ソフトマージン・カーネルトリック・ヒンジロス・ 柔軟判別分析・混合判別分析まで、非線形分類の全体像を視覚的に理解しよう。
なぜ「余裕」が大事なのか - マージン最大化の直感
線形分類器には、無数の"正しい"直線が存在する。 どれも訓練データを正しく分類できる。では、どれが「最良」か?
図を想像してほしい。赤い点と青い点が散らばっている。 直線Aは両グループを分けるが、かなり赤い点の近くを通っている。 直線Bは両グループのちょうど真ん中を通る。 新しい赤い点が来たとき、どちらの直線が間違いにくいだろうか?
当然Bだ。余裕(マージン)が大きい境界ほど、未知のデータに対して安全なのだ。 SVMはこの直感を数学にする:「最も大きなマージンを持つ超平面を見つけよ」

超平面とは何か
$p$ 次元空間では、分類境界は$x^T \beta + \beta_0 = 0$ という超平面だ。 2次元なら直線、3次元なら平面、それ以上なら超平面になる。
あるデータ点 $x$ から超平面までの距離は$|x^T \beta + \beta_0| / \|\beta\|$ で表される。
マージンとは、最も近い訓練点から超平面までの距離のこと。 これを最大化する超平面を「最大マージン分類器」と呼ぶ。
クラスラベルを $y_i \in \{-1, +1\}$ とすると、 すべての点が正しく分類される条件は:
マージン $M$ を最大化する問題は、等価的に次のように書ける:
各記号の意味:
- $\beta$: 超平面の法線ベクトル(向きと傾き)
- $\beta_0$: 切片(超平面のオフセット)
- $y_i \in \{-1, +1\}$: クラスラベル
- $M = 1/\|\beta\|$: マージン幅
解の特徴:サポートベクター
最大マージン超平面は、実は少数の特別な点にしか依存しない。 マージン境界上に位置する点(ちょうど $y_i(x_i^T \beta + \beta_0) = 1$ を満たす点)をサポートベクターと呼ぶ。
これらのサポートベクターだけで超平面が決まり、他の点はどれだけ動かしても境界は変わらない。 これがSVMの「スパース性」であり、大きな強みだ。 大量のデータのうち、ほんの数点だけが決定に関与する、という驚くべき性質だ。
現実のデータは綺麗に分かれない - ソフトマージンとスラック変数
理想的なハードマージンSVMは、データが完全に分離できることを前提としている。 しかし現実のデータは必ず重複する。
もし1つの外れ値が存在したら、完全分離を諦めるべきか? それとも、多少の誤分類を許してでも大きなマージンを保つべきか?
SVMの答えは明快だ:「多少の"侵犯"を許しながら、全体的に最もマージンを広くとる」

スラック変数の直感的な意味
スラック変数 $\xi_i$ を導入する:
$\xi_i$ の意味を直感的に理解しよう:
- $\xi_i = 0$: 完璧。点はマージン外の正しい側にある
- $0 < \xi_i \leq 1$: マージン内に入り込んでいるが、まだ正しく分類
- $\xi_i > 1$: 誤分類された!(境界の反対側にいる)
コストパラメータ C
ソフトマージンの最適化問題は:
コストパラメータ $C$ がトレードオフを制御する:
- $C$ が大きい: 誤分類に厳しく、マージンが小さくなってもいい(ハードに近い)
- $C$ が小さい: 誤分類を許容し、マージンを広くとる(ソフトに)
外れ値1つのために、ほとんど全てのデータを正しく分類できる広いマージンを諦めるのは得策ではない。$C$ を調整することで、「データの雑音への許容度」と「汎化性能」のバランスを取れる。
解のスパース性はここでも成立する
重要な事実:解はやはりサポートベクターのみに依存する。 ラグランジュ双対問題を解くと:
この式は驚くべきことを示している:最適な境界は、少数のサポートベクターの重み付き和で完全に表現できる。 残りの点は「沈黙」している。$\alpha_i > 0$ となる観測だけが解に寄与する。
カーネルトリック - 高次元への旅
ここまで学んできたSVMは、線形境界しか引けない。 しかし現実のデータが非線形な構造を持っていたら?
円の内側が青、外側が黄色のデータがある。 どんな直線を引いても分けられない。では、この問題を解けない?
実は、解けるのだ。次元を増やすというトリックを使って。

特徴空間への写像
元の特徴 $x = (x_1, x_2)$ を、新しい特徴 $h(x)$ に変換する:
3次元目以降を追加することで、元の空間では非線形だった境界が、高次元空間では線形になることがある。 しかし問題がある:高次元変換は計算コストが爆発的に増える。$p$ 次元の入力を $d$ 次多項式で変換すると、$\binom{p+d}{d}$ 次元にもなる。
カーネルトリックの美しさ
ここでSVMの美しいトリックが登場する。 SVMの最適化問題をラグランジュ双対化すると、解は内積 $\langle x_i, x_j \rangle$ の形でしか出てこない。
つまり、$h(x)$ を明示的に計算しなくても、 内積 $\langle h(x_i), h(x_l) \rangle$ だけ計算できれば十分なのだ!
カーネル関数をこの内積として定義する:
よく使われるカーネル
| カーネル名 | 式 | 意味 |
|---|---|---|
| 多項式カーネル | $(1 + \langle x, x' \rangle)^d$ | d次多項式特徴 |
| RBFカーネル | $\exp(-\gamma \|x - x'\|^2)$ | ガウス的な局所性 |
| シグモイドカーネル | $\tanh(\kappa_1 \langle x, x' \rangle + \kappa_2)$ | ニューラルネット風 |
RBFカーネルのイメージ: 2点 $x, x'$ が近いほど$K(x, x') \approx 1$、遠いほど $K(x, x') \approx 0$。 無限次元の特徴空間を「暗黙的に」使っているようなものだ。
決定関数はカーネルを使ってシンプルに書ける:
新しいデータ点は、訓練データとの類似度(カーネル値)の重み付き和で分類される。 計算コストの爆発なしに、複雑な変換を実現できるのがカーネルトリックの真髄だ。
SVMは正則化手法だった - ヒンジロスの視点
ここで視点を変えよう。SVMを「損失関数 + 正則化」の枠組みで捉えると、 他の手法との関係が鮮明になる。
ヒンジロス(Hinge Loss)
SVMの損失関数を「ヒンジロス」と呼ぶ:
$[z]_+ = \max(0, z)$ は正の部分のみを取り出す関数だ。 グラフを見ると、$yf > 1$(正しく分類かつマージン外)のとき損失がゼロになる「折れ曲がり」が特徴的だ。

統一的な枠組み
ヒンジロスを使うと、SVMの問題は次の形に書ける:
この形は他の分類手法と全く同じ枠組みだ!
| 手法 | 損失関数 | 正則化 |
|---|---|---|
| SVM | ヒンジロス $[1-yf]_+$ | $\lambda\|f\|^2$ |
| ロジスティック回帰 | 対数損失 $\log(1+e^{-yf})$ | $\lambda\|f\|^2$ |
| Ridge回帰 | 二乗誤差 $(y-f)^2$ | $\lambda\|f\|^2$ |
ヒンジロスの特性が生む"スパース性"
ヒンジロスは $yf > 1$(正しく分類、かつマージン外)のとき、 ロスがゼロになる。この「無罰」な領域の存在が、解のスパース性(少数のサポートベクターのみが寄与)をもたらす。
一方、ロジスティック回帰の対数損失は、いくら正しく分類されていても常にゼロより大きい。 そのためロジスティック回帰は全訓練点が解に寄与する。
なお、$\lambda = \frac{1}{2C}$ と対応し、SVCのコストパラメータ $C$ と等価だ。
どちらを選ぶべきか?
- SVM: サポートベクターのみが寄与→予測時に効率的。特に高次元・大規模データで有利。
- ロジスティック回帰: 確率を推定できる。解釈しやすい。
- ノイズが多いデータ: SVMのヒンジロスは外れ値の影響を限定的にできる($C$ で制御)。
柔軟判別分析(FDA)- LDAを非線形に
ここまでSVMを「マージン最大化」という独自の視点で見てきた。 実はSVMと同様の「線形手法を非線形に拡張する」という発想は、分類の別の流れにも存在する。
それが柔軟判別分析(FDA: Flexible Discriminant Analysis)だ。 SVMが「境界の余裕」に着目したのに対し、FDAは「クラスの分布を柔軟にモデル化する」という別角度からのアプローチだ。 同じ目的(非線形分類)を、全く異なる道で達成する。
LDAの限界を思い出す
第4章で学んだ線形判別分析(LDA)は、各クラスをガウス分布と仮定し、線形の境界を引く。 美しい理論だが、クラスが非線形な形状を持つとき(例えば、環のような形)には手も足も出ない。

LDAを回帰として見る
LDAには興味深い再解釈がある。クラスラベルをダミー変数で表したインジケータ行列 $\mathbf{Y}$ を作り、$\mathbf{Y}$ を $\mathbf{X}$ に対して線形回帰すると、LDと同等の結果が得られる。
FDAはここに一つの洞察を持ち込む:「線形回帰の代わりに、スプライン回帰などの非パラメトリック回帰を使えばどうなるか?」
答えは:非線形な判別境界が得られる!
形式的には、FDAは次の問題を解く(平均二乗残差の最小化):
ここで:
- $\theta_l$: 第 $l$ 番目の判別スコア変換(クラスラベルへの写像)
- $\beta_l$: 対応する線形係数
- $L = K - 1$: 最大判別方向数($K$ はクラス数)
LDAはこれを線形変換として解くが、FDAはより一般的な変換を許す。 スプライン回帰などの非パラメトリック手法を使えば、複雑な曲線の判別境界が得られる。
実践的な計算
- クラスラベルを $K$ 個のダミー変数に変換
- $\hat{\mathbf{Y}} = S_\lambda \mathbf{Y}$ を計算($S_\lambda$ はスムーザー行列)
- $\hat{\mathbf{Y}}^T \hat{\mathbf{Y}}$ の固有値分解から判別方向を求める
混合判別分析(MDA)- 1つのクラスに複数の顔
最後に、さらに柔軟な手法、混合判別分析(MDA)を紹介しよう。
あるクラスが「離れた2つの塊」からなっていたらどうなる? 例えば、「犬」というクラスに「小型犬」と「大型犬」が混在するようなケースだ。LDAもFDAも、 基本的には「1つのクラスには1つの中心がある」という仮定を置いている。 これが崩れると、境界が大きく歪む。

MDAの発想
「1つのクラスを複数のガウス分布(コンポーネント)の混合で表現する」
クラス $k$ の密度関数を:
ここで $\phi(X; \mu_{kr}, \Sigma)$ はガウス分布、$\pi_{kr}$ はそのクラス内での重みだ。
EMアルゴリズムで学習
パラメータ(各コンポーネントの平均と重み)はEMアルゴリズムで推定する。 「暫定的に各点の所属を推測→その推測で最も尤もらしいパラメータに更新→また推測…」を繰り返す手法だ。 鶏と卵の関係を交互に解く、というイメージだ:
Eステップ: 各点がどのコンポーネントに属するかの確率(責任)を計算:
Mステップ: 責任を使って各コンポーネントの平均と共分散を更新。
MDAによる分類
事後確率による分類:
各記号の意味:
- $R_k$: クラス $k$ のコンポーネント数
- $\pi_{kr}$: コンポーネント $r$ の混合比($\sum_r \pi_{kr} = 1$)
- $\mu_{kr}$: コンポーネント $r$ の平均ベクトル
- $\Sigma$: 全コンポーネント共通の共分散行列
MDAの強み
- 複雑な形状に対応: C字型、ドーナツ型など、任意の形状のクラスを扱える
- 次元削減: 複数コンポーネントの中心から自然に低次元表現が得られる
- 実用的: 各クラスを2〜5個のコンポーネントで表現するだけで、複雑なデータも美しく分類できる
分類手法の地図
| 手法 | 決定境界 | 特徴 |
|---|---|---|
| LDA | 線形 | シンプル、確率論的 |
| SVM(線形) | 線形 | マージン最大化 |
| SVM(カーネル) | 非線形 | カーネルトリックで高次元 |
| FDA | 非線形 | LDAを回帰ベースで拡張 |
| MDA | 非線形 | 各クラスを複数コンポーネントで表現 |
SVMの核心は「余裕(マージン)を最大化する」という発想だ。 サポートベクターのみに依存するスパース性、カーネルトリックによる非線形拡張、そして正則化との等価性という3つの視点がSVMの本質を照らし出す。
FDAとMDAは「判別分析」をより柔軟に拡張したもので、データの形状に応じて選ぶ道具が変わる。 次章(13章)では、全く異なるアプローチ「プロトタイプ法と k 最近傍法」を学ぶ。