Support Vector Machines

publicité
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D'ORAN
-MOHAMMED BOUDIAF USTOFaculté des Sciences
Département d'Informatique
Master 2 RFIA
Support Vector Machines
Rapport d’exposé
Rédigé par :
BEKHELIFI Okba
Module : Optimisation Avancé
Responsable du module : PR. BENYETTOU Mohammed
Support Vector Machines
Sommaire
1. Introduction……………………………………….3
2. Définition….……………………………………….3
3. Historique………………………………………….3
4. Domaines d’application…………………………………4
5. Principes………………………………………………….5
5.1 Motivation………………………………………………………...5
5.1.1 Séparation par Hyperplan……………………………………..6
5.2 SVM a marge dure……………………………………………….7
5.3 SVM a marge souple……………………………………………..9
5.4 SVM a Kernel…………………………………………………....11
5.5 SVM pour classification Multi classe…………………………...13
5.5.1 Un contre tous (One Versus the Rest)………………………...13
5.5.2 Classification par pair (Pairewise classification)…………….14
6. Implémentation…………………………………………15
6.1 Méthode de décomposition………………………………………15
6.2 Sequential Minimal Optimization (SMO)……………………...15
7. Exemple d’application…………………………………..16
8. Avantages & Inconvénient……………………………...17
9. Conclusion……………………………………………….18
Références
Page 2
Support Vector Machines
1. Introduction
L’apprentissage machine basé sur la notion de généralisation a partir d’un grand nombre de
données couvre des domaines tels que la reconnaissance de forme et la régression ne cesse
d’avoir un développement dans ses méthodes et techniques, ceux-ci ne les a pas empêché de
dévoiler des limites qui réduisent leur efficacité face a la complexité des problèmes du
domaine, en même temps d’autre méthodes ont étaient misent en œuvre et dés leur première
apparition elles ont surpassé les méthodes existantes auparavant, les SVMs sont une de ces
nouvelles méthodes largement utilisés récemment. Dans ce qui suit on va présenter ce
paradigme.
2. Définition
Les “Support Vector Machins” appelés aussi « maximum margin classifier» (en
français machine à vecteur de support ou séparateur à vaste marge) sont des techniques
d’apprentissage supervisé basés sur la théorie de l’apprentissage statistique (généralement
considérés comme la 1ére réalisation pratique de cette théorie [6]) et respectant les principes
du (SRM) « structural risk minimization » (trouver un séparateur qui minimise la somme de
l’erreur de l’apprentissage [1]), un SVM repose sur les 2 notions de vaste marge et fonction
Kernel.
Les SVMs sont considéré comme l’un des modèles les plus important parmi la famille des
méthodes a Kernel, Ils ont gagné une forte popularité grâce a leur succès dans la
reconnaissance des chiffre manuscrit avec un taux d’erreur de 1.1% en phase de test (le même
taux marqué par un réseaux de neurone soigneusement construit) [2]
3. Historique
L’émergence des SVMs a commencé autour des débuts des années 1990s, néanmoins d’autres
travaux et recherches sur l’apprentissage machine par les mathématiciens russes Vladimir
Vapnik et Alex Chervonenkis ont fortement contribué à leur apparition, notamment la 1ére
description de l’implémentation d’un modèle proche a un SVM apparu dans la traduction en
Anglais en 1982 de l’ouvrage de Vapnik «Estimation of Depndences Based on Empirical
Data » (édité en 1er lieu en russe en 1979), que l’exploration de la notion d’hyper plan a
marge maximale l’a précédé.[4]
Le model initiale a marge maximale a connu des extensions importante en 1992 qui ont formé
le model finale par l’utilisation de la Kernel trick d’Aizeman proposé par Boser, Guyon &
Vapnik, présenté dans un article a la conférence COLT 92, finalement les SVMs sous leur
forme actuelle ont étaient introduits en 1995 par V.Vapnik & C.Cortes après l’introduction du
« soft margin ». [4]
Les limites statistiques des SVMs sont apparues en 1998 par Barlett & Shawe-Taylor sur la
généralisation des SVM à marge dure (hard margin), suivie en 2000 par une autre critique
montrant les limites de la généralisation des algorithmes à marge souple (soft margin) par
Shawe-Taylor et Cristianini. [4]
Page 3
Support Vector Machines
4. Domaines d’application
Vu leur composition comme des techniques d’apprentissage, les SVMs sont utilisés dans les
domaines de :
- Reconnaissance de formes/Classification :



