Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un...

38
Toolbox SimpleSVM Gaëlle Loosli, Stéphane Canu [email protected] http://asi.insa-rouen.fr/~gloosli . INSA - Rouen France Laboratoire PSI, FRE CNRS 2645 Conférence CAp04 - Montpellier - 20 octobre 2004

Transcript of Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un...

Page 1: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Toolbox SimpleSVM

Gaëlle Loosli, Stéphane [email protected]

http://asi.insa-rouen.fr/~gloosli

.

INSA - Rouen France

Laboratoire PSI, FRE CNRS 2645

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 2: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Les SVMs sont... ?

... efficaces :� "... Méthode Générale, facile d’emploi. Résultats en général équivalents

et souvent meilleurs..."a

...lents !� "... Problèmes de stockage de la matrice noyau (si milliers d’exemples).

Long dans ce cas..." b

objectif : Les SVMs sont efficaces et rapides.

aA. Cornuéjols - Cours DEA Paris Sud - Orsay

bidem

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 3: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Les SVMs sont... ?

... efficaces :� "... Méthode Générale, facile d’emploi. Résultats en général équivalents

et souvent meilleurs..."a

...lents !� "... Problèmes de stockage de la matrice noyau (si milliers d’exemples).

Long dans ce cas..." b

objectif : Les SVMs sont efficaces et rapides.

aA. Cornuéjols - Cours DEA Paris Sud - Orsay

bidem

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 4: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Les SVMs sont... ?

... efficaces :� "... Méthode Générale, facile d’emploi. Résultats en général équivalents

et souvent meilleurs..."a

...lents !� "... Problèmes de stockage de la matrice noyau (si milliers d’exemples).

Long dans ce cas..." b

objectif : Les SVMs sont efficaces et rapides.

aA. Cornuéjols - Cours DEA Paris Sud - Orsay

bidem

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 5: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Démonstration

USPSReconnaissance de caractères

� 7291 images� 256 dimensions� 10 classes

Résultats publiés :� Humain 2,5 % d’erreur a

� SVM 4 % d’erreur b

Matlab :� Temps ?� Performance ?

aSimard et al. 1993

b[SS02]

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 6: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Démonstration

USPSReconnaissance de caractères

� 7291 images� 256 dimensions� 10 classes

Résultats publiés :� Humain 2,5 % d’erreur a

� SVM 4 % d’erreur b

Matlab :� Temps ?� Performance ?

aSimard et al. 1993

b[SS02]

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 7: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Groupes de points :

� Trouver une frontière ?

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence 0 < αi < C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 8: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Groupes de points :

� Trouver une frontière ?

� Points utiles ?

Groupe 1 Groupe 2 Groupe 3

Type

inutiles

utiles

à problèmes

Influence 0 < αi < C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 9: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Groupes de points :

� Trouver une frontière ?� Points utiles ?

� Points inutiles ?

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles

à problèmes

Influence 0 < αi < C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 10: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Groupes de points :

� Trouver une frontière ?� Points utiles ?� Points inutiles ?

� Points à problèmes ?

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence 0 < αi < C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 11: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Groupes de points :

� Trouver une frontière ?� Points utiles ?� Points inutiles ?� Points à problèmes ?

� Notion de marge

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence 0 < αi < C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 12: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Groupes de points :

� Trouver une frontière ?� Points utiles ?� Points inutiles ?� Points à problèmes ?� Notion de marge

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence

0 < αi < C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 13: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Groupes de points :

� Trouver une frontière ?� Points utiles ?� Points inutiles ?� Points à problèmes ?� Notion de marge

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence 0

< αi <

C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 14: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Groupes de points :

� Trouver une frontière ?� Points utiles ?� Points inutiles ?� Points à problèmes ?� Notion de marge

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence 0 < αi < C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 15: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Groupes de points :

� Trouver une frontière ?� Points utiles ?� Points inutiles ?� Points à problèmes ?� Notion de marge

Remarque : card(Is) << card(Io)

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence 0 < αi < C

Nom I0 Is Ic

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 16: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner - 2

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Frontière de Décision :

� Données x, y avec y ∈ {−1, 1}

� D(x) = sign(∑

i

αiyik(x, xi) + b)

� Points utiles D(x) = ±1 ⇒ marge�

i

αiyik(x, xi) + b = y

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence 0 < αi < C

Nom I0 Is Ic

Décision α0 = 0 αw = G−1(y − b) a αc = C

aGij = yiyjk(xi, xj)

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 17: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Diviser pour régner - 3

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

