1行定義
マージン最大化とは、クラスを分ける境界と、境界に最も近いデータとの距離(マージン)が最も大きくなるように境界を決める考え方のことです。
くわしく
マージン最大化は、サポートベクターマシン(SVM)が分類の境界を決めるときの基準です。2つのクラスを分ける直線(高次元では超平面)は、多くの場合いくつも引けます。その中から、どちらのクラスからもできるだけ離れた境界を1つ選ぶのがマージン最大化です。
マージンとサポートベクター
マージンは、境界と、境界に最も近いデータとの距離です。この最も近いデータをサポートベクターと呼びます。境界の位置はサポートベクターだけで決まり、遠くにある大多数のデータは影響しません。
なぜマージンを広く取るのか
境界がデータのすぐそばを通ると、少し違う新しいデータが来ただけで、反対側に分類されてしまいます。両側に余裕を持たせた境界は、未知のデータに対しても誤りにくくなります。つまりマージン最大化は、汎化性能を高めるための考え方です。
数式では、境界を w・x + b = 0 と表し、サポートベクターで |w・x + b| = 1 となるように尺度をそろえると、マージンは 1 / ||w||(両側を合わせた幅は 2 / ||w||)になります。そのため、すべてのデータを正しく分けるという条件のもとで、||w|| を最小にする最適化問題として解きます。
ハードマージンとソフトマージン
すべての訓練データを完全に分けることを求める方式を、ハードマージンと呼びます。しかし現実のデータにはノイズや外れ値があり、完全には分けられないことが多くあります。そこで、境界を越えるデータをある程度許し、そのはみ出しに罰(ペナルティ)を与える方式を使います。これがソフトマージンで、罰の強さはパラメータCで調整します。
直線では分けられないデータには、カーネルトリックを組み合わせます。高次元の空間でマージン最大化を行うことで、元の空間では曲がった境界を学習できます。
覚え方
「境界は、両側のいちばん近いデータからなるべく遠くに引く」と覚えます。
G検定での出題
出題のされ方
SVMが境界を決める基準として、マージンとサポートベクターの意味が問われます。ハードマージンとソフトマージンの違いや、カーネルトリックと組み合わせた非線形な分類との関係も問われます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
マージン最大化で決めた境界は、境界から遠く離れたデータを少し動かしても、サポートベクターが変わらなければ変わらない。
答えを見る
答え ◯ 正しい
境界の位置を決めるのは、境界に最も近いサポートベクターだけです。遠くのデータは影響しません。
-
ハードマージンは、訓練データの一部が境界を越えたり、マージンの内側に入ったりすることを許す方式である。
答えを見る
答え × 誤り
はみ出しを許すのはソフトマージンです。ハードマージンは、すべての訓練データを誤りなく分けることを前提にします。
-
カーネルトリックを使って非線形な境界を学習するSVMでは、マージン最大化の考え方は使われない。
答えを見る
答え × 誤り
カーネルトリックを使うSVMも、写像した高次元の空間でマージンを最大化します。その境界を元の空間で見ると、曲がった境界になります。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目7 教師あり学習)
- Bernhard E. Boser, Isabelle M. Guyon, Vladimir N. Vapnik, A Training Algorithm for Optimal Margin Classifiers, Proceedings of COLT '92, 144–152 (1992)
- Corinna Cortes, Vladimir Vapnik, Support-Vector Networks, Machine Learning 20(3), 273–297 (1995)
- scikit-learn User Guide, Support Vector Machines