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