Analyse en Composantes Principales
Transcription
Analyse en Composantes Principales
Analyse en Composantes Principales (ACP) Principal Component Analysis (PCA) Nicolas Stoiber Dynamixyz Contexte : traitement du signal • Problématique: comment, dans ce contexte, représenter des entités, des objets. • Objectif: réaliser des opérations de haut-niveau, i.e traiter, comparer, retrouver, classifier ces objets • Dans le cadre de ce cours: les signaux sont des images. Nicolas Stoiber @ Dynamixyz 2 Contexte : traitement d’images • Quid de la représentation d’entités/d’objets : « Paramétrisation » du problème Intensité (luminance) des pixels composant l’objet Coefficients RGB des pixels composant l’objet Nicolas Stoiber @ Dynamixyz 3 Formalisation mathématique • Paramétrisation canonique : Intensité (luminance) des pixels composant l’objet Vecteur dans un espace vectoriel de dimension MxN v M N Nicolas Stoiber @ Dynamixyz N M 4 Formalisation mathématique • Formalisation mathématique canonique : – Trop de dimensions • « Fléau de la dimension » (http://en.wikipedia.org/wiki/Curse_of_dimensionality) • Occupation mémoire, stockage • Temps de calcul – Redondance des variables • Dilution de l’information – Paramétrisation pas forcément adaptée à la tâche • Ne fait pas ressortir d’information pertinente, de haut-niveau Nicolas Stoiber @ Dynamixyz 5 Formalisation mathématique • Solution -> Transformation – Changement d’espace de représentation d’entités image. y T (x ) Exemples • Changement de repère • • • y R.x t y L.x Transformations linéaires Transformations non-linéaires y T (x ) Transformations non-analytiques y ... Nicolas Stoiber @ Dynamixyz 6 Transformations • Exemple : Transformée de Hough : Nicolas Stoiber @ Dynamixyz 7 Transformations • Exemple : Transformée de Hough : – Information de haut-niveau (angle, rayon) – Adaptée au problème (détection de lignes dans une image) Nicolas Stoiber @ Dynamixyz 8 Transformations • Transformations explicites : – La transformation est une procédure/formule définie explicitement, indépendamment des données particulières du problème. Exemple: Transformée de Hough Nicolas Stoiber @ Dynamixyz 9 Transformations • Transformations explicites : – Exemple : Transformée de Fourier y1 y2 yk y x Nicolas Stoiber @ Dynamixyz 10 Transformations • Transformations explicites : – Exemple : Transformée de Fourier Nicolas Stoiber @ Dynamixyz 11 Transformations • Transformations explicites : – Exemple : Transformée en ondelettes : Gabor Nicolas Stoiber @ Dynamixyz 12 Transformations • Transformations explicites : – Exemple : Transformée en ondelettes : Haar Nicolas Stoiber @ Dynamixyz 13 Transformations • Transformations explicites : – Exemple non analytique: Histogramme Nicolas Stoiber @ Dynamixyz 14 Transformations • Chaque transformation fait ressortir certaines caractéristiques du signal – Fourier fait ressortir des fréquence spatiale – Hough fait ressortir la présence de points alignés –… • C’est suffisant pour des entités simples (ex: lignes), pour lesquelles on détermine facilement les caractéristiques importantes. Nicolas Stoiber @ Dynamixyz 15 Transformations • Quid d’objets plus complexes ? – Cas pratiques: on ne sait pas dire trivialement quelles composantes du signal sont pertinentes ? Nicolas Stoiber @ Dynamixyz 16 Transformations • Quid d’objets plus complexes ? – Cas pratiques: on ne sait pas dire trivialement quelles composantes du signal sont pertinentes – On peut par contre en fournir des exemples ! Nicolas Stoiber @ Dynamixyz 17 Transformations • Transformations implicites : – Objectif : Calculer une transformation de passage dans un espace de représentation pertinent pour le problème – Méthode: Déterminer automatiquement cette transformation à partir d’exemples du problème (les « données »). Nicolas Stoiber @ Dynamixyz 18 Analyse en composantes principales • C’est une transformation implicite • Elle poursuit les objectifs suivants: – Transformation linéaire – Suppression des corrélations entre variables – Concentration de l’information sur un nombre réduit de variables. Nicolas Stoiber @ Dynamixyz 19 Analyse en composantes principales • Exemple : courbe taille/poids Nicolas Stoiber @ Dynamixyz 20 Analyse en composantes principales • Exemple : courbe taille/poids – Chaque point est un exemple – Données réelles souvent très corrélées X2 (poids) X1 (taille) Nicolas Stoiber @ Dynamixyz 21 Analyse en composantes principales • Corrélation importante • Redondance d’information • Dynamique importante sur toutes les variables Non optimal X2 (poids) X1 (taille) Nicolas Stoiber @ Dynamixyz 22 Analyse en composantes principales • Peut-on imaginer une meilleure paramétrisation ? Y1 « Corpulence » X2 (poids) Y2 X1 (taille) Nicolas Stoiber @ Dynamixyz 23 Analyse en composantes principales • Peut-on imaginer une meilleure paramétrisation ? – A partir d’une représentation initiale [X1, …, XN], trouver une représentation [Y1, …, YN] telles que les variables sont décorrélées. Nicolas Stoiber @ Dynamixyz 24 Analyse en composantes principales • Matrice de covariance sur un jeu de données X : 1,1 1, 2 1, N 2, 2 2, 2 X T M C X.X N ,1 N , N • On cherche les Y tels que : 0 0 1,1 0 0 2, 2 M CY Y.YT 0 0 0 0 N ,N Nicolas Stoiber @ Dynamixyz 25 Analyse en composantes principales • C’est une diagonalisation de matrice – Existe toujours en vertu du théorème spectral (matrice de covariance est symétrique semi-définie positive, réelle). – Les valeurs propres sont positives ou nulles, et les vecteurs propres sont orthonormés. M P.M .P X C Y C T – Les variables Y = P.X sont décorrélées. Nicolas Stoiber @ Dynamixyz 26 Analyse en composantes principales 0 0 1,1 0 0 2, 2 M CY PT .M CX .P 0 0 0 0 N ,N • Les vecteurs propres forment la matrice de passage P • Les valeurs propres sont les covariance des nouvelles variables Yi. Nicolas Stoiber @ Dynamixyz 27 Analyse en composantes principales • Compression : – On peut ordonner les nouvelles variables Yi selon le valeurs propres (indiquent « l’importance » de ces variables en terme de variation). – Les dernières variables Yi (faible valeur propre), présentent peu de variation -> On peut les supprimer Nicolas Stoiber @ Dynamixyz 28 Analyse en composantes principales • Compression : – Exemple visuel : Y1 X2 Y2 X1 Nicolas Stoiber @ Dynamixyz 29 Analyse en composantes principales • Compression : – Intérêt : transmission/stockage de K images (avec K=beaucoup) de N pixels chacune -> K.N valeurs à transmettre. – Si les images présentent de fortes corrélation, il est interessante de faire une PCA pour trouver un meilleur espace de représentation. – En conversant P<<N composantes, le nombre de valeurs à transmettre est P.K + P.N Nicolas Stoiber @ Dynamixyz 30 Analyse en composantes principales • Compression : – Valeurs crédibles: • P = 10, N=2500, K=200 – Stockage naïf : K.N = 500 000 valeurs – Stockage PCA : 27 000, soit 5% de K.N -> taux de compression de 95% Nicolas Stoiber @ Dynamixyz 31 Analyse en composantes principales • Interprétation géométrique d’une PCA tronquée : X 2 Y2 X1 – Une PCA tronquée identifie le sous-espace linéaire qui minimise l’erreur de projection (quadratique). – « Projection optimale au sens des moindres carrés » Nicolas Stoiber @ Dynamixyz 32