--- title: "OCVX2 : Tout ce que vous avez toujours voulu savoir sur les SVMS" date: 2021-10-27 11:00 categories: [Image S9, OCVX2] tags: [Image, SCIA, S9, OCVX2] math: true --- Lien de la [note Hackmd](https://hackmd.io/@lemasymasa/H15lscIIY) On a un probleme de classification binaire: ![](https://i.imgur.com/33DWXN3.png) :::warning **Probleme**: donnees d'apprentissage $$ \{(x_i,y_i)\}_{i=1}^n\quad x_i\in\mathbb R^p\quad y_i\in\{-1,+1\} $$ On cherche un hyperplan de $\mathbb R^p$ qui separe parfaitement les deux classes ::: Dans notre exemple, il n'y a pas qu'un seul hyperplan separant les 2 classes: ![](https://i.imgur.com/zvocKF9.png) ## Hyperplan :::info **Hyperplan**: caracterise par un vecteur normal $w\in\mathbb R^p$ et un offset $b\in\mathbb R$ $$ x\in H\Leftrightarrow w^Tx+b=0 $$ ::: *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 :::success Geometriquement, on veut celui qui est le plus loin des points *(aka la marge de l'hyperplan)* ::: 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$ ![](https://i.imgur.com/S8qoN9I.png) :::danger Dans tous les cas: $$ \boxed{\forall x_i\in\mathbb R^p, y_i(w^Tx_i+b)\ge 0} $$ ::: ## Marge :::info **Marge**: distance de l'hyperplan aux echantillons les plus proches $$ \begin{aligned} M_H=\min_{i=1,\dots,n}\{d(x_i,H)\} &= \min_{i=1,\dots,n}\{d(x_i,x),x\in\mathbb R^n,w^Tx+b=0\}\\ &= d(x_s,H)\quad\text{avec } x_s \text{ vecteur de support} \end{aligned} $$ ::: :::success On va chercher l'hyperplan qui maximise la marge $$ H^*=\text{arg}\max_{(w,b)\in\mathbb R^p\times\mathbb R}M_H=d(x_s,H) $$ ::: Distance d'un point $x_0$ a un hyperplan: ![](https://i.imgur.com/LtenmYc.png) $$ d(x_0,H)=\Vert y-x_0\Vert $$ ![](https://i.imgur.com/Jxd8R83.png) $$ (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} $$ :::success Si $(w,b)$ est une solution, $(kw,kb)$ $k\gt0$ est aussi solution. ::: On va choisir $(w,b)$ tels que $\vert w^T x_s+b\vert =1$ ![](https://i.imgur.com/0A1YVVV.png) ![](https://i.imgur.com/i1HgLGj.png) ![](https://i.imgur.com/G7obDKZ.png) 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} $$ :::danger SVM: $$ \boxed{\text{arg}\min_{(w,b)\in\mathbb R^d\times\mathbb R}\frac{1}{2}\Vert w\Vert^2\\ \begin{aligned} \text{tel que } &y_i(w^Tx_i+b)\ge1\\ &\forall i=1,\dots,n \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 $$ :::info Le Lagrangien de (SVM) est: $$ \begin{aligned} \mathscr L(w,b,\lambda)&=\frac{1}{2}w^Tw+\sum_{i=1}^n\lambda_i(1-y_i(w^Tx_i+b))\quad w\in\mathbb R^p, b\in\mathbb R,\lambda\in\mathbb R^n\\ &=\frac{1}{2}w^Tw-\sum_{i=1}^n\lambda_i(y_i(w^Tx_i+b)-1) \end{aligned} $$ ::: ## 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} $$ :::danger **Probleme dual du SVM** $$ \boxed{ \max_{\lambda_i\ge 0 \\ \sum_{i=1}^n\lambda_iy_i}\mathscr L=-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_jx_i^Tx_j+\sum_{i=1}^n\lambda_i } $$ ::: 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](https://cs229.stanford.edu/materials/smo.pdf)