1行定義
ソフトマージンとは、SVMで一部のデータがマージンの内側に入ることや誤分類を許し、その度合いに罰を与えながらマージンを広く取る方法のことです。
くわしく
ソフトマージンは、サポートベクターマシン(SVM)を現実のデータで使うための工夫です。シラバスのキーワードには含まれていませんが、マージン最大化を理解するうえで欠かせない考え方です。
ハードマージンの限界
SVMは、クラスを分ける境界と、境界に最も近いデータとの距離(マージン)が最大になるように境界を決めます。このとき、すべての学習データを誤りなく分けることを求める方式を、ハードマージンといいます。
しかし現実のデータには、ラベルの誤りや外れ値が含まれます。そもそも直線(高次元では超平面)では分けきれないことも多く、その場合ハードマージンでは境界が求まりません。外れ値が1件あるだけで、境界がそちらへ大きく引き寄せられることもあります。
はみ出しを許して罰を与える
ソフトマージンでは、各データがマージンの内側にどれだけ入り込んだかを表す変数(スラック変数)を導入します。そして、「マージンを広く取ること」と「はみ出しの合計を小さくすること」のバランスをとります。このバランスを決めるのが、ハイパーパラメータCです。
- Cを大きくする:はみ出しへの罰が重くなり、学習データを正しく分けることを優先する。マージンは狭くなり、過学習しやすい。
- Cを小さくする:はみ出しをある程度許して、マージンを広く取る。境界はなめらかになるが、小さくしすぎると学習不足になる。
Cを極端に大きくすると、ハードマージンに近づきます。
位置づけ
ソフトマージンは、1995年のコルテスとヴァプニクの論文で導入されました。カーネルトリックと組み合わせて使うのが一般的です。誤差関数の見方をすると、ヒンジ損失にL2正則化を加えたものを最小化する問題と同じ形になります。Cの値は、交差検証などで検証データの性能を見ながら決めます。
G検定での出題
出題のされ方
シラバスのキーワードではなく、マージン最大化とサポートベクターマシン(SVM)の背景知識として扱われます。ハードマージンとの違いや、パラメータCの大小とマージンの広さ、過学習の関係が問われます。
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
ソフトマージンのSVMでは、マージンの内側に入ったデータや誤分類されたデータも、境界の位置を決めるサポートベクターに含まれる。
答えを見る
答え ◯ 正しい
マージンの境目の上にあるデータに加えて、はみ出したデータも境界の位置に影響します。マージンの外側で正しく分類されたデータは影響しません。
-
ソフトマージンは線形のSVMのための方法であり、カーネルトリックを使った非線形のSVMと組み合わせることはできない。
答えを見る
答え × 誤り
実際に使われるSVMの多くは、カーネルトリックとソフトマージンを組み合わせています。RBFカーネルのSVMでも、パラメータCで罰の強さを調整します。
-
データに外れ値が含まれるとき、すべての学習データを正しく分けることを求めるハードマージンでは、1件の外れ値に引きずられて境界が大きく動くことがある。
答えを見る
答え ◯ 正しい
ハードマージンでは、外れ値も含めて正しく分けなければなりません。外れ値が相手のクラスの近くにあると、マージンが極端に狭くなります。