−1

−1

−1

0

0

0

1

1

1

Formulation des SVMs :

8

>

>

>

>

<

>

>

>

>

:

minf,b,ξ

1

2‖f‖2

H + C

mX

i=1

ξi

avec yi(f(xi) + b) ≥ 1 − ξi i ∈ [1, m]

et ξi ≥ 0, i ∈ [1, m]

(1)

8

>

>

>

<

>

>

>

:

maxα∈IRm

− 1

2α>Gα + e

avec α>y = 0

et 0 ≤ αi ≤ C i ∈ [1, m]

(2)

Groupe 1 Groupe 2 Groupe 3

Type inutiles utiles à problèmes

Influence 0 < α i < C

Nom I0 Is Ic

Décision α0 = 0 αw = G−1(y − b) a αc = C

aGij = yiyjk(xi, xj) Conférence CAp04 - Montpellier - 20 octobre 2004

Page 18: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

SimpleSVM

� 1. Faire les groupes

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 19: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

SimpleSVM

� 1. Faire les groupes

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 20: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

SimpleSVM

� 1. Faire les groupes

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 21: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

SimpleSVM

� 1. Faire les groupes� 2. Calculer les α a

aGradient Projeté : [Min83] page 197

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 22: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

SimpleSVM

� 1. Faire les groupes� 2. Calculer les α a

aGradient Projeté : [Min83] page 197

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 23: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

SimpleSVM

� 1. Faire les groupes� 2. Calculer les α a

⇒ A chaque boucle, un seul point est ajouté ou retiré de la solution.a

Gradient Projeté : [Min83] page 197

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 24: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

SimpleSVM

� 1. Faire les groupes� 2. Calculer les α a

⇒ A chaque boucle, un seul point est ajouté ou retiré de la solution.a

Gradient Projeté : [Min83] page 197

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 25: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

SimpleSVM

� 1. Faire les groupes� 2. Calculer les α a

⇒ A chaque boucle, un seul point est ajouté ou retiré de la solution.a

Gradient Projeté : [Min83] page 197

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 26: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Calcul des multiplicateurs de Lagrange

αs = G−1(y − b)

Système linéaire. Résolution directe : O(m3)

(m = card(Is))

A chaque boucle, un seul point est ajouté ou retiré de la solution.

.

.

0 0...

.0

0

G Gn+1 n

Méthodes incrémentales

� Cholesky Update, G = LL> ⇒ O(1

3m

2) a

� QR Update, G = QR ⇒ O(26m2)

� Sherman Morrison , mise à jour de G−1 ⇒ O(3m2)

aNumerical Recipes

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 27: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Calcul des multiplicateurs de Lagrange

αs = G−1(y − b)

Système linéaire. Résolution directe : O(m3)

(m = card(Is))

A chaque boucle, un seul point est ajouté ou retiré de la solution.

.

.

0 0...

.0

0

G Gn+1 n

Méthodes incrémentales

� Cholesky Update, G = LL> ⇒ O(1

3m

2) a

� QR Update, G = QR ⇒ O(26m2)

� Sherman Morrison , mise à jour de G−1 ⇒ O(3m2)

aNumerical Recipes

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 28: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Calcul des multiplicateurs de Lagrange

αs = G−1(y − b)

Système linéaire. Résolution directe : O(m3)

(m = card(Is))

A chaque boucle, un seul point est ajouté ou retiré de la solution.

.

.

0 0...

.0

0

G Gn+1 n

Méthodes incrémentales

� Cholesky Update, G = LL> ⇒ O(1

3m

2) a

� QR Update, G = QR ⇒ O(26m2)

� Sherman Morrison , mise à jour de G−1 ⇒ O(3m2)

aNumerical Recipes

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 29: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Ajout d’un point à la solution

D(I0 ∪ Ic) =∑

i αiyik(x[Io,Ic], xi) + b

Calcul coûteux à chaque boucle ! (O(n × m))

Idée : Recherche par bloc (pas p)

p points (Ip) ⇒ D(Ip)

existe-t-il un point mal classé provenant de I0 ?existe-t-il un point bien classé provenant de Ic ?

si oui, une contrainte est violée, il existe une direction de descentesi non, prendre les p points suivants

Compromis entre le nombre de boucles et le temps de calcul par boucle

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 30: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Ajout d’un point à la solution

D(I0 ∪ Ic) =∑

i αiyik(x[Io,Ic], xi) + b

Calcul coûteux à chaque boucle ! (O(n × m))

Idée : Recherche par bloc (pas p)

