サポートベクターマシンとカーネルトリックの数理
なぜSVMは少数のデータ点だけで決まり、非線形分類を内積一発でこなせるのか。最大マージン・双対問題・カーネルの正体を一本の筋で導き、Cやγの意味まで腑に落とします。
- 1.SVMは「マージン最大化」を制約付き最適化として定式化し、ラグランジュ双対へ変換する。双対化するとデータが内積 `x_i・x_j` の形でしか現れなくなり、これがカーネルトリックを可能にする鍵になる。
- 2.KKT条件から、ラグランジュ乗数 `α_i` が0でない点だけが境界を決める。これがサポートベクターであり、SVMの決定境界が少数の点だけで決まる理由。ソフトマージンは `0 <= α_i <= C` という上限で外れ値の影響を抑える。
- 3.カーネル `K(x,z)` は高次元特徴空間での内積に等しく、写像を陽に計算せず非線形分類を実現する。RBFカーネルは無限次元への写像に対応し、再生核ヒルベルト空間(RKHS)として理論的に裏づけられる。
なぜ「最大マージン」なのか
線形分類器は無数に引けます。2クラスを分離する超平面は一本に定まらず、データを完全に分けるだけなら境界はいくらでもずらせる。サポートベクターマシン(SVM)はこの自由度をマージン最大化という原理で一意に潰します。マージンとは、決定境界から最も近いデータ点までの距離のこと。これを最大化する境界は、汎化性能の観点で「最も余裕のある」分け方になります。本稿では、この素朴な幾何学的アイデアが、双対問題・KKT条件・カーネルという美しい数理へと展開していく筋を最後まで追います。基礎の位置づけは 機械学習とは も参照してください。
決定関数は f(x) = w・x + b で、符号 sign(f(x)) がクラスを与えます。w は境界に直交する法線ベクトル、b はバイアス。ある点 x から超平面までの符号付き距離は (w・x + b) / ||w|| です。ラベル y_i ∈ {-1, +1} を使い、w と b のスケールを「最も近い点で y_i(w・x_i + b) = 1 になる」よう正規化すると、最近接点でのマージンは 1/||w|| になります。
ハードマージンの定式化
マージン 1/||w|| を最大化することは、||w||² を最小化することと等価です。全データが正しく分類され、かつマージンの外側にある制約を課すと、次の凸二次計画になります。
minimize (1/2)||w||²
subject to y_i (w・x_i + b) >= 1 (すべての i について)
目的関数は凸、制約は線形なので、解は一意。これがハードマージンSVMです。ただしこの形のままでは、特徴ベクトル x_i の次元が高いと w の最適化が重く、また後で見るカーネル化もできません。そこでラグランジュ双対へ移行します。
ラグランジュ双対への変換
各制約に乗数 α_i >= 0 を導入し、ラグランジアンを作ります。
L(w, b, α) = (1/2)||w||² − Σ_i α_i [ y_i(w・x_i + b) − 1 ]
w と b で偏微分して0と置くと、停留条件が得られます。
∂L/∂w = 0 → w = Σ_i α_i y_i x_i
∂L/∂b = 0 → Σ_i α_i y_i = 0
第1式が決定的に重要です。最適な w は、データ点の線形結合で書ける。これを元のラグランジアンに代入して w と b を消去すると、α だけの双対問題になります。
maximize Σ_i α_i − (1/2) Σ_i Σ_j α_i α_j y_i y_j (x_i・x_j)
subject to α_i >= 0, Σ_i α_i y_i = 0
双対問題では、データが x_i・x_j という内積の形でしか現れません。特徴ベクトルそのものを使う必要がなく、「2点の内積さえ計算できればよい」。この性質こそ、後述するカーネルトリックを成立させる土台です。元問題が w(次元 = 特徴数)の最適化だったのに対し、双対問題は α(次元 = データ数)の最適化になる点も実務上の分かれ目になります。
KKT条件とサポートベクターの正体
凸問題で制約付き最適化が成り立つ条件が KKT条件(Karush-Kuhn-Tucker) です。なかでも核心は相補性スラック条件です。
α_i [ y_i(w・x_i + b) − 1 ] = 0 (すべての i)
この式は「α_i と [制約のたるみ] のどちらかが必ず0」を意味します。ここから3通りに場合分けできます。
| 点の位置 | 条件 | α_i の値 | 意味 |
|---|---|---|---|
| マージンの外側 | y_i·f(x_i) > 1 | α_i = 0 | 決定境界に影響しない(無関係な点) |
| マージン上 | y_i·f(x_i) = 1 | 0 < α_i < C | 境界を支えるサポートベクター |
| マージン内・誤分類側 | y_i·f(x_i) < 1 | α_i = C(ソフトマージン) | 外れ値・難しい点。上限に張り付く |
決定的な帰結は、α_i = 0 の点は w = Σ α_i y_i x_i の和に寄与しないということです。つまり境界は α_i > 0 の点、すなわちサポートベクターだけで完全に決まる。多くの学習データは捨てても境界は変わらない。これがSVMの最大の特徴であり、「少数の支える点だけが効く」という名前の由来です。予測時も f(x) = Σ_i α_i y_i (x_i・x) + b とサポートベクターとの内積和だけで計算できます。
ソフトマージンとスラック変数C
実データは線形分離できないのが普通です。そこで各点にスラック変数 ξ_i >= 0(制約違反の量)を許し、その総和をペナルティとして目的関数に加えます。
minimize (1/2)||w||² + C Σ_i ξ_i
subject to y_i(w・x_i + b) >= 1 − ξ_i, ξ_i >= 0
C は「マージンの広さ」と「誤分類の許容」のトレードオフを決めるハイパーパラメータです。驚くべきことに、この問題を双対化すると目的関数の形は変わらず、制約だけが 0 <= α_i <= C という上限つきに変わります(ボックス制約)。スラック変数は双対では消え、C が乗数の上限として残るのです。
カーネルトリック:内積を置き換える
ここまでで、学習も予測も内積 x_i・x_j だけで書けることを見ました。非線形分類をしたいなら、データを高次元の特徴空間へ写像 φ(x) で飛ばし、そこで線形分離すればよい。すると必要なのは φ(x_i)・φ(x_j) という写像先での内積だけです。
カーネルトリックの核心は、この内積を、写像 φ を陽に計算せずに直接与える関数 K(x, z) = φ(x)・φ(z) で置き換えることです。高次元(ときに無限次元)への写像を実際に計算する必要がなく、低次元のまま内積の値だけ手に入る。双対問題と予測式の x_i・x_j をすべて K(x_i, x_j) に差し替えるだけで、非線形SVMが完成します。
f(x) = Σ_i α_i y_i K(x_i, x) + b
| カーネル | 定義 | 対応する写像 φ | 特徴 |
|---|---|---|---|
| 線形 | K(x,z) = x・z | 恒等写像 | 元の特徴空間。高次元データに有効 |
| 多項式 | K(x,z) = (x・z + c)^d | 次数 d までの単項式すべて | d で表現力を制御。d が大きいと過学習 |
| RBF(ガウス) | K(x,z) = exp(−γ||x−z||²) | 無限次元 | 局所的・万能。γ で影響範囲を制御 |
多項式カーネルが効率的な理由は具体的です。(x・z)² を展開すると、2変数なら φ(x) = (x_1², √2·x_1·x_2, x_2²) という3次元写像の内積に一致します。次数 d を上げれば組合せ的に膨れる特徴を、カーネルは一回の内積計算で済ませる。これが「トリック」の意味です。
RBFカーネルと再生核ヒルベルト空間
RBFカーネル exp(−γ||x−z||²) は最もよく使われます。γ(ガンマ)は各サポートベクターの影響が及ぶ範囲を決め、大きいほど各点の効きが鋭く局所的になります(複雑な境界・過学習寄り)、小さいほど滑らかになります。指数関数をテイラー展開すると無限個の項が出ることから、RBFは無限次元の特徴空間への写像に対応すると示せます。
なぜ写像 φ を一切知らずに「内積」と呼んでよいのか。その理論的裏づけが再生核ヒルベルト空間(RKHS, Reproducing Kernel Hilbert Space) です。
任意の関数を内積として使ってよいわけではありません。K が対称かつ半正定値(任意の点集合に対しグラム行列 K_ij = K(x_i,x_j) が半正定値)であること——これがMercerの条件です。この条件を満たす K には、必ず対応する特徴写像 φ とヒルベルト空間が存在し、K(x,z) = ⟨φ(x), φ(z)⟩ と書けることが保証されます。さらにRKHSでは再生性 ⟨f, K(x,・)⟩ = f(x) が成り立ち、関数評価が内積で表せる。だからカーネルは「ある内積空間の内積」であることが理論的に保証され、SVMの凸性(双対問題が凹なまま)も維持されます。半正定値でないカーネルを使うと最適化が凸でなくなり、保証が崩れます。
リプレゼンター定理により、RKHS上で正則化付き経験リスクを最小化する解は、必ず学習点でのカーネルの線形結合 Σ α_i K(x_i, ・) で書けることも示されます。SVMの解 f(x) = Σ α_i y_i K(x_i, x) + b がまさにこの形をしているのは偶然ではなく、カーネル法全体に通底する原理です。損失と最適化の見立ては 損失関数の数理 も併読すると、ヒンジ損失の位置づけが明確になります。
まとめ:内積という一本の糸
| 論点 | 実態 | そこから言えること |
|---|---|---|
| 最大マージン | 1/||w|| の最大化 = ||w||² の最小化 | 境界が一意に定まり汎化に有利 |
| 双対問題 | データが内積 x_i・x_j でしか出ない | カーネル化の土台。次元 = データ数の問題に変わる |
| KKT・サポートベクター | α_i > 0 の点だけが境界を決める | 少数の点で決まる。予測は内積和だけ |
| ソフトマージン C | 0 <= α_i <= C のボックス制約 | C は正則化の強さ。ヒンジ損失 + L2 と等価 |
| カーネル | K(x,z) = φ(x)・φ(z) を陽に計算せず与える | RKHS(Mercer条件)で内積性が保証される |
SVMの全体像は、「内積」という一本の糸で貫かれています。マージン最大化を双対化すると内積だけが残り、その内積をカーネルに差し替えれば非線形へ拡張でき、その正当性はRKHSが保証する。サポートベクターという疎な解、C による正則化、RBFの無限次元写像——一見バラバラな概念が、すべて同じ数理から必然として出てくる。深層学習が主流の今でも、SVMの双対とカーネルの理論は、表現学習やガウス過程を理解するための強固な土台であり続けています。
AI/機械学習 Article
サポートベクターマシンとカーネルトリックの数理を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
SVM
比較で見る軸
難易度: advanced / カテゴリ: AI/機械学習 / タグ数: 6
導入後に効く点
KKT条件から、ラグランジュ乗数 `α_i` が0でない点だけが境界を決める。これがサポートベクターであり、SVMの決定境界が少数の点だけで決まる理由。ソフトマージンは `0 <= α_i <= C` という上限で外れ値の影響を抑える。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- AI/機械学習
- タグ数
- 6
判断チェックリスト
- 自社の用途が「SVM / カーネル法」に近いか確認する。
- 強みである「SVMは「マージン最大化」を制約付き最適化として定式化し、ラグランジュ双対へ変換する。双対化するとデータが内積 `x_i・x_j` の形でしか現れなくなり、これがカーネルトリックを可能にする鍵になる。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。