67 votes

SVM - marges dures ou souples?

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

1 votes

Je pense que dans le cas d'un ensemble de données linéairement séparable, il n'est pas nécessaire d'utiliser SVM, SVM est utile lorsque vous n'avez pas une bonne séparation linéaire des données. L'honneur de SVM est les marges souples, dans votre cas vous n'en aviez pas besoin.

140voto

Yaroslav Bulatov Points 7316

Je m'attendrais à ce que le SVM à marge souple soit meilleur même lorsque l'ensemble de données d'entraînement est linéairement séparable. La raison en est que dans un SVM à marge dure, un seul outlier peut déterminer la frontière, ce qui rend le classificateur trop sensible au bruit dans les données.

Dans le diagramme ci-dessous, un seul outlier rouge détermine essentiellement la frontière, ce qui est le signe d'un overfitting

entrer la description de l'image ici

Pour avoir une idée de ce que fait le SVM à marge souple, il est préférable de le regarder dans sa formulation duale, où vous pouvez voir qu'il a le même objectif de maximisation de la marge (la marge peut être négative) que le SVM à marge dure, mais avec une contrainte supplémentaire selon laquelle chaque multiplicateur de Lagrange associé au vecteur de support est borné par C. Essentiellement, cela limite l'influence de tout point sur la frontière de décision, pour la dérivation, voir la Proposition 6.12 dans "An Introduction to Support Vector Machines and Other Kernel-based Learning Methods" de Cristianini/Shaw-Taylor.

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

Voici un exemple utilisant libSVM sur un problème synthétique. Les points entourés montrent les vecteurs de support. Vous pouvez voir que la diminution de C fait que le classificateur sacrifie la séparabilité linéaire pour gagner en stabilité, dans un sens où l'influence de tout datapoint unique est maintenant bornée par C.

entrer la description de l'image ici

Signification des vecteurs de support:

Pour le 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 du SVM à marge dure, et vous pouvez voir que les points entourés sont ceux qui toucheront la marge (la marge est presque nulle dans cette image, donc c'est essentiellement la même chose que le plan hyperplan séparateur)

Pour le SVM à marge souple, il est plus facile de les expliquer en termes de variables duales. Votre prédicteur de vecteurs de support en termes de variables duales est la fonction suivante.

entrer la description de l'image ici

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

0 votes

M'a beaucoup aidé! Pouvez-vous expliquer le terme "vecteurs de support"? Quelle est sa signification dans les SVM?

3 votes

Les vecteurs de support sont simplement les points qui sont mal classés ou correctement classés mais "proches" du plan de décision. La règle de décision est de la forme f(x) = w point x + b et la plupart des formulations SVM définissent un "proche" x comme abs(f(x)) < 1.

0 votes

@YaroslavBulatov, dans votre première figure, illustrant le classificateur "marge dure", la ligne bleue ne ressemble pas à un hyperplan de marge maximale pour moi. Si je rends cette ligne plus horizontale, j'obtiendrai une marge plus grande. Comment avez-vous obtenu cet hyperplan de "marge dure"?

5voto

codingJitters Points 11

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X