SVM machine à vecteurs de support ou séparateur à vaste marge

Slides:



Advertisements
Présentations similaires
Résolution Graphique d'un Programme Linéaire
Advertisements

Eléments d'algèbre linéaire
Gestion de portefeuille
Gestion de portefeuille
Modèle des jeux et des mécanismes
1 Modèles Economiques en Informatique Michel de Rougemont Université Paris II.
A. Cornuéjols IAA (basé sur Rob Schapires IJCAI99 talk) Combiner des apprenants: le boosting.
Algorithmes et structures de données avancés
RECONNAISSANCE DE FORMES
Classification supervisée Marine Campedel avril 2005.
Application de réseaux bayésiens à la détection de fumées polluantes
1 Réunion biblio 13/12/00 Support Vectors Présentation générale SSS Maintaining Algorithm.
A Pyramid Approach to Subpixel Registration Based on Intensity
Apprentissage et Fouille de Données
Complexité et Classification
Reconnaissance d’objets par SVM et descripteurs de Fourier
Chapitre II.Rappels mathématiques et complexité
Améliorer les performances du chiffrage à flot SYND
Mirta B. Gordon Laboratoire Leibniz-IMAG Grenoble
Concepts avancés en mathématiques et informatique appliquées
Mirta B. Gordon Laboratoire Leibniz-IMAG Grenoble
Apprendre à partir des observations
Support Vector Machine
RECONNAISSANCE DE FORMES
Classification Multi Source En Intégrant La Texture
Applications du perceptron multicouche
ASI 3 Méthodes numériques pour l’ingénieur
Journée thématique du GDR IFS « Réduction de modèle en IFS » ENSAM – Jeudi 18 mai 2006 Validation de l’approche de la réduction a priori - POD sur l'équation.
Reconnaissance de visages
Résolution des Équations Différentielles
Concepts avancés en mathématiques et informatique appliquées
DEA Perception et Traitement de l’Information
Construction de modèles visuels
Rappel... Solution itérative de systèmes linéaires (suite et fin).
CLASSIFICATION DES SONS, “COMMENT CA MARCHE ?”
Mais en mathématiques, qu'est ce qu'une ligne de niveau?
Modélisation du robot Azimut-3
Algorithme pour le web Géraldine Schneider
Les réseaux de neurones
SYS828: Systèmes biométriques
PIF-6003 Sujets spéciaux en informatique I
Interprétation automatique
La régression multiple
Sous-espaces vectoriels engendrés
Programmation linéaire en nombres entiers : les méthodes de troncature
Modélisation géométrique de base
Cours du 25 octobre Mardi le 24 octobre
La décomposition en valeurs singulières: un outil fort utile
ASI 3 Méthodes numériques pour l’ingénieur
D.E ZEGOUR Ecole Supérieure d’Informatique
Une introduction aux machines à vecteurs supports (SVM)
ASI 3 Méthodes numériques pour l’ingénieur
Programmation linéaire en nombres entiers
Classification : objectifs
Algorithmes Branch & Bound
Apprentissage « machine »
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
Réseaux de neurones à base radiale
Olivier Leclair, Université Laval Un algorithme de fouille dans une représentation des données par objets: une application médicale SIMON, Arnaud.
- 5 - Optimisation linéaire et non-linéaire
Combating Web Spam with TrustRank. OSINI Aurélien.
Les SVM : Séparateurs à Vastes Marges (Support Vector Machines)
Structure de groupe Def: un groupe est un ensemble (G,*) où
Post-optimisation, analyse de sensibilité et paramétrage
Les Extra-Trees+SW Réalisé par : Encadrante:
Extreemly Random Trees + SubWindows HOURRI Soufiane NAIT ABDELLAH OUALI Ismail OUFQIR Anouar OUSSAFI Mohammed.
Groupe Langues, Information et Représentations
Pierre Joli Cours de Mathématique Pierre Joli
CHAPTER 10: Discrimination Linéaire
Transcription de la présentation:

