Quelqu'un peut-il m'expliquer comment on conçoit une fonction de décision SVM? Ou pointez-moi vers une ressource qui discute d'un exemple concret.
ÉDITER
Pour l'exemple ci-dessous, je peux voir que l'équation sépare les classes avec une marge maximale. Mais comment puis-je ajuster les poids et écrire des équations pour les hyperplans sous la forme suivante.
J'essaie d'obtenir la théorie sous-jacente dans l'espace 2D (car c'est plus facile à visualiser) avant de penser à des dimensions plus élevées.
J'ai trouvé une solution pour cela. Quelqu'un peut-il confirmer si c'est correct?
le vecteur de poids est (0, -2) et W_0 est 3
Réponses:
Il existe au moins deux façons de motiver les SVM, mais je prendrai ici l'itinéraire le plus simple.
Maintenant, oubliez tout ce que vous savez sur SVM pour le moment et concentrez-vous simplement sur le problème actuel. On vous donne un ensemble de points ainsi que quelques étiquettes ( y i ) qui sont de { 1 , - 1 } . Maintenant, nous essayons de trouver une ligne en 2D de telle sorte que tous les points avec l'étiquette 1 tombent d'un côté de la ligne et tous les points avec l'étiquette - 1 tombent de l'autre côté.D={(xi1,xi2,yi)} yi {1,−1} 1 −1
Tout d'abord, réalisez que est une ligne en 2D et w 0 + w 1 x 1 + w 2 x 2 > 0 représente "un côté" de la ligne et w 0 + w 1 x 1 + w 2 x 2 < 0 représente "l'autre côté" de la ligne.w0+w1x1+w2x2=0 w0+w1x1+w2x2>0 w0+w1x1+w2x2<0
De ce qui précède, nous pouvons conclure que nous voulons un vecteur tel que, w 0 + w 1 x i 1 + w 2 x i 2 ≥ 0 pour tous les points x i avec y i = 1 et w 0 + w 1 x i 1 + w 2 x i 2 < 0[ w0, w1, w2] w0+ w1Xje1+ w2Xje2≥ 0 Xje yje= 1 w0+ w1Xje1+ w2Xje2< 0 pour tous les points avec y i = - 1 [1].Xje yje= - 1
Supposons qu'une telle ligne existe réellement, alors je peux définir un classificateur de la manière suivante,
J'ai utilisé une fonction objective arbitraire ci-dessus, nous ne nous soucions pas vraiment pour le moment de la fonction objective utilisée. Nous voulons juste un qui réponde à nos contraintes. Puisque nous avons supposé qu'une ligne existe de telle sorte que nous pouvons séparer les deux classes avec cette ligne, nous trouverons une solution au problème d'optimisation ci-dessus.w
Ce qui précède n'est pas SVM mais il vous donnera un classificateur :-). Cependant, ce classificateur peut ne pas être très bon. Mais comment définissez-vous un bon classificateur? Un bon classificateur est généralement celui qui fonctionne bien sur l'ensemble de test. Idéalement, vous devriez passer en revue tous les possibles qui séparent vos données d'entraînement et voir lesquels d'entre eux fonctionnent bien sur les données de test. Cependant, il existe des w infinis , c'est donc tout à fait désespéré. Au lieu de cela, nous considérerons quelques heuristiques pour définir un bon classificateur. Une heuristique est que la ligne qui sépare les données sera suffisamment éloignée de tous les points (c'est-à-dire qu'il y a toujours un écart ou une marge entre les points et la ligne). Le meilleur classificateur parmi ceux-ci est celui avec la marge maximale. C'est ce qui est utilisé dans les SVM.w w
Au lieu d'insister sur le fait que pour tous les points x i avec y i = 1 et w 0 + w 1 x i 1 + w 2 x i 2 < 0 pour tous les points x i avec y i = - 1 , si nous insistons pour que w 0 +w0+ w1Xje1+ w2Xje2≥ 0 Xje yje= 1 w0+ w1Xje1+ w2Xje2< 0 Xje yje= - 1 pour tous les points x i avec y i = 1 et w 0 + w 1 x i 1 + w 2 x i 2 ≤ - 1 pour tous les points x i avec y i = - 1w0+ w1Xje1+ w2Xje2≥ 1 Xje yje= 1 w0+ w1Xje1+ w2Xje2≤ - 1 Xje yje= - 1 , alors nous insistons pour que les points soient loin de la ligne. La marge géométrique correspondant à cette exigence se révèle être .1∥ w ∥2
Nous obtenons donc le problème d'optimisation suivant,
Script CVX pour résoudre l'exemple de problème:
Addendum - Marge géométrique
la source