Algèbre

Diagonaliser une matrice rectangulaire : la SVD (décomposition en valeurs singulières)

Une matrice rectangulaire n'a ni valeurs propres ni déterminant : on ne peut pas la diagonaliser au sens habituel. Mais si l'on s'autorise deux bases orthonormées, une au départ et une à l'arrivée, toute matrice devient diagonale. C'est la décomposition en valeurs singulières, A = UΣVᵀ. Cinq planches pour la voir dans le plan, dans l'espace, la calculer sans piège, s'en servir pour débruiter, puis l'appliquer à trois problèmes concrets.

Vue d'ensemble

Soit A une matrice réelle à m lignes et n colonnes : elle envoie ℝⁿ dans ℝᵐ. Le théorème dit qu'il existe une base orthonormée (v₁, …, vₙ) de l'espace de départ, une base orthonormée (u₁, …, uₘ) de l'espace d'arrivée et des nombres σ₁ ≥ σ₂ ≥ … ≥ 0 tels que

A vᵢ = σᵢ uᵢ, c'est-à-dire A = U Σ Vᵀ = σ₁ u₁v₁ᵀ + σ₂ u₂v₂ᵀ + …

Les σᵢ sont les valeurs singulières. Ce sont les racines carrées des valeurs propres de AᵀA (ou de AAᵀ), qui sont symétriques et positives. Le nombre de σᵢ non nulles est le rang de A.

Diagonalisation B = PDP⁻¹SVD A = UΣVᵀ
Matrices concernéescarrées, et pas toutestoutes, même rectangulaires
Basesune seule, souvent non orthogonaledeux, toujours orthonormées
Nombres diagonauxvaleurs propres, parfois complexesvaleurs singulières, réelles et ≥ 0
Calcul numériqueparfois instabletoujours stable
Une matrice 2 × 3 envoie la sphère unité de ℝ³ (à gauche) sur une ellipse pleine du plan (à droite). La direction v₃ (rouge) est écrasée sur 0 : c'est le noyau. Les directions v₁ et v₂ deviennent les demi-axes σ₁u₁ et σ₂u₂ de l'ellipse.
1

Dans le plan : tourner, étirer, tourner

Toute matrice 2 × 2 transforme le cercle unité en ellipse. Les axes de cette ellipse sont les valeurs singulières.

Écrire A = UΣVᵀ, c'est décomposer A en trois gestes simples : Vᵀ tourne le plan (ou le retourne) pour amener v₁ et v₂ sur les axes, Σ étire selon les axes d'un facteur σ₁ et σ₂, puis U tourne le résultat pour placer les axes sur u₁ et u₂. Contrairement aux valeurs propres, qui disparaissent pour une rotation, les valeurs singulières existent toujours.

Exemples :
Le cercle unité (pointillé), le quadrillage et leur image. En rouge et vert, v₁ et v₂ sur le cercle ; leurs images Av₁ = σ₁u₁ et Av₂ = σ₂u₂ sont exactement les demi-axes de l'ellipse.
Valeurs singulières σ₁ ≥ σ₂
Demi-axes mesurés en parcourant 3 600 points du cercle
σ₁σ₂ = |det A| · σ₁² + σ₂² = a² + b² + c² + d²
Valeurs propres, pour comparer
Étape
Le maximum et le minimum. σ₁ est le plus grand allongement possible, σ₁ = max ‖Ax‖ pour ‖x‖ = 1 : c'est la norme de A. σ₂ est le plus petit. Leur rapport κ = σ₁/σ₂ est le conditionnement : plus l'ellipse est aplatie, plus résoudre Ax = b amplifie les erreurs.
2

Une matrice rectangulaire et ses quatre sous-espaces

Que fait une matrice 2 × 3, qui envoie l'espace sur le plan ?

La SVD découpe proprement chacun des deux espaces. Au départ, ℝ³ = (plan des lignes, engendré par v₁, v₂) ⊕ (noyau, engendré par v₃). À l'arrivée, ℝ² = image, engendrée par u₁, u₂ (si le rang vaut 2). Un vecteur x se décompose sur v₁, v₂, v₃. Sa composante sur v₃ est perdue, et les deux autres sont multipliées par σ₁ et σ₂ puis portées par u₁ et u₂. Ce sont les quatre sous-espaces fondamentaux de Gilbert Strang : image et noyau de A, image et noyau de Aᵀ.

