230 likes | 534 Views
La décomposition en valeurs singulières: un outil fort utile. Références utiles: 1- Sonka et al.: sections 3.2.9 et 3.2.10 2- Notes manuscrites du cours 3- Press et al: Numerical recipes *. *Ce document a aussi été inspiré d’un extrait du cours cos323 par S. Rusinkiewicz à Princeton.
E N D
La décomposition en valeurs singulières: un outil fort utile Références utiles: 1- Sonka et al.: sections 3.2.9 et 3.2.10 2- Notes manuscrites du cours 3- Press et al: Numerical recipes * *Ce document a aussi été inspiré d’un extrait du cours cos323 par S. Rusinkiewicz à Princeton Dernière révision: Patrick Hébert septembre 2008
Introduction • SVD: Singular Value Decomposition • Résolution d’une gamme de problèmes comme par exemple des moindres carrés bien ou mal conditionnés ou des problèmes sous-contraints et bien d’autres … • SVD sera un outil indispensable • Les justifications mathématiques sont riches mais nous le présenterons dans l’optique d’utilisation pour des classes de problèmes ciblées.
Conditionnement • Exemple: ajuster une courbe y=ax2+bx+c sur des points • Normalement 3 points suffisentpour “bien” définir la parabole … Attention: dans un problème mal conditionné, la simple erreur numérique peut faire déraper la solution
La décomposition SVD:une solution intéressante! • Soit A, une matrice mn, la décomposition SVD est un algorithme de factorisation qui permet d’exprimer A comme le produit de trois matrices particulières, U, V, and W telles que: A = UWVT U est une matrice mn, orthonormale W est une matrice nn, diagonale positive VT est une matrice nn orthonormale
Décomposition d’une matrice En Matlab: [U,W,V]=svd(A)
Remarques • Les wi sont les valeurs singulières de A • Si la matrice A est singulière, il y a des wi nulles • En général rang(A) = au nombre de wi non nulles • L’ensemble des wi est “unique”, mis à part l’ordre des wi ou s’il y a égalité parmi des wi
Utilité importante #1: traiter les inverses • A-1=(VT)-1W-1U-1 = VW-1UT • Puisque l’inverse d’une matrice orthonormale est sa transposée • Puisque W est diagonale, W-1 est aussi diagonale avec les inverses multiplicatifs des wi
Suite … • A-1=(VT)-1W-1U-1 = VW-1UT • Ce n’est pas vrai quand des wi = 0 • La matrice est singulière • Pseudoinverse: si wi=0, on fixe 1/wi = 0 • C’est la matrice “la plus près” de l’inverse selon la norme de Frobenius • Existe pour toutes les matrices, même singulières ou rectangulaires • Égale à (ATA)-1AT si ATA est inversible
Utilité importante #2:les moindres carrés • Système Ax=b à résoudre par moindres carrés • x=pseudoinverse(A) b • Calculer la pseudoinverse en utilisant SVD • On vérifie si A est singulière • Même si A n’est pas singulière, on vérifie le ratio de la valeur singulière max sur la valeur min (condition number). C’est une indication de la stabilité du système • Fixer 1/wi = 0 si wi est petit
Variation sur les moindres carrés: syst. homogènes • Système Ax=0 à résoudre par moindres carrés • On a vu que la solution correspond au vecteur propre de ATA associé à la plus petite valeur propre. • Soit A=UWVT, et soit xi la iième colonne de V • Considérons ATAxi: • DONC: Les éléments de W sont sqrt(valeurs propres) et les colonnes de V sont les vecteurs propres de ATA
Utilité importante #3:comparaison de matrices • La norme de Frobenius est couramment utilisée comme norme d’une matrice • La norme de Frobenius peut être calculée au moyen de SVD • Des variations sur une matrice peuvent donc être observées comme des variations sur les valeurs singulières.
Utilité importante #4:approximation de matrices • On cherche la meilleure matrice A’ approximante de rang k pour A • Solution: On ne conserve que les k plus grandes valeurs singulières et on fixe les autres à 0. • On peut éliminer les colonnes de U et V qui correspondent aux valeurs nulles de wi • Enfin on reconstruit A’ à partir de U’W’V’T
SVD et ACP (PCA) • Analyse en Composantes Principales (Principal Components Analysis: PCA): • idée: estimer un ensemble de données de grandes dimensions par un sous-espace • Comment? Les vecteurs propres de la matrice de covariance des données constituent une base lorsque normalisés. Si les vecteurs sont ordonnés selon les valeurs propres, alors on peut sélectionner un sous-ensemble. (schéma au tableau)
SVD et ACP • Construire la matrice A où chaque ligne est un “point” de donnée à m dimensions. • Soustraire la ligne moyenne de chaque ligne • Calculer SVD(A) • Les colonnes de V sont les composantes principales • Les wi indiquent l’importance de chacune des composantes (vecteurs de base)
Reconnaissance de visages: méthode des “Eigenfaces” Première composante principale Visage “moyen” Autres composantes Sauf pour le visage moyen,“gris” = 0,“blanc” > 0, “noir” < 0
Reconnaissance • Sauvegarder chaque visage sous la forme d’un ensemble de coefficients (projection des n principales composantes -> {ai}) • Calculer la projection de l’image à reconnaître, comparer à la base de données (le vecteur le plus près)
Remarque • De nombreux articles ont été publiés sur cette approche des eigenfaces • Cette approche a aussi été étendue pour traiter des variations d’éclairage et de point de vue du visage • M. Vasilescu et D. Terzopoulos, CVPR 2005 et 3DIM 2007