1 / 17

La décomposition en valeurs singulières: un outil fort utile

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.

brooklyn
Download Presentation

La décomposition en valeurs singulières: un outil fort utile

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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.

  3. 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

  4. La décomposition SVD:une solution intéressante! • Soit A, une matrice mn, 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 mn, orthonormale W est une matrice nn, diagonale positive VT est une matrice nn orthonormale

  5. Décomposition d’une matrice En Matlab: [U,W,V]=svd(A)

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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.

  12. 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

  13. 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)

  14. 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)

  15. 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

  16. 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)

  17. 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

More Related