Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un...
Transcript of Toolbox SimpleSVM - INSA Rouenasi.insa-rouen.fr/.../presentation21-10-04Gaelle.pdf · Ajout d’un...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SimpleSVM
� 1. Faire les groupes
Conférence CAp04 - Montpellier - 20 octobre 2004
SimpleSVM
� 1. Faire les groupes
Conférence CAp04 - Montpellier - 20 octobre 2004
SimpleSVM
� 1. Faire les groupes
Conférence CAp04 - Montpellier - 20 octobre 2004
SimpleSVM
� 1. Faire les groupes� 2. Calculer les α a
aGradient Projeté : [Min83] page 197
Conférence CAp04 - Montpellier - 20 octobre 2004
SimpleSVM
� 1. Faire les groupes� 2. Calculer les α a
aGradient Projeté : [Min83] page 197
Conférence CAp04 - Montpellier - 20 octobre 2004
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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