p points (Ip) ⇒ D(Ip)

existe-t-il un point mal classé provenant de I0 ?existe-t-il un point bien classé provenant de Ic ?

si oui, une contrainte est violée, il existe une direction de descentesi non, prendre les p points suivants

Compromis entre le nombre de boucles et le temps de calcul par boucle

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 31: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Ajout d’un point à la solution

D(I0 ∪ Ic) =∑

i αiyik(x[Io,Ic], xi) + b

Calcul coûteux à chaque boucle ! (O(n × m))

Idée : Recherche par bloc (pas p)

p points (Ip) ⇒ D(Ip)

existe-t-il un point mal classé provenant de I0 ?existe-t-il un point bien classé provenant de Ic ?

si oui, une contrainte est violée, il existe une direction de descentesi non, prendre les p points suivants

Compromis entre le nombre de boucles et le temps de calcul par boucleConférence CAp04 - Montpellier - 20 octobre 2004

Page 32: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Remarques sur l’initialisation

Et si on nous donne des informations sur larépartition des points ?

� I0, Is, Ic

� Calcul d’une solution initiale αs (O(m3))� Si l’information est vraie, économie d’itéra-

tions

⇒ Validation croisée accéléréeUtilisation en ligne� I0, Is, Ic précédent, on ajoute le nouveau point à Is

� Calcul de la solution αs à partir de la précédente (O(m2))

⇒ Nouvelle solution atteinte en peu d’itérations(1 seule si le point n’est pas vecteur support)

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 33: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Expériences - Complexité

−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

−1

−1

−1

−1

−1

−1

−1

−1−1

−1

−1−1−1

−1

−1

−1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

00

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

SMO

� Connue comme étant une des méthodes les plus ra-pides

� Comparaison des points deux à deux

� SMO : pente = 2, 5a

� SimpleSVM : pente = 1, 2

aBoîte à outils Matlab utilisée [Caw00]

4.5 5 5.5 6 6.5 7 7.5 8−3

−2

−1

0

1

2

3

4

5algorithm’s execution speed depending on n

log

time

number of points

qr updatesmo

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 34: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Expériences - Reconnaissance de caractères

MNIST a

Reconnaissance de caractères� 60000 images� 576 dimensions� 10 classes� Performance SVM reportée : 1,4% b

aBase de données MNIST [LBBH98]

bLearning with Kernels [SS02]

Noyau Multi-classe Temps Erreur

Gaussien (bande = 0, 002, C = 20) 1 contre 1 1h45 1,71%

Gaussien (bande = 0, 004, C = 5) 1 contre 1 2h45 1,48%

Polynomial (ordre 5, bande = 0, 0005, C = 20) 1 contre 1 1h15 1,90%

Polynomial (ordre 5, bande = 0, 013, C = 10) 1 contre tous 12h 1,36%

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 35: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Démonstration - Reconnaissance de caractères

USPSReconnaissance de caractères

� 7291 images� 256 dimensions� 10 classes

Résultats publiés :� Humain 2,5 % d’erreur a

� SVM 4 % d’erreur b

Matlab :� Temps ? ⇒ lié au nombre de

vecteurs supports !� Performance ?

aSimard et al. 1993

bLearning with Kernels [SS02]

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 36: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Conclusion

Les SVMs sont efficaces ET rapides

La boîte à outils est disponible :http://asi.insa-rouen.fr/~gloosli/

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 37: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Conclusion

Les SVMs sont efficaces ET rapides

La boîte à outils est disponible :http://asi.insa-rouen.fr/~gloosli/

Conférence CAp04 - Montpellier - 20 octobre 2004

Page 38: Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un point à la solution D(I0 [Ic) = P i iyik(x[I o;Ic];xi)+b Calcul coûteux à chaque

Références[Caw00] G. C. Cawley. MATLAB support vector machine toolbox (v0.55β). University of East Anglia,

School of Information Systems, Norwich, Norfolk, U.K. NR4 7TJ, 2000.http ://theoval.sys.uea.ac.uk/˜gcc/svm/toolbox.

[LBBH98] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to documentrecognition. Proceedings of the IEEE, 86(11) :2278–2324, 1998.http ://yann.lecun.com/exdb/mnist/.

[Min83] Michel Minoux. Programation mathématique. Théorie et algorithmes. Tome 1. Dunod, 1983.

[SS02] Bernhard Schölkopf and Alexander J. Smola. Learning with Kernels. MIT Press, 2002.

Conférence CAp04 - Montpellier - 20 octobre 2004