Vision Machine: Identification de visage, reconnaissance d’expression
faciale : Surpasse les approches alternatives (1.5% taux d’erreur) [5]
Reconnaissance des chiffres manuscrits: les résultats d’USPS (service de la
poste des états unis) databatse comparable à la meilleure approche (1.1%
taux d’erreur) [6]
Catégorisation de texte : un exemple populaire est le corpus de texte de
l’agence Reuteurs qui a collecté 21450 documents d’information datant de
1997 et les a partitionnés en 135 catégories différentes. [6]
- Bioinformatique: prédiction de la structure des protéines, prédiction du progrès d’une
maladie. [5]
- Régression: estimation et prédiction des valeurs des fonctions [6]
L’application des SVMs s’est étendue aux domaines d’apprentissage non supervisé comme:
 Reduction de dimension: ACP non lineaire [5]
 Clustering
 Novelty detection (détection de nouveautés) [5]
fig1 : architecture d’un SVM de dédié a la reconnaissance des chiffres manuscrits. [6]
Page 4
Support Vector Machines
5. Principes
5.1 Motivation
Etant donnée un problème de classification linéaire avec 2 classes (considéré comme le plus
simple exemple de classification)
Fig2 : distribution spatiale des données d’apprentissage
Le cas est présenté par les n exemples d’apprentissage (Training Set Data) sous formes de
pairs { , } pour i=1…n avec ∈
et ∈ {-1,1}, les points rouge sont représenté tels que
=1 et les points bleus tels que =-1.
Fig3 : plusieurs frontières de décision présentée par chaque séparateur
La solution du problème à plusieurs frontières de décisions est possible pour résoudre ce
problème, mais quelle est la meilleure ?
Page 5
Support Vector Machines
5.1.1 Séparation par Hyperplan
Fig4 : séparation entre 2 classes par un hyperplan
Dans un espace H de dimension n contenant un ensemble de vecteurs ... ∈ H, tout
hyperplan dans H est formulé comme :
{x ∈ H/ <w, x>+b=0}, w ∈H, b ∈ R
Chaque hyperplan est vu comme un classifieur linéaire dont le but est de séparer les classes et
maximiser la distance entre ses classes, dans cette formulation w est un vecteur orthogonal à
l’hyperplan et b est un biais (offset) de l’hyperplan de l’origine de l’espace des entrées. [6]
Les pairs (w,b) ∈ H x R sont appelé forme canonique d’hyperplan si :
Pour ... ∈ H :
|<w, >+b|=1,
Ce qui conduit à prendre la distance entre le point le plus proche à l’hyperplan égale a
, en
tenant compte du fait qu’en classification le but est de trouver une fonction f qui classifiera
correctement les pairs d’exemples ( , ) en attribuant a chaque entrée une valeur
représentant la classe a laquelle elle correspond : f ( )= , on introduit la fonction de
décision :
Les hyperplans canonique (w,b) et (-w,-b) correspondent perfaitement a cette fonction.[6]
Après cette introduction des hyperplan et leur rôle dans la séparation on revient a la question
posé en 5.1, la réponse a cette question se trouve dans la notion d’hyperplan a marge large
(aussi appelé maximale), on distingue 2 types de marge : « Hard marge » (marge dur) destiné
a résoudre les problème linéairement séparable a 2 classe et la « Soft marge » (marge souple)
destiné a résoudre les problème a 2 classes non linéairement séparable ou avec des données
bruités. [5]
Page 6
Support Vector Machines
5.2 SVM a marge dure
Vecteurs de support
Marge maximale
<w,x>+b >1
X1
X2
W
<w,x>+b =1 (hyperplan canonique)
<w,x>+b <-1
<w,x>+b =-1
Hyperplan optimal: <w,x>+b =0
Fig5 : Nuage de données d’apprentissage avec un Hyperplan optimal et une marge maximale
Pour un hyperplan {x ∈ H/ <w, x>+b=0} on appelle :
, = < , >+ /
,
La marge géométrique (ou simplement marge) du point (x, y) ∈ H x { }.
La valeur minimale
est appelée la marge géométrique de
, =
,
,
l’ensemble
,
,
ce qui présente l’ensemble des exemples d’apprentissage.
[6]
D’après le perspective de la théorie d’apprentissage statistique la considération des SVMs
comme des classifieurs binaires vient d’une borne théorique de l’erreur de généralisation, ce
qui est une erreur de prédiction théorique lors de la classification de nouveaux données non
classifier auparavant, cette erreur de généralisation a 2 paramètres importants :
1. La borne est minimisée en maximisant la marge i.e., la distance minimale entre
l’hyperplan séparant les 2 classes et les points les plus proches à l’hyperplan.
2. La borne ne dépend pas de la dimension de l’espace. [5]
D’après la fonction de décision les données sont correctement classifiés si :
(<w, >+b) >0 , Puisque <w, >+b devrait être positif lorsque = + et négatif
lorsque =
. Soit x1 et x2 deux points appartenant aux hyperplans canoniques
respectivement (voir fig5),
<
Si
<
,
,
>+ =
>+ =
on déduit que : <w, (x1-x2)> = 2.
Pour l’hyperplan séparant (optimal) <w, x>+b=0, le vecteur normal est
racine carré de
(ou ||w|| est la
ou simplement la norme du vecteur w), ainsi la distance entre les deux
Page 7
Support Vector Machines
hyperplans canonique est égale a la projection de x1-x2 sur le vecteur normal
donne
,
=
, ce qui
(la marge maximale). Comme la distance entre un hyperplan
canonique et la marge est le demi de la marge maximale en déduit qu’elle est égale a
.
Maximiser la marge est équivalant a minimiser [5]:
Sous contraintes :
(<w,
>+b) ≥ 1
(l’hyperplan reste séparateur)
Cela est un problème d’optimisation sous contrainte avec une fonction objective de
minimisation, cette formulation est réduite à une minimisation de fonction de Lagrange
suivante :
Consisté de la somme de la fonction objective et les contraintes multipliées par leurs
multiplicateurs de Lagrange, le problème primal est formulé comme suit :
, ,
=
.
+
Ou sont les multiplicateurs de Lagrange et ainsi
0, le Lagrangien L est à maximiser
par rapport aux et a minimiser par rapport a w et b, cherchez l’extremum de
, ,
revient à calculer les dérivées selon les conditions de KKT (Karush-Kuhn-Tucker) présentés
par les contraintes (4), (5) et (6) : [5]
, ,
, ,
.
=0
+
.
(2)
(3)
=0
+
0
=0
=0
=
Les données pour lesquels
> 0 sont appelées vecteur de support, ces points déterminent
les frontières de la marge et ainsi contribuent a la détermination de l’hyperplan séparateur
optimale, on déduit de la condition (5) que pour un
non support (yi (w • xi + b) > 1) le
=0 ce qui l’élimine de la contribution a la détermination du séparateur optimal. [5]
On remplaçant les résultats calculées par (2) et (3) dans
, ,
on obtient :
Page 8
Support Vector Machines
=
.
,
Cette fonction appelée Wolf Dual [5] permet de formuler le dual du problème d’optimisation
.
,
=0
= ..
primal :
Trouver un séparateur linéaire optimal revient à résoudre ce problème de programmation
quadratique ou les
sont calculable est le w déduits a partir de l’équation (3).
On remplaçant la valeur de w de l’équation (3) dans la fonction de décision on obtient :
=
.
+
Ce qui montre l’utilité des vecteurs à support dans la phase de généralisation, ou le x présente
une donnée
Les SVMs présentés traitent que des problèmes de classification linéairement séparable, en
réalité les problèmes de classification sont généralement non linéairement séparables, on
distingue 2 types de problèmes non linéairement séparables a 2 classes :
- Une mal classification de données bruitées c.-à-d. certains exemples se trouvent à l’intérieur
de la marge, l’introduction de marge souple a pour but de résoudre ce problème. [5]
- les données d’apprentissage forment des nuages de points aux formes circulaires,
généralement il peut y avoir un séparateur linéaire pour ce cas après un changement de
dimension de l’espace, cette méthode utilise la projection vers un autre espace et le kernel
trick. [6]
5.3 SVM a marge souple
La marge souple est considérée comme une relaxation de la marge dure justifiée par la
présence des exemples mal classifiés appartenant a la marge (dite erreur de marge [5])
conduisant a une quasi-impossibilité de classification avec un séparateur linéaire.
Page 9
Support Vector Machines
M
Fig6 : répartition des exemples avec erreur
la relaxation de la contrainte qui determine la bonne classification des exemples est formulée
par l’introduction des variables auxillieres dites « variable de ressorts » (Slack Variables)
, la contrainte devient ainsi :
.
Ou les valeurs de
+
représente 3 cas :
é
é
La fonction objective devient:
=
>
+
C représente une constante determinante du compromis entre les deux objectifs opposés : la
minimisation de l’erreur et la maximalisation de la marge, la sélection de C reste intuitive vue
qu’aucune méthode n’a était introduite pour le faire.[6]
La formulation dual du problème est similaire a celle du cas linéairement séparable sauf que
les multiplicateurs de Lagrenge deviennent bornés par C.
Page 10
Support Vector Machines
.
,
=
= ..
Encore une fois la résolution du problème pour déterminer les
programme quadratique.
est faite par résolution du
5.4 SVM a Kernel
Les limite de l’approche a marge souple s’expose avec les les données non linéairement
séparable a tout point de l’espace, la motivation derriére l’utilisation des fonction Kernel est la
possibilité de projecter les valeur des donneés vers un autre espace d’une dimension superieur
ou la séparation linéaire est possible, ce qui mêne a utiliser ces approches pour classifier.
Fig7 : points non linéairement séparable et leur projection vers un autre espace d’une dimension
superieur.
La projection sur un espace de dimension superieur permet d’effectuer des opération linéaire
équivalante a des opérations non linéaire sur l’espace des entreés, cette projection est
effectuer par la fonction de projection ϕ définis comme :
Page 11
Support Vector Machines
D’où la fonction objective du problème d’optimisation sera reformulé comme :
.
,
Le produit scalaire imposé par la projection est plus complexe et très coûteux en calcul due a
la grande dimension de ϕ, d’autres fonctions dites fonction Kernel peuvent réaliser ce calcul
sans faire de projection explicite vers d’autres espaces, l’utilisation de fonction Kernel pour
éviter la projection est connu sous le nom de « Kernel Trick ».[6]
Une fonction Kernel (noyau) est définie comme :
,
=
.
Pour remplacer la fonction de projection une fonction Kernel doit verifier le théoréme de
Mercer qui énonce qu’une fonction Kernel représente le produit scalaire si elle est définie
positive.
Des exemples des fonctions Kernel :
,
-Noyau Polynomial de degree d :
-Noyau RBF avec longueur :
,
-Noyau Sigmoïd avec paramétres k et
=
. +
=
:
,
=
. +
On général le choix d’un Kernel correspond a :
-
Choisir une mésure de similarité pour les données.
Choisir une représentation linéaire aux données.
Choisir un espace de fonction pour l’apprentissage.[6]
Avec l’aide du Kernel trick le problème d’optimisation est formulé comme :
Page 12
Support Vector Machines
,
,
=
= ..
Dans ce cas le w sera :
=
La fonction de decision pour le test :
=
=
,
+b
S :représente les indices des vecteurs a support. [6]
5.5 SVM pour classification Multi-classe
La plupart des problèmes de classification sont a multi classe, les SVMs ont étaient conçu
initialement pour résoudre des problèmes de classification a deux classes, en revanche
d’autres méthodes ont permis l’extension des approches SVM pour traiter ce type de
problème.
5.5.1 Un contre tous (One Versus the Rest)
Fig8 : 3 classe séparées par la méthode d’un contre tous avec des séparateur linéaire
Page 13
Support Vector Machines
Pour obtenir des classifieurs pour les M classes, on définie un ensemble de classifieur binaire
(a deux classes)
, chaque classifieur sépare la classe i de toute les autres classes
produisant ainsi M fonction de décision de type sgn, la valeur +1 est attribué aux donnée
appartenant a la classe i et la valeur -1 et attribué aux données appartenant aux classes
restantes [6]:
=
Avec
=
,
+
La valeur maximale de
désigne l’arguemnt j de f comme classe d’un exemple
, si la
différence entre deux grand
est inferieur a un seuil lors de la classification d’un
exemple x, cet exemple sera rejeté est ne sera affecté a aucune classe, cet écartement de
l’exemple est appélé Reject decision.(fig 9)
Fig9 : les surfaces rouges représente le « reject decision »
5.5.2 Classification par pair (Pairewise classification)
Fig10 : classification multiclass par paire
Page 14
Support Vector Machines
Connu sous le nom de classification un contre un (one versus one), dans cette méthode on
détermine un classifieur pour chaque pair de classe, pour M classe on aura
.
classifieurs binaire (le nombre de fonctions de décision est égale aux nombre de classifieurs),
le nombre des séparateurs est habituellement plus grand a celui des séparateurs sur la méthode
un contre tous, pour un M=10 on a besoin de 45 classifieurs binaires, chaque classe effectue
un vote pour affecter un point x, la classe majoritaire après vote sera celle a qui le point est
affecté.
D’après fig10 on remarque que la région des points non classifiable existe toujours.
6. Implémentation
Pour effectuer l’apprentissage d’un SVM la manière la plus simple est de résoudre le
problème de programmation quadratique formulé a l’aide d’un Solver de programmation
quadratique, comme étant un problème standard de la théorie d’optimisation, une variété de
ressources logicielle existe pour la Programmation Quadratique (QP) (exemple : le
QUADPROG de MATLAB).
D’autres méthodes proposent la décomposition du problème en plusieurs sous-problèmes afin
face a la limite des machines en calcul pour des exemples très vaste ( Quadprog devient
déficient pour un problème de 100,000 instances d’exemple).
6.1 Méthode de décomposition
L’astuce générale pour d’éviter les problèmes de calculs est de décomposer le problème en
sous-problèmes, ou chacun est assez petit pour résoudre avec Solver générique de
programmation quadratique.
Une méthode simple de décomposition appelé « méthode de chunking » commence par un
sous-ensemble arbitraire de données, et résout le problème pour ses q exemples, les vecteurs a
support extrait de ce sous-ensemble sont ajoutés au 2éme part de données, le processus se
répète jusqu'à la détermination de tout les vecteurs a support. [5]
6.2 Sequential Minimal Optimization (SMO)
Cette méthode est dite « méthode de décomposition à l’extrême », la décomposition permet
seulement a travailler avec un ensemble de taille égale a 2, résoudre un problème
programmation quadratique de taille de 2 peut se faire analytiquement, donc cette méthode
évite l’utilisation d’un Solver numérique de QP, le compromis est que les pairs d’exemples
optimisé de cette façon sont itéré plusieurs fois, l’exigence est que la base de l’algorithme est
qu’une simple formule analytique, donc le temps d’exécution est réduit.
L’avantage de cette méthode est que la dérivation et l’implémentation sont simples. [5]
Page 15
Support Vector Machines
On trouve d’autres implémentations des SVMs comme package libre :
-SVMlight
-LIBSVM
-SimpleSMV
-Quelques Toolbox de Matlab comportent des implémentations des SVMs (exemple : la
ToolBox Bioinformatics)
7. Exemple d’application
Notre exemple d’application des SVMs présente une comparaison entre un Perceptron et un
SVM en phase d’apprentissage pour un problème de classification linéaire.
Exemple d’apprentissage : points ( , ).
Nombre d’exemples : 454
Classes : 2 désigné par
Perceptron:
-Perceptron à une couche d’entrée à 2 neurones, couche de sortie un seul neurone.
-Fonction de décision : tangente hyperbolique.
-Algorithme d’apprentissage : Widrow-Hoff
Model SVM :
SVM linéaire a marge dure.
Implémentation sous MATLAB
Résultat :
Temps de calcul pour le Perceptron : 46.86 sec
Tempe de calcul pour le SVM : 3.93 sec
Fig. 11 : apprentissage par Perceptron
Page 16
Support Vector Machines
Fig. 12 : apprentissage par SVM
8. Avantages et inconvénients
Avantages:
- Absence d’optimum local.
- contrôle explicite du compromis entre la complexité du classifieur et l’erreur.
- Possibilité d’utilisation de structure de données comme les chaines de caractères et
arbres comme des entrées.
- traitement des données a grandes dimensions.
Inconvénients :
- Demande des données négatives & positives en même temps.
- Besoin d’une bonne fonction Kernel.
- Problèmes de stabilité des calculs dans la résolution de certains programme
quadratique a contraintes.
9. Conclusion
Les SVMs présentent un alternatif utile aux différentes méthodes de classification classique,
leurs principes de vaste marge et fonction Kernel les permettent de réaliser des taux de
classification et de minimisation très importants.
Page 17
Support Vector Machines
Références
[1] Vojislav Kecman, “Learning and Soft Computing Support Vector Machines, Neural
Networks, and Fuzzy Logic Models”, the MIT Press 2001
[2] L. Bottou et al. “Comparison of classifier methods: a case study in handwritten digit”
recognition. Proceedings of the 12th
IAPR International Conference on Pattern Recognition, vol. 2,
[3] Martin Law “A simple introduction to support vector machines”, Lecture for CSE 802
(note de cours)
Department of Computer Science and Engineering
Michigan State University 2011
[4] History of Support Vector Machines [en ligne]. <http://www.svms.org/history.html>
(9/11/2012)
[5] Colin Campbell, Yiming Ying “Learning with Support Vector Machines
SYNTHESIS LECTURES ON ARTIFICIAL INTELLIGENCE AND MACHINE
LEARNING #10”, Morgan & Claypool publishers 2011
[6] Bernhard Scholkopf, Alexander J. Smola “Learning with Kernels, Support Vector
Machines, Regularization, Optimization, and Beyond”, the MIT Press 2002
Page 18
Téléchargement