15.2 Existence

Dans cette section, on montre que toute matrice possède une décomposition en valeurs singullières:

Théorème: (Existence d'une SVD) Toute matrice \(A\) (\(m\times n\)) peut s'écrire comme un produit, \[ A=U\Sigma V^T\,, \] où

  1. \(U\) est \(m\times m\), orthogonale: \(U^TU=UU^T=I_m\); ses colonnes sont appelées left singular vectors de \(A\).
  2. \(\Sigma\) est \(m\times n\), diagonale, les coefficients situés sur sa diagonale sont \(\geqslant 0\), et sont appelés les valeurs singulières de \(A\).
  3. \(V\) est \(n\times n\), orthogonale: \(V^TV=VV^T=I_n\), ses colonnes sont appelées right singular vectors de \(A\).

Les matrices \(A^TA\) et \(AA^T\)

Notre point de départ:

Lemme: Pour une matrice \(A\) (\(m\times n\)) quelconque,

Par les propriétés de la transposée, \[\begin{aligned} (A^TA)^T&=A^T(A^T)^T=A^TA\,,\\ (AA^T)^T&=(A^T)^TA^T=AA^T\,. \end{aligned}\]

Exemple: Si \(A= \begin{pmatrix} -1&2\\ 2&0\\ 3&5 \end{pmatrix} \), alors \[ A^TA= \begin{pmatrix} -1&2&3\\ 2&0&5 \end{pmatrix} \begin{pmatrix} -1&2\\ 2&0\\ 3&5 \end{pmatrix} = \begin{pmatrix} 14&13\\ 13&29 \end{pmatrix}\,, \] et \[ AA^T= \begin{pmatrix} -1&2\\ 2&0\\ 3&5 \end{pmatrix} \begin{pmatrix} -1&2&3\\ 2&0&5 \end{pmatrix} = \begin{pmatrix} 5&-2&7\\ -2&4&6\\ 7&6&34 \end{pmatrix} \]

Étant symétriques, le Théorème Spectral garantit que \(A^TA\) et \(AA^T\) sont diagonalisables:

On sait que les éléments diagonaux de \(D\) (resp. \(D'\)) sont les valeurs propres de \(A^TA\) (resp. \(AA^T\)), avec éventuellement des répétitions selon les dimensions des espaces propres associés. Or ces valeurs propres ont des propriétés particulières:

Lemme: Pour toute matrice \(A\),

  1. Un scalaire \(\lambda\neq 0\) est valeur propre de \(A^TA\) si et seulement si il est également valeur propre de \(AA^T\).
  2. Si \(\lambda\) est valeur propre de \(A^TA\) ou de \(AA^T\), alors \(\lambda \geqslant 0\).

1. Supposons que \(\lambda\neq 0\) est valeur propre de \(A^TA\). Alors il existe \(\boldsymbol{v}\in \mathbb{R}^n\), non-nul, tel que \[ (A^TA)\boldsymbol{v}=\lambda\boldsymbol{v}\,. \] Remarquons que \(A\boldsymbol{v}\neq \boldsymbol{0}\) puisque \(A^TA\boldsymbol{v}\neq \boldsymbol{0}\).

Ensuite, en multipliant les deux côtés de l'identité de dessus par \(A\), on obtient \[ AA^T(A\boldsymbol{v})=\lambda(A\boldsymbol{v})\,, \] qui signifie que \(\lambda\) est aussi valeur propre de \(AA^T\), associée au vecteur propre \(A\boldsymbol{v}\in\mathbb{R}^m\) (qui est non-nul comme on a dit). Le même argument montre que toute valeur propre non-nulle de \(AA^T\) est également valeur propre de \(A^TA\).

2. Maintenant avec une valeur propre \(\lambda\) de \(A^TA\), et un vecteur propre \(\boldsymbol{v}\neq \boldsymbol{0}\), \(A^TA\boldsymbol{v}=\lambda\boldsymbol{v}\), on peut écrire \[\begin{aligned} \lambda\|\boldsymbol{v}\|^2 =\lambda(\boldsymbol{v}\cdotp\boldsymbol{v}) &=\boldsymbol{v}\cdotp(\lambda\boldsymbol{v})\\ &=\boldsymbol{v}\cdotp(A^TA\boldsymbol{v})\\ &=(A\boldsymbol{v})\cdotp(A\boldsymbol{v})\\ &=\|A\boldsymbol{v}\|^2\geqslant 0\,. \end{aligned}\] Puisque \(\|\boldsymbol{v}\|\gt 0\), on en déduit que \(\lambda\geqslant 0\).

Les deux lemmes ci-dessus impliquent:

Pour toute matrice \(A\) (\(m\times n\)), il existe au plus \(\min\{m,n\}\) valeurs propres non-nulles communes de \(A^TA\) et \(AA^T\).

On sait que \(A^TA\) est \(n\times n\) et possède donc au maximum \(n\) valeurs propres non-nulles, et \(AA^T\) est \(m\times m\) et possède donc au maximum \(m\) valeurs propres non-nulles. Comme ces matrices ont les mêmes valeurs propres non-nulles, le nombre de ces valeurs propres non-nulles est plus petit que \(n\) et que \(m\).

Preuve du théorème:

(La preuve ci-dessous est tirée de wikipedia.)

Considérons la diagonalisation de \(A^TA\): \[ A^TA=VDV^T \,. \] En multipliant à gauche par \(V^T\) puis à droite par \(V\), \[ V^T(A^TA)V=D\,. \] Par le lemme ci-dessus, toutes les valeurs propres de \(A^TA\), sur la diagonale de \(D\), sont \(\geqslant 0\).

Sans perte de généralité, on peut supposer que la valeur propre nulle (éventuellement répétée) apparaît en bas de la diagonale: \[ D=\mathrm{diag}(\lambda_1,\lambda_2,\dots,\lambda_l,0,\dots,0)\,, \] avec \(\lambda_1\gt 0,\dots,\lambda_l\gt 0\). Distinguons ensuite la sous-matrice diagonale de \(D\) qui contient les valeurs propres strictement positives, en écrivant: \[ D= \left[ \begin{array}{cc} D_*&0\\ 0&0 \end{array} \right]_{\square}\,, \] où \(D_*=\mathrm{diag}(\lambda_1,\dots,\lambda_l)\) est \(l\times l\), et les ''\(0\)'' sont des matrices nulles.

À l'ordre fixé par les valeurs propres dans \(D\) correspond un ordre des colonnes dans la matrice de changement de base \(V\): \[ V= \left[ \begin{array}{cc} V_1& V_2 \end{array} \right]_{\square}\,, \] où

L'orthonormalité des colonnes de \(V\) implique que \[ V_1^TV_1=I_l\,,\qquad V_2^TV_2=I_{n-l}\,, \] mais la relation \(VV^T=I_n\) implique aussi que \[ I_n= VV^T= \left[ \begin{array}{cc} V_1& V_2 \end{array} \right]_{\square} \left[ \begin{array}{c} V_1^T\\ V_2^T \end{array} \right]_{\square} =V_1V_1^T+V_2V_2^T\,. \] Utilisons ces matrices \(V_1\) et \(V_2\) pour récrire la diagonalisation \(A^TA=VDV^T\), qui est équivalente à \(V^T(A^TA)V=D\). Comme \[\begin{aligned} V^T(A^TA)V &= \left[ \begin{array}{c} V_1^T\\ V_2^T \end{array} \right]_{\square} A^TA \left[ \begin{array}{cc} V_1& V_2 \end{array} \right]_{\square}\\ &= \left[ \begin{array}{c} V_1^T\\ V_2^T \end{array} \right]_{\square} \left[ \begin{array}{cc} A^TAV_1& A^TAV_2 \end{array} \right]_{\square}\\ &= \left[ \begin{array}{cc} V_1^TA^TAV_1& V_1^TA^TAV_2 \\ V_2^TA^TAV_1& V_2^TA^TAV_2 \end{array} \right]_{\square}\,, \end{aligned}\] et comme cette matrice est égale à \[D= \left[ \begin{array}{cc} D_*&0\\ 0&0 \end{array} \right]_{\square}\,, \] ceci implique que \[ V_1^TA^TAV_1=D_* \quad (l\times l) \] et \[ V_2^TA^TAV_2 =0 \quad ((n-l)\times (n-l)) \] De cette dernière, on tire que \((AV_2)^T(AV_2)=0\), qui implique que \[ AV_2=0\,. \] (En effet, on sait que pour toute matrice \(M\), \(M^TM\) contient tous les produits scalaires possibles entre les colonnes de \(M\), en particulier, sur sa diagonale, les carrés des normes des colonnes. Si \(M^TM=0\), cela implique que la norme de chaque colonne de \(M\) est nulle, et donc que \(M\) est la matrice nulle. )

Définissons maintenant la matrice \(m\times l\): \[ U_1:= AV_1D_*^{-1/2}\,, \] où \[ D_*^{-1/2}:= \mathrm{diag}(1/\sqrt{\lambda_1},\dots,1/\sqrt{\lambda_l}) \] est bien définie puisque \(\lambda_k\gt 0\) pour tout \(k=1,\dots,l\), et n'est rien d'autre que l'inverse de \[ D_*^{1/2}:= \mathrm{diag}(\sqrt{\lambda_1},\dots,\sqrt{\lambda_l}). \] On remarque maintenant que les colonnes de \(U_1\) forment une famille orthonormale, puisque \[\begin{aligned} U_1^TU_1 &=(AV_1D_*^{-1/2})^TAV_1D_*^{-1/2}\\ &=D_*^{-1/2}(V_1^TA^TAV_1)D_*^{-1/2}\\ &=D_*^{-1/2}D_*D_*^{-1/2}\\ &=I_l\,. \end{aligned}\] Montrons que \(U_1\), \(D_*\) et \(V_1\) fournissent déjà une première factorisation de \(A\):

En effet, \[\begin{aligned} U_1D_*^{1/2}V_1^T &=AV_1\underbrace{D_*^{-1/2}D_*^{1/2}}_{=I_l}V_1^T\\ &=AV_1V_1^T\\ &=A(I_n-V_2V_2^T)\\ &=A-(\underbrace{AV_2}_{=0})V_2^T\\ &=A \end{aligned}\] Cette première factorisation constitue la base de l'argument; il reste maintenant à modifier le produit \(U_1D_*^{1/2}V_1^T\), en augmentant les tailles des matrices, de façon à ce qu'il devienne \(U\Sigma V^T\).

On rajoute d'abord à \(V_1^T\) le bloc \(V_2^T\), ce qui donne \[ V^T= \left[ \begin{array}{c} V_1^T\\ V_2^T \end{array} \right]_{\square} \] Passons à \(U\). Si \(l=m\), alors on peut prendre \(U=U_1\). Mais, si \(l\lt m\), \(U_1\) n'est pas carrées: ses colonnes forment une base orthonormée de \(\mathrm{Col}(U_1)\subset \mathbb{R}^m\), mais pas de \(\mathbb{R}^m\), on peut donc compléter cette base en une base de \(\mathbb{R}^m\), et même, via un procédé de Gram-Schmidt si nécessaire, la compléter en une base orthonormée de \(\mathbb{R}^n\). Les \(m-l\) vecteurs rajoutés peuvent être rangés dans une matrice \(U_2\), \(m\times(m-l)\), qui permet de définir la matrice \(m\times m\) orthogonale \[ U:= \left[ \begin{array}{cc} U_1& U_2 \end{array} \right]_{\square}\,. \] Finalement, \(\Sigma\) (\(m\times n\)) est construite à partir de \(D_*^{1/2}\) (\(l\times l\)), en rajoutant des blocs nuls, si nécessaire (rappelons que \(l\leqslant \min\{m,n\}\)): \[ \Sigma:= \left[ \begin{array}{cc} D_*^{1/2}&{\color{orange}0}\\ {\color{purple}0}&{\color{teal}0} \end{array} \right]_{\square}\,. \] où

Remarquons que ceci peut a priori faire apparaître des valeurs singulières nulles sur la diagonale de \(\Sigma\).

Montrons que l'on a ce qu'on voulait:

En effet, \[\begin{aligned} U\Sigma V^T &= \left[ \begin{array}{cc} U_1& U_2 \end{array} \right]_{\square} \left[ \begin{array}{cc} D_*^{1/2}&{\color{orange}0}\\ {\color{purple}0}&{\color{teal}0} \end{array} \right]_{\square} \left[ \begin{array}{c} V_1^T\\ V_2^T \end{array} \right]_{\square}\\ &= \left[ \begin{array}{cc} U_1& U_2 \end{array} \right]_{\square} \left[ \begin{array}{cc} D_*^{1/2}V_1^T\\ 0 \end{array} \right]_{\square}\\ &=U_1D_*^{1/2}V_1^T\\ &=A\,. \end{aligned}\] Ceci termine la preuve de l'existence d'une SVD.

Quelques remarques au vu de la preuve que l'on vient de donner: