Classification et séparation linéaire

Programmation pour l’IA

Florent Capelli

Université d’Artois, CRIL

Classification et séparation linéaire

Une limite des arbres de décision

A classification problem
A classification problem… hard for decision tree
A decision tree

Séparation linéaire

On préférerait classifier en regardant signe(ax+b).

Questions :

  • Comment définir une “bonne” séparation linéaire ?
  • Comment trouver cette séparation ?
  • Quelles sont les limites ?

Convention

Aujourd’hui, classification binaire :

Séparation linéaire: trouver \(\mathbf{w}= (w_1,\dots,w_{n})\) tels que pour tout \((\mathbf{x},y) \in D\), \[signe(\mathbf{w}^T \mathbf{x}) = signe(\sum_{i=1,..n} w_i x_i) = y\]

Séparation linéaire vs affine

En dimension \(1\): pour \((x,y)\), on cherche \(w\) tel que \(signe(wx) = y\).

Et si on cherche \(w_1, w_2\) tels que \(signe(w_1x+w_2) = y\) ?

On se ramène juste au cas en dimension 2 en prenant : \(\mathbf{x}= (x,1)\) pour tout \((x,y)\) du jeu de données.

Dans ce cas, en effet : \((w_1,w_2)^T \times (x,1) = w_1x+w_2\).

Séparation linéaire en dimension \(n\): hyperplan

Si \(\mathbf{w}= (w_1,\dots,w_n)\) et \(\mathbf{x}= (x_1,\dots,x_n)\), on a \(\mathbf{w}^T \mathbf{x}= \sum_{i} w_i x_i\).

On sépare en : \(\mathbf{w}^T \mathbf{x}< 0\) et \(\mathbf{w}^T \mathbf{x}> 0\).

La limite est donc:

\[\{\mathbf{x}\mid \mathbf{w}^T \mathbf{x}= 0\} = \mathrm{Ker}(\mathbf{w})\]

C’est un hyperplan : une droite en dimension \(2\), un plan en dimension \(3\).

Un hyperplan en dimension 3
Un hyperplan en dimension 3

Séparation par régression

Principe

Pour \(S = \{((\mathbf{x}^1,y^1), \dots, (\mathbf{x}^m, y^m)\}\), on cherche \(\mathbf{w}\) minimisant \[E(\mathbf{w}; S) = \sum_{j=1..m} (\mathbf{w}^T\mathbf{x}^j-y^j)^2\]

Exemple

Minimiser l’erreur

On cherche \(\mathbf{w}\) tel que \(E(\mathbf{w}; S)\) est minimal.

Si \(\delta\) est bien choisi et \(f\) suffisamment régulière, cette procédure converge vers un minimum local de \(f\) (et un minimum global quand \(f\) est convexe).

Descente de gradient pour la régression

Exemple

Donc \(\Delta E\) en \(\mathbf{w}^0=(1,-1)\) donne \((0,16)\). En prenant \(\delta = 0.1\), on définit \(\mathbf{w}^1 = \mathbf{w}^0 + (0, 1.6) = (1, 0.6)\)

Trop de données ?

\(\Delta E\) dépend de l’ensemble des points du jeu de données :

On utilise une méthode différentes : le gradient stochastique.

Gradient stochastique

Critiques de la régression linéaire

Pour la classification, la régression linéaire n’est ici pas optimale :

SVM

SVM?

  • “Support Vector Machine”, séparateurs à larges marges.
  • On cherche à séparer les données avec la plus large bande possible :

Notion de marge

Distance de x à l’hyperplan \mathbf{w}^T\mathbf{x}=0
  • La distance entre \(\mathbf{x}\) et l’hyperplan est \(d(\mathbf{x},\mathbf{w}) = {|\mathbf{w}^T\mathbf{x}| \over \|\mathbf{w}\|}\) où \(\|\mathbf{w}\| = \sqrt{\sum_i w_i^2}\) (voir cours de cet AM).
  • Marge géométrique \(y \times d(\mathbf{x},\mathbf{w})\):
    • si \(y\) est bien classé, c’est la distance, et \(\geq 0\).
    • Sinon c’est son opposé et \(\leq 0\).

Trouver la vaste marge

\(\min \|\mathbf{w}\|\) tel que pour tout \((\mathbf{x},y) \in S\)

\(y \times \mathbf{w}^T\mathbf{x}\geq 1\).

\(\mathbf{w}\mapsto \|\mathbf{w}\|\) est convexe et \(y \times \mathbf{w}^T\mathbf{x}\) sont des contraintes linéaires donc on a des outils pour trouver une solution optimale (optimisation convexe).

Marges douces

\(\min \|\mathbf{w}\|+C \sum_i e_i\) tel que pour tout \((\mathbf{x}^i,y^i) \in S\)

\(y^i \times \mathbf{w}^T\mathbf{x}^i \geq 1-e_i\).

Conclusion