1 Pseudo-inverse et moindres carrés
Transcription
1 Pseudo-inverse et moindres carrés
Calcul scientique et Informatique 10 octobre 2012 TP 3: Applications de la décomposition en valeurs singulières Références: [1] pour une introduction très claire à la décomposition en valeurs singulières. La décomposition en valeur singulières d'un endomorphisme f : Rn → Rm est la donnée : (i) d'une base orthogonale v1 , . . . , vn de l'espace de départ Rn ; (ii) d'une base orthogonale u1 , . . . , um de l'espace d'arrivée Rm ; et (iii) de r ≤ min(n, m) réels positifs σ1 ≥ . . . ≥ σr tels que la relation suivante soit vériée : ( f (vi ) = σi ui si i ≤ r 0 si i > r Matriciellement, la décomposition en valeur singulières d'une matrice A de m colonnes et m lignes s'écrit sous la forme A = U Σ t V , où U et V sont deux matrices orthogonales de taille m × m et n × n respectivement, et où Σ est une matrice diagonale de taille n × m ayant pour éléments diagonaux σ1 , . . . , σr . Pratiquement : Toute matrice admet une décomposition en valeurs singulières (ce qui est un résultat remarquable !). Cette décomposition est loin d'être unique ; seuls les valeurs singulières σ1 ≥ . . . ≥ σr le sont. Dans Scilab, elle s'obtient via la commande : [U SV ] =svd(A). 1 Pseudo-inverse et moindres carrés Exercice 1. On s'intéresse à la résolution d'un système linéaire Ax = b par une technique de moindres carrés, c'est-à-dire par minimisation de la fonction φ : x 7→ kAx − bk2 , où k.k dénote la norme Euclidienne usuelle. t t 1. Montrer l'équation d'optimalité pour un vecteur x : AAx = Ab. En déduire une fonction moindrecarres1 prenant en argument A et b et retournant x (on utilisera la fonction inv pour l'inversion de matrices). t 2. Montrer que si A = U Σ V , alors minimiser φ revient à : (i) Trouver y tel que Σy − t U b soit minimale ; (ii) Calculer x = V y . En déduire une fonction moindrecarres2 utilisant la décomposition en valeurs singulières de A. 3. Application numérique. On considère la matrice A et le vecteur b dénis de la manière suivante 1 c1 = [ 1 2 4 8 ] ' ; c2 = [ 3 6 9 1 2 ] ' ; c3 = c1 − 4 ∗ c2 + ( 1 . d −7) ∗ ( rand ( 4 , 1) − . 5 ) ; A = [ c1 c2 c3 ] ; b = 2 ∗ c1 − 7 ∗ c2 + ( 1 . d −4) ∗ ( rand ( 4 , 1) − . 5 ) ; 4. Appliquer les fonctions moindrecarres1 et moindrecarres2 pour calculer la solution de Ax = b. Calculer la norme du résidus (c'est-à-dire kAx − bk) dans les deux cas. Question subsidiaire. La pseudo-inverse d'une matrice A de taille n × m est l'unique matrice A+ de taille m × n vériant les quatre conditions suivantes : AA+ A = A (AA+ )∗ = AA+ A+ AA+ = A+ (A+ A)∗ = A+ A Montrer que si A = U Σ t V est la décomposition en valeurs singulières de A, alors V Σ−1 t U est une pseudo-inverse de A, où Σ−1 est obtenant en inversant les éléments diagonaux non nuls de Σ. 2 Recalage rigide de nuages de points On se donne deux ensembles ordonnés de points A = x1 , . . . , xN et B = y1 , . . . , yN d de l'espace Euclidien RP . On supposera PN que l'isobarycentre de ces deux ensembles est à N 1 1 l'origine, c'est-à-dire N i=1 xi = N i=1 yi = 0. Recaler A sur B , c'est trouver la matrice orthogonale R qui aligne le mieux RX à Y au sens des moindres carrés, ou autrement dit résoudre le problème d'optimisation suivant 1 min N X R∈O(Rd ) kRxi − yi k2 (1) i=1 où le minimum est pris sur l'ensemble des matrices orthogonales de dimension d. Exercice 2. Dans cet exercice, on calcule la solution du problème de recalage en utilisant la décomposition en valeurs singulières. 1. Expliquer pourquoi ce problème admet au moins une solution. En notant X (resp. Y ) la matrice de taille d × N ayant pour colonnes les vecteurs (xi ) (resp. (yi )), montrer que le problème (1) est équivalent au problème de maximisation max Tr(RX t Y ). R∈O(Rd ) (2) 1. Ce problème apparaît naturellement dans de nombreux domaines scientiques (imagerie médicale, recalage de données mesurées en géologie, etc.) où l'on a aaire à plusieurs mesures du même objet physique acquises sans connaître l'orientation de l'appareil de mesure. 2 2. Notons C = U Σ t V la décomposition en valeurs singulières de la matrice C := X t Y . Montrer que R est solution de (2) si et seulement si la matrice orthogonale M = t V RU réalise le maximum de max Tr(M Σ). M ∈O(Rd ) 3. 4. 5. En utilisant l'orthogonalité de la matrice M , montrer que M maximise (2) ssi mii = 1 pour tout i dans {1, . . . , d} ssi M = Id. En conclure que la solution de (1) est unique et donnée par : R = t U V , où les matrices U et V sont celles dénies à la question précédente. Écrire une fonction recalage_orthogonal qui prend en entrée les matrices X et Y et retourne la matrice R qui résoud le problème (1). Application : On considère les ensembles de points échantillonnés aléatoirement sur le graphe de la fonction f : R2 → R dénie par f (x, y) = cos(3x) + y 2 de la manière suivante : N = 1000; x = rand ( 1 , N) ; y = rand ( 1 , N) ; z = cos (5 ∗ x ) + y . ^ 2 ; X = [x; y; z ]; size (X) // creation de Y par rotation aleatoire rand ( 3 , 3 ) ; S , V] = svd (M) V ∗ U' ; 0 . 0 1 ∗ rand ( 3 , N) ; for i =1:N Y( : , i ) = Y( : , i ) + R ∗ X( : , i ) ; M= [ U, S = Y= end Calculer la matrice de recalage orthogonal entre X et Y . Visualiser en les ensembles de points RX et Y , en utilisant la fonction suivante : function p l o t p o i n t s 3 d (Y) param3d (Y( 1 , : ) , Y( 2 , : ) , Y ( 3 , : ) ) ; e = gce ( ) ; e . line_mode=" o f f " ; e . mark_mode="on" ; a = gca ( ) ; a . isoview = "on" ; endfunction Références [1] D. Kalman. A Singularly Valuable Decomposition : The SVD of a Matrix. Math Journal, 27(1), 1996. 3 College