SVM machine à vecteurs de support ou séparateur à vaste marge

Plan Introduction Principes de fonctionnement Les fondements mathématiques Domaines d’applications Les SVM dans Oracle Conclusion

Introduction Méthode de classification binaire par apprentissage Introduite par Vladimir Vapnik en 1995 Repose sur l’existence d’un classificateur linéaire Apprentissage supervisé

Principes de fonctionnement (1) Pour deux classes d’exemples, on veut : - Trouver un classificateur linéaire qui va séparer les données (Hyperplan) - Maximiser la distance entre ces deux classes

Principes de fonctionnement (2) Hyperplan optimal : hyperplan dont la distance minimale aux exemples d’apprentissage est maximale. Cette distance est appelée « marge ».

Principes de fonctionnement (3) Pourquoi maximiser la marge?

Principes de fonctionnement (4) Classification d’un nouvel élément inconnu ? On regarde sa position par rapport à l’hyperplan.

Principes de fonctionnement (5) Linéarité et non-linéarité ? La majorité des problèmes réels sont non-linéaire

Principes de fonctionnement (6) Résolution d’un cas non linéaire ? On change de dimension en utilisant une fonction noyau: -Polynomial -Gaussien -Sigmoïde -Laplacien Le nouvel espace est appelé « espace de redescription »

Principes de fonctionnement (7) Illustration avec le cas XOR: Le cas de XOR n’est pas linéairement séparable, si on place les points dans un plan à deux dimension, on obtient la figure suivante Coordonnées des points : (0,0) ; (0,1) ; (1,0) ; (1,1)

Principes de fonctionnement (8) Si on prend une fonction polynomiale (x , y) -> (x , y , x.y) qui fait passer d'un espace de dimension 2 à un espace de dimension 3, on obtient un problème en trois dimensions linéairement séparable : (0,0) -> (0,0,0) (0,1) -> (0,1,0) (1,0) -> (1,0,0) (1,1) -> (1,1,1)

Les fondements mathématiques

Problème d’apprentissage But: Observation (xi, yi) → déterminer la fonction f tq f(x) = y de la façon la plus précise possible Trouver un compromis entre le sous-apprentissage et le sur- apprentissage Pb: Trouver le frontière de décision optimale

Classification à valeurs réelles But: Plutôt que de construire h : X → {-1, 1} on construit f: X → R (nombres réels) La classe est donnée par h=signe(f). L'erreur se calcule avec P(h(X)!=Y ) = P(Yf(X) ≤0). Ceci donne une certaine idée de la confiance dans la classification. Idéalement, |Yf(X)| est proportionnel à P(Y|X). Yf(X) représente la marge de f en (X,Y).

Transformation des entrées On part du problème initial On transforme les entrées en vecteurs dans un espace F (feature space) → Problème plus simple F finie ou non mais dispose d'un produit scalaire (espace de Hilbert) Choix de l’hyperplan optimal

Maximisation de la marge Marge = distance du point le plus proche à l'hyperplan Linéaire → f(x) = w.x + b → hyperplan d’équation w.x + b = 0 La distance d'un point au plan est donnée par d(x) = |w.x + b|/||w|| Il faut donc minimiser ||w||

Problème primal Un point (x; y) est bien classé si et seulement si yf(x) > 0 (w, b) est défini à un coefficient multiplicatif près => on choisi yf(x) > 1 On en déduit le problème primal:

Problème dual (1/2) Primal → Dual grâce aux multiplicateurs de lagrange (cf théorème de lagrange) On obtient: Matrice hessienne (xi.xj)i,j

Problème dual (2/2) (αi)i solutions => αi = 0  vecteurs de support. La fonction de décision est donc 

La non linéarité (cas non séparable) Majorité des problèmes Primal linéaire → primal non linéaire Dual non linéaire:

