Home OCVX2 : Tout ce que vous avez toujours voulu savoir sur les SVMS
Post
Cancel

OCVX2 : Tout ce que vous avez toujours voulu savoir sur les SVMS

Lien de la note Hackmd

On a un probleme de classification binaire:

Dans notre exemple, il n’y a pas qu’un seul hyperplan separant les 2 classes:

Hyperplan

Lequel des hyperplans semble meilleur ?

Celui du milieu

On a une infinite de solutions possibles (meme risque empirique), mais toutes les solutions n’ont pas les memes performances en generalisation

On cherche $(w,b)\in\mathbb R^p\times\mathbb R$ tel que tous les echantillons de la classe $-1/+1$ soient dans le demi espace:

  • positif: $w^Tx_i+b\ge0$ $y_i=+1$
  • negatif: $w^Tx_i+b\le0$ $y_i=-1$

Marge

Distance d’un point $x_0$ a un hyperplan:

\[d(x_0,H)=\Vert y-x_0\Vert\]

\[(L)=\{x_0+tw,t\in\mathbb R\}\] \[y\in(L),\exists t\in\mathbb R, y=x_0+tw\\ \begin{aligned} &y\in(H)w^Ty+b=0\\ &w^T(x_0+tw)+b=0\\ &w^Tx_0+\underbrace{tw^Tw}_{\Vert w\Vert^2}+b=0\\ \end{aligned}\\ t=-\frac{1}{\Vert w\vert^2}(w^Tx_0+b)\] \[\begin{aligned} d(x_0,H)=\Vert y-x_0\Vert&=\Vert x_0+tw-x_0\Vert\\ &=\Vert tw\Vert\\ &=\vert t\vert\cdot\Vert w\Vert\\ &=\biggr\vert-\frac{1}{\Vert w\Vert^2}(w^Tx_0+b)\biggr\vert\times\Vert w\Vert \end{aligned}\\ \boxed{d(x_0, H)=\frac{\vert w^Tx_0+b}{\Vert w\Vert}}\] \[\begin{aligned} M_H&=\min_i\{d(x_i,H)\}\\ &=\min_i\biggr\{\frac{\vert w^Tx_i+b\vert}{\Vert w\Vert}\biggr\}\\ &= \frac{1}{\Vert w\Vert}\min_i\{\vert w^Tx_i+b\vert\}\\ &= \frac{\vert w^Tx_s+b\vert}{\Vert w\Vert}\quad x_s\text{ vecteur de support} \end{aligned}\]

On cherche

\[\text{arg}\max_{(w,b)}M_H=\text{arg}\max_{(w,b)}\frac{\vert w^T x_s+b\vert}{\Vert w\Vert}\]

On va choisir $(w,b)$ tels que $\vert w^T x_s+b\vert =1$

Marge normalisee: $\frac{1}{\Vert w\Vert}$

SVM

On cherche a:

\[\begin{aligned} \text{maximiser}&\frac{1}{\Vert w\Vert}\\ \text{maximiser}&\frac{2}{\Vert w\Vert}\\ \text{minimiser}&\frac{1}{2}\Vert w\Vert^2\\ \end{aligned}\]\[\frac{1}{2}\Vert w\Vert^2=\frac{1}{2}w^Tw\\ y_i(w^Tx_i+b)\ge1\Leftrightarrow 1 - y_i(w^Tx_i+b)\le 0\quad\forall i\]

Conditions KKT

Stationnarite du Lagrangien

\[\begin{aligned}\nabla_w\mathscr L(w,b,\lambda)&=0 \\ &=\underbrace{\frac{\partial}{\partial w} (\frac{1}{2}w^Tw)}_{w} - \sum_{i=1}^n\frac{\partial}{\partial w}(\lambda_i\underbrace{(y_i(w^T}_{\lambda_i y_i x_i}x_i+b)-1))\\ 0&= w-\sum_{i=1}^n\lambda_iy_ix_i\\ w&=\sum_{i=1}^n\lambda_iy_ix_i\quad w \text{ est une combinaison lineaire des } x_i \end{aligned}\\ \nabla_b\mathscr L(w,b,\lambda)=\boxed{0=\sum_{i=1}^n\lambda_iy_i}\]

A chaque $x_i$ correspond un $\lambda_i$

  • $\lambda_i\ge 0\to\lambda_i$ est la “force” avec laquelle $x_i$ repousse l’hyperplan
  • $\sum_{i=1}^n\lambda_iy_i=0\to$ l’hyperplan est a l’equilibre

Complementarite

\[\forall i=1,\dots,n\quad\lambda_i(1-y_i(w^Tx_i+b))=0\quad(\alpha_i^*g_i(x^*)=0\quad\forall i)\]

Soit $\lambda_i=0$:

\[1-y_i(w^Tx_i+b)\lt 0\Leftrightarrow y_i(\underbrace{w^Tx_i+b}_{x_i \text{ n'est pas} \\ \text{un vecteur}\\ \text{de support}})\gt 1\\ \lambda_i=0\begin{cases} x_i\text{ ne repousse pas l'hyperbole}\\ \text{ne contribue pas a la solution } w=\sum_{i=1}^n\lambda_iy_ix_i\\ \text{la solution ne change pas si on enleve } x_i\text{ du jeu de donnees} \end{cases}\]

Soit $\lambda_i\gt 0$:

\[1-y_i(w^Tx_i+b)=0\Leftrightarrow y_i(\underbrace{w^Tx_i+b}_{x_i \text{ est un vecteur} \\ \text{de support}})=1\\ \lambda_i\gt 0\begin{cases} \text{la solution change si on enleve } x_i \text{ du jeu de donnees} \end{cases}\]

Recap

\[w=\sum_{i=1}^n\lambda_iy_ix_i\\ o=\sum_{i=1}^n\lambda_iy_i\\ \mathscr L(w,b,\lambda)=\frac{1}{2}w^Tw-\sum_{i=1}^n\lambda_i(y_i(w^Tx_i+b)-1)\\ \begin{aligned} w^Tw&= (\sum_{i=1}^n\lambda_iy_ix_i)^T(\sum_{j=1}^n\lambda_jy_jx_j)\\ &= \sum_{i=1}^n\lambda_iy_i(x_i)^T\sum_{j=1}^n\lambda_jy_jx_j\\ &= \sum_i\sum_j\lambda_i\lambda_jy_iy_jx_i^Tx_j \end{aligned}\] \[\begin{aligned} \sum_{i=1}^n\lambda_i(y_i(w^Tx_i+b)-1)=\sum_{i=1}^n\underbrace{\lambda_iy_iw^Tx_i}&+\underbrace{b\sum_{i=1}^n\lambda_iy_i}-\sum_{i=1}^n\lambda_i\\ \sum_{i}\lambda_iy_i(\sum_{j=1}^n\lambda_jy_jx_j)^Tx_i&=\sum_i\sum_j\lambda_i\lambda_jy_iy_jx_i^Tx_j \end{aligned}\]

Sous reserve qu’on puisse resoudre le dual:

  • On trouve $\lambda_i^{*}$
  • On trouve $w^{*}=\sum_{i=1}^n\lambda_i^{*}y_ix_i$
  • On trouve $b^{*}$ grace aux vecteurs de support $y_i(w^{*t}x_i+b^{*})=1$

Probleme dual du SVM se resout par Sequential Minimal Optimization Pour resoudre

This post is licensed under CC BY 4.0 by the author.