SVM

Linear SVM

Hyperplan

Support vectors

Fonction coût

La fonction coût cherche à faire plusieurs choses:

  1. Minimiser les erreurs de classification
\[\text{Hinge loss function:} \\ max(0, 1 - y_i \times (w \cdot x_i + b))\]
  1. Maximiser la marge
\[\begin{aligned} \text{Maximiser } & \rho = \frac{2}{||w||} \\[7pt] \equiv \text{Minimiser } & ||w||^2 = w^T w \\ \ \end{aligned} \\ \forall (x_i, y_i), i=1..n: y_i (w^T w_i + b) \geq 1\]
  1. Admettre des erreurs de classification.

    C est un hyperparamètre de régularisation: pour un C infiniment grand, la marge devient une marge stricte (hard margin) tandis qu’un petit C résulte en une limite souple (soft limit) plus large — qui accepte davantage de points mal classifiés.

    Suivant les implémentations, on peut avoir λ à la place, qui fait l’inverse de C (C ∼ 1/λ): un grand λ admet une marge souple plus grande tandis que pour un λ infiniment petit, la marge devient une marge stricte.

\[\text{SVM loss function:} \\[7pt] J(w) = \frac{1}{2} ||w||^2 + C \left[ \frac{1}{N} \sum_i^N max(0, 1 - y_i \times (w \cdot x_i + b)) \right] \\[20pt] J(w) = \frac{\lambda}{2} ||w||^2 + \left[ \frac{1}{N} \sum_i^N max(0, 1 - y_i \times (w \cdot x_i + b)) \right]\]

Gradient

\[J(w)' = \frac{1}{N} \sum_i^N \begin{cases} w & \text{si } max(0, 1 - y_i \times (w \cdot x_i + b)) = 0 \\ w - Cy_i x_i & \text{sinon} \end{cases}\]

SVC.ipynb
Linear SVM


Kernel SVM

Kernel SVM


Pour & Contre