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ù
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.
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:
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\).
(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: