web-dev-qa-db-fra.com

SVM - marges dures ou douces?

Étant donné un ensemble de données séparable linéairement, est-il nécessairement préférable d'utiliser un SVM à marge dure plutôt qu'un SVM à marge souple?

54
D.G

Je m'attendrais à ce que le SVM à marge douce soit meilleur même lorsque l'ensemble de données d'apprentissage est séparable linéairement. La raison en est que dans un SVM à marge dure, une seule valeur aberrante peut déterminer la limite, ce qui rend le classificateur trop sensible au bruit dans les données.

Dans le diagramme ci-dessous, une seule valeur aberrante rouge détermine essentiellement la limite, qui est la marque de sur-ajustement

enter image description here

Pour avoir une idée de ce que fait le SVM à marge souple, il est préférable de le regarder dans la formulation double, où vous pouvez voir qu'il a le même objectif de maximisation de la marge (la marge pourrait être négative) que le SVM à marge dure, mais avec une contrainte supplémentaire que chaque multiplicateur de lagrange associé au vecteur de support est borné par C. Essentiellement, cela limite l'influence de tout point unique sur la frontière de décision, pour la dérivation, voir la proposition 6.12 dans "Introduction au vecteur de support" de Cristianini/Shaw-Taylor. Machines et autres méthodes d'apprentissage basées sur le noyau ".

Le résultat est que le SVM à marge douce pourrait choisir une frontière de décision qui a une erreur d'apprentissage non nulle même si l'ensemble de données est séparable linéairement et est moins susceptible de s'ajuster.

Voici un exemple d'utilisation de libSVM sur un problème synthétique. Les points encerclés montrent des vecteurs de support. Vous pouvez voir que la diminution de C oblige le classificateur à sacrifier la séparabilité linéaire afin de gagner en stabilité, en ce sens que l'influence de n'importe quel point de donnée est désormais limitée par C.

enter image description here

Signification des vecteurs de support:

Pour SVM à marge dure, les vecteurs de support sont les points qui sont "sur la marge". Dans l'image ci-dessus, C = 1000 est assez proche de SVM à marge dure, et vous pouvez voir que les points encerclés sont ceux qui toucheront la marge (la marge est presque 0 sur cette image, c'est donc essentiellement la même chose que l'hyperplan de séparation )

Pour les SVM à marge douce, il est plus facile de les expliquer en termes de variables doubles. Votre prédicteur de vecteur de support en termes de variables doubles est la fonction suivante.

enter image description here

Ici, alphas et b sont des paramètres qui se trouvent pendant la procédure d'entraînement, les xi, les yi sont votre ensemble d'entraînement et x est le nouveau point de données. Les vecteurs de support sont des points de données de l'ensemble d'apprentissage qui sont inclus dans le prédicteur, c'est-à-dire ceux avec un paramètre alpha non nul.

122
Yaroslav Bulatov

À mon avis, Hard Margin SVM s'adapte à un ensemble de données particulier et ne peut donc pas se généraliser. Même dans un ensemble de données linéairement séparable (comme illustré dans le diagramme ci-dessus), les valeurs aberrantes bien à l'intérieur des limites peuvent influencer la marge. Soft Margin SVM a plus de polyvalence car nous avons le contrôle sur le choix des vecteurs de support en ajustant le C.

3
codingJitters