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