Reconnaissance de Forme Statistique James L. Crowley Deuxième Année ENSIAG Deuxième semestre 2002/2003 Séance 7 7 avril et 26 mars 2003 PCA et la discriminante linéaire de Fisher Plan de la séance : L'analyse en Composantes Principales...2 Exemple :...6 Reconstruction...8 Reconnaissance avec PCA...9 La discriminante linéaire de Fisher... 10 Le Discriminant de Fisher avec K > 2... 14 Comparaison de PCA et Discriminant de Fisher... 15 FisherFaces... 16
L'analyse en Composantes Principales L'analyse en composant principales est une méthodes de déterminer une sous-espace "optimale" pour la reconstruction. Il peut s'appliquer au cas où le vecteur X serait composé d'une grande nombre de caractéristiques. Voici son application pour une ensemble de imagettes (tous k confondus). Soit une ensemble de imagettes, toutes classes confondus, W m (i, j), composé de N pixels : W m (i, j) pour m {1, }, tel que i [0, I-1], j [0, J-1], I x J = N On les exprime sous forme de vecteur : Ensemble d'imagettes X m (n)= W m (i, j) ou n = j*i + i. On cherche une base orthogonale ϕ (n)= {ϕ d (n)} d = 0, 1,... D pour représenter les X(n). telles que D <<. Imagette moyenne µ(n)= 1 Xm (n) Imagette moyenne zéro X ~ m(n) = X m (n) µ(n) Base orthogonal ϕ (n) = { ϕ d (n) } d = 0, 1,... D-1 Vecteur code α = <X ~ (n), ϕ (n)> Image reconstruite : N-1 X ^(n) = µ(n) + αn ϕ (n) n=0 Image de résidu : R(n) = X(n) X^(n) Energie de résidu : ε r 2 = n=1 N R 2 (n) 7-2
La covariance, C k, est composée de 1024 x 1024 = 2 20 termes C k = E{ X ~ mk X ~ mk T } (pour une image de taille 2 n, il y a 2 2n pixels et 2 4n termes dans la covariance.) σ ij 2 = 1 (X ~ mk(i) X ~ mk(j)) ou bien : σ ij 2 = 1 Une autre vue : (Xmk (i) µ k (i))(x mk (j) µ k (j)) Former la matrice X par la concaténation de vecteurs X ~ m(n) A = (X ~ 0(n) X ~ 1(n) X ~ 2(n)... X ~ (n) ) = A est N par. Chaque colonne est une image. La covariance de A, C = E{X ~ m X ~ m T } = A A T C= A A T = Pour une image de 32 x 32, le matrice C= A A T est de taille 1024 x 1024. Il y a un coefficient par pair de pixels. Chaque terme est la covariance d'une paire de pixels. C = A A T est de taille N x N 7-3
On cherche une ensemble orthogonales ϕ (n) = {ϕ d (n) d = 0, 1,... N tels que : ϕ T AA T ϕ = λ c λ c est une matrice diagonale des valeurs principales de C. Chaque colonne de ϕ est un vecteur directeur ϕ d (n). Les colonnes ϕ d sont orthogonales. Une telle matrice de rotation est fournie par une procedure d'analyse en composants principales. ( ϕ d (n), λ c ) = PCA(C). Pour une image de 32 x 32, le matrice C= AA T est de taille 2 10 x 2 10 = 2 20. Pour une image de 512 x 512, le matrice C= AA T est de taille 2 18 x 2 18 = 2 36. Heureusement, il y a une astuce pour éviter la matrice de covariance de N x N coefficients. Le rank de AA T est, ou est le nombre d'images. << N. Noter que B = A T A est de taille 2, est le nombre d'images. Chaque coefficient est une produit de deux images! N b ij 2 = Xi (n) X j (n) n=1 Pour < 512 on peut facilement calculer une matrice R de rotation tels que chaque colonne est un vecteur directeur orthogonal. Soit R les composantes principales de X ~ T X ~ R T A T A R = λ b On multiplie les deux cotés par R : R R T A T A R = A T A R = R λ b R T R = I. aintenant on multiplie par A A A T A R = A R λ b = (A T A ) A R = (A R) λ b = (A A T ) ϕ = ϕ λ c Donc ϕ= AR. 7-4
λ b sont les premiers valeurs propre de λ c et ϕ = AR Donc,l es vecteurs propres : ϕ d (n) = A R triés par λ b ϕ = AR = Les vecteurs propres de A T A sont aussi les premiers vecteurs propres de A A T Chaque colonne est un vecteur dans une base orthogonale. ϕ (n) = m-1 X ~ m (n) R(m,n) ϕ (n) fournit une base "ortho-normal" pour X m (n). Une image (normalisée) peut être exprimé par α d = <X(n), ϕ d (n) > = d=0 X(n)ϕd (n) Les valeurs α d sont un "code" qui représente X(n) pour la reconnaissance ou la transmission. 7-5
Exemple : (Réalisé par F. Bérard en 1995). 16 images pris au hazard dans une séquence de 2 minutes. Average Image 7-6
Components Principales : Eigen Values. 3.5000E+07 3.0000E+07 2.5000E+07 2.0000E+07 1.5000E+07 1.0000E+07 5.0000E+06 0.0000E+00-5.0000E+06 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 7-7
Reconstruction Image Reconstructed image (120 bytes) Error Image. Reconstruction (120 bytes) Image Error 7-8
Reconnaissance avec PCA Dans l'espace PCA, pour chaque individu, on fait une ensemble de k images. Ensemble d'imagettes de la classe T k : X mk (n) = W mk (i, j) ou n = j*32 + i. Imagette moyenne de la classe T k : µ k (n) = 1 Xmk (n) Imagette moyenne zéro X ~ mk(n) = X mk (n) µ k (n) Projection sur D y : Zmk = <X ~ mk, ϕ > La covariance, C k, est composée de D y x D y termes C k = E{ Zmk Zmk T } (pour une image de taille 2 n, il y a 2 2n pixels et 2 4n termes dans la covariance.) σ ij 2 = 1 ou bien : (Zmk (i) Z mk (j)) σ ij 2 = 1 (Zmk (i) µ k (i))(z mk (j) µ k (j)) ω k = arg-max {g k (Z } k ou g k (Z ) = Z T (Dk ) Z + d k T Z + dko. avec D k = 1 2 C k 1 d k = C 1 k µ k d ko = 1 2 (µ k T C k 1 µ k) 1 2 Log{det(C k)} + Log{p(ω k )} 7-9
La discriminante linéaire de Fisher Dans beaucoup de domaines, il existe une multitude de caractéristiques utilisables pour la reconnaissance. Chaque caractéristique semble à apporter une contribution pour un cas ou dans une autre. Il semble souhaitable de les inclure dans le vecteur x. ais ceci induit une croissance exponentielle dans les nombres d'exemples nécessaires,. En Anglais, on appelle ce problème "The Curse of Dimensionality". La technique de Fisher permet une réduction dans le nombre de dimensions, d avec une faible augmentation dans la probabilité d'erreur. Le principe de Fisher est de projeter le vecteur de caractéristique, x de D x dimensions vers un espace z de D z par une transformation linéaire F choisit tel quel 1) D y << D x et 2) Les exemples des classes T k sont séparés. z = F T x En général, s il y a K classes, nous allons chercher D z = K 1 x 2 x 2 x 1 x 1 La discriminabilité des classes dépend de la direction de F Pour déterminer la meilleure projection, on appuie sur une mesure de la séparation entre classes. Soit deux classes T 1 et T 2 représenté par les exemples X 1m et X 2m 7-10
Z km = F T X km Z est un scalaire La moyenne des exemples est µ k = E{X km} = 1 k k X km Les moments sont invariants aux projections. Donc, la moyenne des projections est la projection de la moyenne. µ ~ k = E{Z km } = 1 k k Z km = 1 k k F T X km = F T µ k On note que µ ~ 1 µ ~ 2 = F T ( µ 1 µ 2) On veut rendre la distance entre classes aussi grandes que possible sans gain. C-à-d qu'on impose que F T = 1 Ce qu'il faut est de rendre la séparation grande par rapport à la dispersion des classes. La dispersion ("Scatter") pour une ensemble {X km} d'exemples et pour une classe k est une matrice S k = (X km µ k) (X km µ k) T La dispersion ("scatter") commun de deux classes T 1 et T 2 (La dispersion "intra-classes") est S T = S 1 + S 2 Après projection par F, la dispersion ("Scatter") pour les exemples de la classe k est S ~ k = k (Zkm µ ~ k) 2 Le critère de Fisher est maximiser le ratio de la séparation des deux classes par rapport à leurs dispersions. 7-11
J(F) = (µ~ 1 µ ~ 2) 2 S ~ 1 + S ~ 2 = F T ( µ 1 µ 2) 2 S ~ 1 + S ~ 2 Fisher cherche la transformation F T tel quel F = max { FT ( µ 1 µ 2) 2 F S ~ 1 + S ~ 2 } K Soit = k exemples, X km. k=1 La moyenne de chaque classe est µ k = 1 k k X km La moyenne de TOUS les exemples est µ = 1 K k µ k = k=1 1 K k=1 k X km La matrice de dispersion inter-classes S B (B voudrait dire "between) K S B = k (µ k µ )( µ k µ ) T k=1 La dispersion intra-classe S w (En Anglais W pour "within") est S W = K K Sk = k=1 k=1 k ( X km µ k) ( X km µ k) T La meilleur transformation F est celle que F = argmax { F F T S B F F T S w F } 7-12
La dispersion d'une classe, S k, est en proportion avec la covariance pour l'ensemble total de donnée. Il est symétrique et positif - semi-definis. Il est typiquement nonsingular si k > D. La matrice S B est positive et semi-definit. Dans notre exemple avec K=2, D z = 1 (donc F T S B est une scalaire) S B F est dans la direction µ 1 µ 2 et S B est bien singulier. J( F) = FT S B F F T S w F en physique, ceci est connu comme le quotient de Rayleigh. Il est possible de montrer que S B F = λ S w F. Ceci donne : F = µ 1 µ 2 µ 1 µ 2 Le facteur d échelle n'est pas important est-on peut déterminer directement F = S w -1(µ 1 µ 2 ). Ceci est la discriminant linéaire de Fisher pour deux classes. Il maximise la dispersion entre les classes. On rappelle que la surface de décision linéaire entre deux classes a la forme : F T X + d o = 0 où F = C 1 (µ 1 µ 2) et d o est un constant Comment généraliser en D z = K-1 dimensions? 7-13
Le Discriminant de Fisher avec K > 2 Pour le cas de K classes, la généralisation naturelle est avec K-1 fonctions de Fisher. Il est supposé que D K. K S w = k=1 Sk K où S B = k (µ k µ )( µ k µ ) T k=1 et µ k = 1 k X k La généralisation de S B est moins évident. On peut définir une moyenne globale, µ et une matrice de dispersion totale S T comme : et µ = 1 X m = 1 K k µ κ k=1 S T = K (X km µ )(X km µ ) T k=1 et S T = S w + S B Pour chaque classe, k, on obtient une transformation F k dans la forme d un vecteur à D dimensions. z k = F k T X Si on aligne les transformations dans une matrice de taille D x (K-1) on a Z = F T X Ou Z est un vecteur de K-1 coefficients. Par invariance des moments, on peut montrer que 7-14
S ~ w = F T S w F S ~ B = F T S B F Le Critère de Fisher est de maximiser J(W) = det(s~ B) det(s ~ w) = det(ft S B F) det(f T S w F) La solution est rendu par une analyse en composant principales de S ~ B S ~ B F k = λ k S ~ w F k Résoudre F k telle que (S ~ B λ k S ~ w) F k = 0 Les colons peuvent être calculé par une simple orthogonalisation par l'algorithme de Gram-Schmidt des vecteurs (µ k µ ) pour k = 1,..., K 1. On note que F n'est pas unique. Il existe une classe d équivalence avec les rotations et multiplications par une constant. Comparaison de PCA et Discriminant de Fisher Class 1 X PCA X FLD X X X + + + + + + + Class 2 7-15
FisherFaces Dans le cas de la reconnaissance de visage, les variations d'éclairages peuvent provoquer les variations à l'intérieur d'une classe (S W ). La solution est de faire S T = X ~ X ~ T F pca = argmax { det ( F T S T F). F fld = argmax { det(f T (F pca S B F pca ) F) det(f T (F pca S W F pca ) F) } La base F = F pca F fld est un sous-espace linéaire robuste aux variations de lumières. 7-16