Fonctions noyau (1/3) Passage dans un espace intermédiaire de dimension supérieure Exemple: passage en dimension 3

Fonctions noyau (2/3) Dans le nouvel espace on doit résoudre: La fonction solution f est:

Fonctions noyau (3/3) Le problème et la solution ne dépendent que de Φ(x).Φ(x’) On choisi k: XxX → R tq k(x,x’) = Φ(x).Φ(x’) K est appelée la fonction noyau et est linéaire Pb: Choisir le bon noyau

Condition de Mercer K symétrique est un noyau  (k(xi,xj))i,j est une matrice définie positive Dans ce cas il existe l’espace F et la fn Φ tq: k(x,x’)= Φ(x).Φ(x’) Problème: condition est très difficile à vérifier ne permet pas de savoir comment est Φ donne pas d'indication pour la construction de noyaux => En pratique, on combine des noyaux simples pour en obtenir de plus complexes.

Exemples de noyaux (1/2)

Exemples de noyaux (2/2) 47 exemples (22 +, 25 -) (5-, 4+) (3-, 4+) Ici fonction polynomiale de degré 2, 5, 8 et C = 10000 (10-, 11+) (8-, 6+) (4-, 5+) Ici fonction Gaussienne de s = 2, 5, 10 et C = 10000

Temps de calcul n = nombre de données d’apprentissage d = nombre d’entrées à prédire dn² ≤ complexité ≤ dn*n*n Taille de la matrice hessienne = n² =>SVM est adapté pour des problèmes de taille moyenne (~10.000 à 100.000)

Domaines d’applications (1) Catégorisation de textes Classification d’e-mails Classification de pages web Entrées : document (texte ou html) Approche « sac de mots » Document = vecteur de mots Sortie : catégorie (spam/non-spam)

Domaines d’applications (2) Traitement d’images Reconnaissance de caractères manuscrits Reconnaissance de visages Entrées : image bidimensionnelle en couleur ou en niveaux de gris Sortie : classe (chiffre / personne)

Domaines d’applications (3) Diagnostic médical Évaluation du risque de cancer Évaluation du risque d’accidents cardio-vasculaires Entrées : état du patient (sexe, age, bilan sanguin, …) Sortie : Classe : à risque ou non

Les SVM dans Oracle (ODM)

Oracle et SVM Oracle 10g implémente SVM Spécificités de SVM dans Oracle 10g Détection d’anomalies (Anomaly detection) L’apprentissage actif (Active learning) Echantillonage et choix du noyau

Le package DBMS_DATA_MINING et svm DBMS_DATA_MINING package dédié au datamining pour des applications Pl/sql. Quelques paramètres du package pour SVM Nom Description svms_kernel_function -svms_linear (pour noyau linéaire) -svms_gaussian (pour noyau gaussien) svms_kernel_cache_size Taille du cache svms_complexity_factor Valeur du facteur de complexité svms_epsilon Valeur du facteur epsilon pour l’algorithme de régression

Arbres de décision vs SVM dans oracle (1/2) Cancer du poumon dans le Wisconsin 645 patients (512 comme données entraînement et 133 comme données à prédire) 2 classes: Benign (65%) et malignant (35%) Les résultats sont les suivants: Algorithme de SVM utilisant un noyau gaussien Algorithme d’arbre de décision Précision de 99,3% Précision de 92,5%

Arbres de décision vs SVM dans oracle (2/2) Base de données pour les spams 4601 tuples (3520 tuples pour l’apprentissage et 811 pour les tests 2 classes : spam (39%) et non-spam(61%) Les résultats sont les suivants: Algorithme de SVM utilisant un noyau gaussien Algorithme d’arbre de décision Précision de 95,3% Précision de 92,5%

Conclusion Méthode de classification intéressante Efficace Utilisée dans de nombreux domaines d’application

Pour en savoir plus Programmes, articles en ligne, tutorial sur: - www.kernel-machines.org - www.kernel-methods.net - www.support-vector.net