web-dev-qa-db-ja.com

SVM-ハードマージンまたはソフトマージン?

線形に分離可能なデータセットが与えられた場合、ソフトマージンSVMよりもハードマージンSVMを使用するほうが必然的に良いですか?

54
D.G

トレーニングデータセットが線形に分離可能である場合でも、ソフトマージンSVMの方が優れていると思います。その理由は、ハードマージンSVMでは、単一の外れ値が境界を決定できるため、分類器がデータのノイズに対して過度に敏感になるためです。

下の図では、単一の赤い外れ値が基本的に境界を決定します。これはオーバーフィットの特徴です

enter image description here

ソフトマージンSVMが何をしているのかを理解するには、デュアルフォーミュレーションでそれを見ることをお勧めします。ここでは、ハードマージンSVMと同じマージン最大化目標(マージンは負になる可能性がある)を確認できます。ただし、サポートベクトルに関連付けられた各ラグランジュ乗数はCによって制限されるという追加の制約があります。これは、本質的に、決定境界上の任意の単一ポイントの影響を制限します。導出については、マシンおよびその他のカーネルベースの学習方法」。

その結果、ソフトマージンSVMは、データセットが線形に分離可能であり、オーバーフィットする可能性が低い場合でも、非ゼロのトレーニングエラーを持つ決定境界を選択できます。

次に、合成問題でlibSVMを使用する例を示します。丸で囲まれた点はサポートベクターを示します。 Cを小さくすると、単一のデータポイントの影響がCによって制限されるという意味で、安定性を得るために分類器が線形分離可能性を犠牲にすることがわかります。

enter image description here

サポートベクターの意味:

ハードマージンSVMの場合、サポートベクトルは「マージン上」にあるポイントです。上の図では、C = 1000はハードマージンSVMに非常に近く、丸で囲まれたポイントがマージンに触れるポイントであることがわかります(その写真ではマージンはほぼ0であるため、本質的に分離超平面と同じです)

ソフトマージンSVMの場合、二重変数の観点から説明する方が簡単です。二重変数に関するサポートベクトル予測子は、次の関数です。

enter image description here

ここで、アルファとbはトレーニング手順中に見つかるパラメーターであり、xi、yiはトレーニングセット、xは新しいデータポイントです。サポートベクトルは、予測セットに含まれるトレーニングセットからのデータポイント、つまり、非ゼロアルファパラメーターを持つデータポイントです。

122

私の意見では、Hard Margin SVMは特定のデータセットにオーバーフィットするため、一般化できません。線形的に分離可能なデータセット(上記の図を参照)でも、境界内の外れ値がマージンに影響を与える可能性があります。 Cを微調整することでサポートベクターの選択を制御できるため、ソフトマージンSVMの汎用性が高まります。

3
codingJitters