ℝ³ : la sphère unité, le plan des lignes (disque bleu, engendré par v₁ et v₂) et le noyau (droite rouge v₃). Faites glisser pour tourner la vue.
ℝ² : l'image de la sphère est l'ellipse pleine de demi-axes σ₁u₁ et σ₂u₂. Le point orange est Ax.
σ₁, σ₂ (Jacobi à un côté)
Valeurs propres de AᵀA (3) et de AAᵀ (2)
Noyau : v₃ = v₁ ∧ v₂ et ‖Av₃‖
A − (σ₁u₁v₁ᵀ + σ₂u₂v₂ᵀ)
Le vecteur x et son image
AᵀA et AAᵀ ont les mêmes valeurs propres non nulles. Ici AᵀA est 3 × 3 et AAᵀ est 2 × 2. Elles partagent σ₁² et σ₂², et AᵀA a en plus une valeur propre nulle, celle du noyau. Si Av = σu, alors AᵀAv = σAᵀu = σ²v : c'est le même nombre, vu des deux côtés.
3

Calculer la SVD (décomposition en valeurs singulières) sans tomber dans le piège de AᵀA

Les σᵢ sont les racines des valeurs propres de AᵀA. Faut-il donc calculer AᵀA ? Surtout pas.

La méthode de Jacobi à un côté (Hestenes, 1958) travaille directement sur A. On prend deux colonnes, et on les fait tourner ensemble d'un angle choisi pour qu'elles deviennent orthogonales. On recommence avec toutes les paires, plusieurs « balayages » de suite. À la fin, les colonnes sont orthogonales : leurs normes sont les σᵢ, leurs directions les uᵢ, et le produit des rotations donne V. La convergence est d'abord lente, puis quadratique : le nombre de chiffres exacts double à chaque balayage.

Matrice des cosinus entre colonnes, |cᵢ·cⱼ|/(‖cᵢ‖‖cⱼ‖), au fil des rotations : les cases hors diagonale s'éteignent. Les deux colonnes en cours de rotation sont encadrées.
Plus grand cosinus entre deux colonnes après chaque balayage (échelle logarithmique) : la chute s'accélère, signe de la convergence quadratique.
Balayages · rotations
‖A − UΣVᵀ‖ · ‖UᵀU − I‖ · ‖VᵀV − I‖
Écart relatif avec √(valeurs propres de AᵀA)

Le piège : la matrice de Läuchli

Prenons A = [[1, 1], [ε, 0], [0, ε]]. Ses valeurs singulières sont √(2 + ε²) et ε exactement. Mais AᵀA = [[1 + ε², 1], [1, 1 + ε²]], et dès que ε² est plus petit que la précision de la machine (environ 10⁻¹⁶), l'ordinateur arrondit 1 + ε² à 1. Il ne voit plus qu'une matrice singulière, et la petite valeur singulière est perdue. Former AᵀA élève le conditionnement au carré.

Erreur relative sur σ₂ = ε selon k : par les valeurs propres de AᵀA (rouge), par Jacobi à un côté sur A (vert). La première explose dès ε ≈ 10⁻⁸.
ε (valeur exacte de σ₂)
σ₂ par √λ₂(AᵀA)
σ₂ par Jacobi à un côté
Ce que font les bibliothèques. LAPACK, et donc Python, R ou MATLAB, ne forment jamais AᵀA. Elles ramènent A à une forme bidiagonale par des réflexions de Householder (Golub et Kahan, 1965), puis appliquent une variante de l'algorithme QR (Golub et Reinsch, 1970). Jacobi à un côté est plus lent, mais il est encore plus précis sur les petites valeurs singulières.
4

Rang faible : garder le signal, jeter le bruit

La meilleure approximation de rang k s'obtient en ne gardant que les k premiers termes σ₁u₁v₁ᵀ + … + σₖuₖvₖᵀ (théorème d'Eckart-Young, 1936). Combien de termes faut-il garder quand les données sont bruitées ?

Une « image » 60 × 60 de rang 3 (trois motifs superposés, de valeurs singulières 60, 35 et 20) est noyée dans un bruit gaussien. Les valeurs singulières du bruit forment un nuage compact (loi de Marchenko-Pastur, dont le bord vaut environ 2√60 · σbruit), d'où émergent les trois valeurs du signal. Garder trop peu de termes efface du signal ; en garder trop réintroduit du bruit. Gavish et Donoho (2014) ont montré que le seuil optimal, pour une matrice carrée n × n de bruit connu, est (4/√3)·√n·σbruit.

De gauche à droite : le signal pur (inconnu en pratique), la mesure bruitée, et sa reconstruction de rang k.
Les valeurs singulières de la mesure bruitée, avec le seuil de Gavish-Donoho (trait rouge) et le bord théorique du bruit 2√n·σ (pointillé).
Erreur de la reconstruction par rapport au signal pur, selon k. Le minimum est au vrai rang, 3, tant que le bruit reste modéré ; quand il devient fort, la troisième composante (σ = 20) se noie et le meilleur choix tombe à 2.
Erreur relative ‖Ak − signal‖ / ‖signal‖
Meilleur k · valeurs singulières au-dessus du seuil
Eckart-Young : ‖A − Ak‖₂ = σk+1 (puissance itérée)
Pourquoi ça marche. Un signal structuré concentre son énergie sur quelques directions, alors que le bruit l'étale sur toutes. Couper sous le seuil supprime la plus grande partie du bruit et ne retire presque rien au signal. Le même principe sert à compresser les images, à débruiter les spectres ou à recommander des films.
5

