Fondements de l Apprentissage Automatique Réduction de la dimensionalité hadrien.glaude@univ-lille1.fr Université Lille 1 - CRIStAL (SequeL) - Thales Systèmes Aéroportés Master 1 Info 1/28
1 2 3 4 5
Réduction de la dimensionalité Objectif : résumer l information apportée par un grand nombre de variables par un nombre restreint de nouvelles variables. A quoi ça sert? Représentation visuelle des données. Produit un nuages de points interprétable par l homme. Compression de données. L information la moins pertinente est supprimée. Prétraitement pour l apprentissage supervisé. Simplifie, réduit, et nettoie les données. En apprentissage automatique, aide à généraliser en diminuant le risque de sur-apprentissage, diminue le temps d apprentissage. 2/28
Réduction de la dimensionalité Deux branches Sélection d attributs Parmi les variables qui décrivent les individus quelles sont les plus utiles à la tâches? Ex : le prix d un logement ne dépend pas beaucoup de la couleur des murs, mais plutôt de la surface. Le boosting permet sélectionner des attributs quand les classifieurs faibles ne tiennent compte que d un attribut. Extraction d attributs Comment combiner des attributs pour en créer un nouveau sans perdre de l information? Ex : pour prédire le prix d un logement, le nombre de séjours, salons, chambres, bureaux, etc, peut se résumer par le nombre de piècse. Sert aussi à supprimer les attributs redondants (corrélés) comme la surface et le nombre de pièces. 3/28
Réduction de la dimensionalité Programme d aujourd hui En cours, En TP, d, des matrices à la diagonalisation composante principale : une technique de réduction de la dimensionnalité Un classifieur très simple : les k plus (k-nn) de Détection de visage (AdaBoost) Reconnaissance de visage (ACP et k-nn) 4/28
1 2 3 4 5
Matrices et vecteurs Définitions Une matrice A est un tableau de réels de dimensions finies : ( ) 0 3.3 7 A = 2 4 9.1 (np.array([[0, 3.3, 7], [-2, 4, 9.1]])) A est de taille m n si elle est composée de m vecteurs lignes n vecteurs colonnes Les nombres du tableau sont appelés coefficients de A Le coefficient à la i-ème ligne et j-ième colonne est noté a ij. On note A = (a ij ). Une matrice est carrée si n = m La matrice carrée avec des 1 sur la diagonale et des 0 ailleurs est notée I. On l appelle l identité. (np.eye) La matrice nulle est noté 0 (np.zeros) 5/28
Matrices et vecteurs Addition et multiplication Addition (A + B) taille 2 2 ( ) ( ) ( ) a b α β a + α b + β + = c d γ δ c + γ d + δ Multiplication (A.dot(B)) taille 2 2 ( ) ( ) ( a b α β aα + bγ aβ + bδ = c d γ δ cα + dγ cβ + dδ... détails au tableau... ) 6/28
Matrices et vecteurs Quelques règles Pour la suite A, B et C sont des matrices de même taille, α et β sont des réels. Pour l addition : A + B = B + A A + (B + C) = (A + B) + C A + 0 = A (α + β)a = αa + βb α(a + B) = αa + αb 7/28
Matrices et vecteurs Quelques règles (suite) Pour la multiplication : A(BC) = (AB)C A(B + C) = AB + AC et (B + C)A = BA + CA A0 = 0 et 0A = 0 IA = A et AI = A ATTENTION : en général AB BA 8/28
Matrices et vecteurs Inverse Une matrice carrée A est inversible (np.linalg.inv) si il existe une matrice B de même taille tel que, AB = I et BA = I Dans ce cas B est unique. C est l inverse de A. On note B = A 1 A est aussi l inverse de B.... cas des matrices diagonales au tableau... Il existe des matrices qui ne sont pas inversible. Exemple : 0 Si A et B sont inversible, AB est inversible et (AB) 1 = B 1 A 1 9/28
Matrices et vecteurs Transposition et matrice symétrique La transposée (A.T) d une matrice A de taille m n est une matrice de taille n m noté A, où l on a inversé les lignes et les colonnes : a b A = (a ij ) = c d d e A = (a ji ) = ( a c d b d e Une matrice carrée est symétrique ssi A = A Une matrice est orthogonale si AA = A A = I, dans ce cas A = A 1 ) 10/28
Matrices et vecteurs Vecteurs, valeurs propres et diagonalisation Un vecteur non nul x est un vecteur propre de A si Ax = λx λ est la valeur propre associé à x. (np.linalg.eig) Une matrice carrée est diagonalisable si elle peut s écrire A = PDP 1 avec P inversible et D diagonale. Dans ce cas P est une matrice contenant des vecteurs propres (en colonnes) et D contient les valeurs propres associé sur sa diagonale. 11/28
Matrices et vecteurs Diagonalisation (suite) ATTENTION : toutes les matrices ne sont pas diagonalisables. Théorème (Théorème spectral pour les matrices réels) Soit A une matrice symétrique réelle, alors il existe une matrice P orthogonale et une matrice D diagonale dont tous les coefficients sont réels et positifs, telles que A = PDP 1 = PDP. 12/28
1 2 3 4 5
Objectif Soit un tableau X de n individus caractérisés par p attributs : x ij est la valeur du ième attribut sur le j-ieme individu. On veut déterminer de nouveaux attributs ˆx ij décrivant les individus en perdant le moins possible d information déterminer un tableau ˆX de taille n q avec q < p. Technique : chaque nouvel attribut est une combinaison s anciens : ˆx ij = p k=1 u ikx kj. Notation matricielle ˆx ij = u i x :j, ˆx :j = Ux :j avec U matrice dont la i-ème ligne vaut u i Technique : projeter le nuage de points sur un espace de dimension q de façon à conserver le maximum de variance dans les données. 13/28
Moyenne, variance, covariance Un individu x :j est un échantillon d un vecteur aléatoire X. On note x i: = 1 n p j=1 x ij l estimateur empirique de la moyenne du i-ième attribut. Notation matricielle : X = (x ij x i: ) ij On note var(x i: ) = 1 n p j=1 (x ij x i: ) 2 l estimateur empirique de la variance du i-ième attribut. Notation matricielle : var(x i: ) = (x i: x i: )(x i: x i: ) On note cov(x i:, x k: ) = 1 n p j=1 (x ij x i: )(x kj x k: ) l estimateur empirique de la covariance entre le i-ième et le k-ième attribut. Notation matricielle : cov(x i:, x k: ) = (x i: x i: )(x k: x k: ), matrice de covariance C = (cov(x i:, x k: )) ik = (X X )(X X ) Deux variables sont fortement corrélés lorsqu elles varient ensemble. Cela implique une certaine redondance dans les données. 14/28
Illustration 15/28
Dérivation On cherche une base orthonormé U = (u 1,..., u q ) tel que les individus projetés ˆx :j U IR q conservent une variance maximale. On procède variables par variables. On centre les données X = X X. Soit u 1 X le vecteur ligne des valeurs pour chaque individu du premier nouvel attribut. La variance du premier attribut vaut u 1 X X u 1 = u 1 Cu 1, avec C la matrice de covariance de X On résout donc, u 1 = arg max u = u Cu tel que u u = 1 On écrit le Lagrangien, L(u, λ) = u Cu λ(u u 1) 16/28
Dérivation (suite) On dérive L par rapport à u et on égalise à zéro Cu = λu (u, λ) est donc un couple vecteur propre, valeur propre de C On remplace dans l objectif u 1 = arg max u = arg max u u Cu = arg max u λ u u u = arg max λ u u Conclusion : u 1 est le vecteur propre associé à la valeur propre maximale de C. On recommence avec la seconde composante 17/28
Dérivation (suite 2) Pour trouver u 2, on rajoute la contrainte d orthogonalité à u 1, L(λ, u, µ) = u Cu λ(u u 1) µu u 1 On dérive L par rapport à u et on égalise à zéro On multiplie par u 1 2Cu 2λu µu 1 = 0 µ = 2u 1 Cu 2λu 1 u = 0 car u 1 est un vecteur propre de C et est orthogonale à u On retrouve que Cu = λu De même (u, λ) est donc un couple vecteur propre, valeur propre de C En remplaçant dans l objectif, on trouve que u 2 est le vecteur propre associé à la seconde valeur propre maximale de C. 18/28
Algorithme Algorithme : Note : Les observations peuvent être transformées en données centrées et réduites par transformation (soustraction de la moyenne et division par l écart-type). Cette opération est importante si les ordres de grandeur des variables sont très différents. Par calcul de la matrice de covariance des données, on retrouve les axes principaux. On garde les q premiers (associées aux plus grandes valeurs propres). On peut pondérer les individus en fonction de leur importance. En pratique, on peut se passer de calculer la matrice de covariance en utilisant la décomposition en valeurs singulières (plus rapide). 19/28
Propriétés ˆX est centrée La variance de la i-ième composante principale vaut λ i var(ˆx i: ) = j = u i ( j (ˆx ij ) 2 = j (x :j u i ) 2 = j x :j x :j )u i = u i Cu i = λ i On dit que le i-ème attribut explique 100λ i k λ k variance. Les sont décorélées cor(ˆx i:, ˆx k: ) = j ˆx ij ˆx kj = j u i x :j x :j u i % de la u i x :j x: j u k = u i Cu k = λ k u i u k = 0 On peut montrer que U est la projection qui converse le mieux les distances entre pairs d individus. 20/28
21/28
22/28
23/28
24/28
1 2 3 4 5
Un algorithme de classification simple Algorithme de classification instance-based : Étant donné un ensemble d individus étiquetés, la classe d un nouvel individu est la classe majoritaire parmi ces k plus. La distance peut être quelconque. En pratique marche bien après une ACP, en utilisant la distance euclidienne. Le paramètre k est appris par cross-validation. 25/28
1 2 3 4 5
Décomposition de la variance Idée : utiliser les étiquettes des individus pour trouver un espace de faible dimension q dans le quel on peut bien discriminer les classes. Soit n individus, répartis en k classes de n k individus chacune. On note : g 1,..., g k leurs moyennes et g la moyenne de tous les individus, C 1,..., C k leurs matrices de covariance et C la matrice de covariance de tous les individus, B = n k k n (g k g)(g k g) la matrice de covariance inter-classes (=covariance des moyennes), W = k (=moyenne des covariances) n k n C k la matrice de covariance intra-classes 26/28
Résolution On cherche à projeter sur une base orthonormé tel que : la variance inter-classe soit maximale, la variance intra-classe soit minimale. On cherche, u 1 = arg max u u Bu u W u On montre que u 1 est le vecteur propre maximal de W 1 B. 27/28
Démonstration On pose W 1/2 z = u, possible car W est définie positive Par symétrie de W, le problème est équivalent à : z 1 = arg max z z W 1/2 BW 1/2 z z z z 1 = arg max z W 1/2 BW 1/2 z tel que z z = 1 z Comme pour l ACP z 1 est le vecteur propre maximal de W 1/2 BW 1/2. W 1/2 BW 1/2 z 1 = λ 1 z 1 On multiplie à gauche par W 1/2, W 1 BW 1/2 z 1 = λ 1 W 1/2 z 1 Or W 1/2 z 1 = u 1, donc W 1 Bu 1 = λ 1 u 1 Finalement, u 1 est le vecteur propre maximal de W 1 B. 28/28
6 Travaux dirigés
Travaux dirigés I Énoncé 1 Pour les rapports utiliser le Notebook de IPython. 2 Télécharger la Extended Yale Face Database B, ou la créer en utilisant ses photos Facebook avec les tags (voir script pour utiliser l api Facebook). Dans la base de donnée, prendre les images originales. 3 Utiliser Adaboost de OpenCV (voir ici) pour détecter les visages dans les images, puis extraire le visage de l image. Le fichier XML contenant les paramètres du classifieur Adaboost se trouve dans les sources de OpenCV. 4 Entrainer un classifieur utilisant les plus sur les visages extraits et projeté sur un espace de faible dimension. Projeter les visages sur un espace de faible dimension en utilisant l analyse en composante principale OU l analyse discriminante de. Argumenter le choix du nombre de. Travaux dirigés 1/4
Travaux dirigés II Énoncé Visualiser la moyenne des visages et les premiers visages propres. Appliquer les k plus : argumenter le choix de k et estimer l erreur de généralisation. En général, il n y a pas une seule bonne solution, mais plusieurs ap possibles. Vous n êtes pas contraint de suivre l énoncé pas à pas tant que au final vous proposez une solution complète au problème de détection et reconnaissance de visages. Face aux problèmes que vous pourriez rencontrer et que je n ai pas mentionnés, j attends une démarche autonome et argumentée. Travaux dirigés 2/4
Travaux dirigés Vecteurs propres en grandes dimensions La matrice de covariance C = X X des visages risque d être de grandes dimensions. Par exemple, pour des images 100 100, C sera de taille 10000 10000. Vous allez rencontrer des problèmes de mémoire et de temps de calcul pour les vecteurs propres. Il existe alors plusieurs solutions : 1 Réduire la taille des images en entrée. 2 Si le nombre d individus N (ici de visages) est faible. Calculer les vecteurs propres de C = X X de taille N N. Remarquer que si C v i = λ i v i alors X C v i = λ i X vi, et donc C( X v i ) = λ i ( X v i ). Ainsi u i = X v i est un vecteur propre associé à λ i de C. 3 Utiliser la décomposition en valeurs singulières de X. Travaux dirigés 3/4
Décomposition en valeurs singulières Relation avec les vecteurs propres Toute matrice X admet une décomposition en valeurs singulières, X = USV, où U, V sont formés de vecteurs colonnes orthonormés et S est une matrice diagonale. En écrivant X X = VS U USV = VS 2 V et XX = USV VS U = US 2 U, on remarque que : U contient les vecteurs propres de XX V contient les vecteurs propres de X X X X et XX ont les mêmes valeurs propres S 2 qui sont les carrés des valeurs singulières de X. Travaux dirigés 4/4