Signature : aligner, ajuster, déformer

Trois problèmes d'apparence très différente, résolus par la même décomposition.

On dispose de deux relevés d'une même forme : le second a été tourné, déplacé et bruité. Quelle rotation R aligne au mieux le premier sur le second ? On centre les deux nuages, on forme la matrice H = Σ pᵢqᵢᵀ et l'on calcule sa SVD H = UΣVᵀ. La réponse est R = VUᵀ (avec une correction de signe pour exclure les symétries). C'est l'algorithme de Kabsch (1976), utilisé pour superposer des molécules ou recaler des images médicales.

La forme de référence (bleu) et le relevé tourné, déplacé et bruité (orange). « Aligner » applique la rotation et la translation trouvées par la SVD.
Angle trouvé par la SVD
Contrôle : balayage de 36 000 angles puis affinage
Écart quadratique moyen après alignement

La régression ordinaire minimise les écarts verticaux : elle suppose x exact et y seul bruité. Quand les deux coordonnées sont mesurées avec erreur, on minimise plutôt les distances perpendiculaires à la droite. C'est le problème des moindres carrés totaux. Sa solution : la droite passe par le centre de gravité, et sa normale est le dernier vecteur singulier v₂ de la matrice des points centrés. La somme des carrés des distances vaut exactement σ₂².

Les points, la vraie droite (gris), la régression ordinaire de y sur x (rouge, écarts verticaux) et les moindres carrés totaux (vert, écarts perpendiculaires).
Pente vraie · ordinaire · totale
Somme des distances² = σ₂² ?
Contrôle : balayage de l'angle de la droite

En mécanique, une petite pièce déformée par A subit à la fois un étirement et une rotation. La SVD les sépare : A = UΣVᵀ = (UVᵀ)(VΣVᵀ) = Q S, où Q est une rotation et S une matrice symétrique positive, l'étirement pur. Q est aussi la rotation la plus proche de A. C'est la décomposition polaire, l'analogue matriciel de z = eiθ·|z|.

Une plaque quadrillée : d'abord étirée par S selon ses directions principales (sans rotation), puis tournée par Q. Le résultat est l'image par A.
Q (rotation) · angle
S (étirement) · valeurs propres
‖A − QS‖ · ‖QᵀQ − I‖ · S − Sᵀ
Rotation la plus proche de A, par balayage

Une brève histoire

1873–1874Eugenio Beltrami puis Camille Jordan découvrent, indépendamment, la décomposition pour les formes bilinéaires.
1889James Joseph Sylvester la retrouve et parle de « multiplicateurs canoniques ».
1907Erhard Schmidt l'étend aux opérateurs intégraux et démontre déjà le théorème de meilleure approximation.
1936Carl Eckart et Gale Young publient le théorème d'approximation de rang faible, pour la psychométrie.
1958Magnus Hestenes propose la méthode de Jacobi à un côté.
1965–1970Gene Golub, William Kahan puis Christian Reinsch donnent l'algorithme stable des bibliothèques actuelles.
1976Wolfgang Kabsch résout l'alignement de deux nuages de points par la SVD.
2014Matan Gavish et David Donoho calculent le seuil optimal de troncature pour débruiter.

En résumé

Deux bases plutôt qu'une

Toute matrice, même rectangulaire, devient diagonale si l'on choisit une base orthonormée au départ et une autre à l'arrivée. Les σᵢ sont les demi-axes de l'image de la sphère.

Calculer avec soin

Les σᵢ sont les racines des valeurs propres de AᵀA, mais former AᵀA détruit les petites. On travaille directement sur A, par rotations de Jacobi ou par bidiagonalisation.

Un outil à tout faire

Rang, noyau, image, conditionnement, approximation de rang faible, débruitage, alignement de formes, moindres carrés totaux, décomposition polaire : tout se lit sur UΣVᵀ.

Pour aller plus loin

Pseudo-inverse. A⁺ = VΣ⁺Uᵀ, où Σ⁺ inverse les σᵢ non nulles. A⁺b est la solution des moindres carrés de norme minimale (voir la version 1 de cette page).

Analyse en composantes principales. L'ACP d'un tableau centré n'est rien d'autre que sa SVD : les vᵢ sont les axes principaux, les σᵢ²/n les variances expliquées.

Liens. Matrices et valeurs singulières, ACP par la transposée et l'inverse, décompositions LU et QR, espaces euclidiens, réduction des endomorphismes.