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 AA (m×nm\times n) peut s'écrire comme un produit, A=UΣVT, A=U\Sigma V^T\,,

  1. UU est m×mm\times m, orthogonale: UTU=UUT=ImU^TU=UU^T=I_m; ses colonnes sont appelées left singular vectors de AA.
  2. Σ\Sigma est m×nm\times n, diagonale, les coefficients situés sur sa diagonale sont 0\geqslant 0, et sont appelés les valeurs singulières de AA.
  3. VV est n×nn\times n, orthogonale: VTV=VVT=InV^TV=VV^T=I_n, ses colonnes sont appelées right singular vectors de AA.

Les matrices ATAA^TA et AATAA^T

Notre point de départ:

Lemme: Pour une matrice AA (m×nm\times n) quelconque,

Par les propriétés de la transposée, (ATA)T=AT(AT)T=ATA,(AAT)T=(AT)TAT=AAT.\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=(122035)A= \begin{pmatrix} -1&2\\ 2&0\\ 3&5 \end{pmatrix} , alors ATA=(123205)(122035)=(14131329), 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 AAT=(122035)(123205)=(5272467634) 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 ATAA^TA et AATAA^T sont diagonalisables:

On sait que les éléments diagonaux de DD (resp. DD') sont les valeurs propres de ATAA^TA (resp. AATAA^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 AA,

  1. Un scalaire λ0\lambda\neq 0 est valeur propre de ATAA^TA si et seulement si il est également valeur propre de AATAA^T.
  2. Si λ\lambda est valeur propre de ATAA^TA ou de AATAA^T, alors λ0\lambda \geqslant 0.

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

Ensuite, en multipliant les deux côtés de l'identité de dessus par AA, on obtient AAT(Av)=λ(Av), AA^T(A\boldsymbol{v})=\lambda(A\boldsymbol{v})\,, qui signifie que λ\lambda est aussi valeur propre de AATAA^T, associée au vecteur propre AvRmA\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 AATAA^T est également valeur propre de ATAA^TA.

2. Maintenant avec une valeur propre λ\lambda de ATAA^TA, et un vecteur propre v0\boldsymbol{v}\neq \boldsymbol{0}, ATAv=λvA^TA\boldsymbol{v}=\lambda\boldsymbol{v}, on peut écrire λv2=λ(vv)=v(λv)=v(ATAv)=(Av)(Av)=Av20.\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 v>0\|\boldsymbol{v}\|\gt 0, on en déduit que λ0\lambda\geqslant 0.

Les deux lemmes ci-dessus impliquent:

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

On sait que ATAA^TA est n×nn\times n et possède donc au maximum nn valeurs propres non-nulles, et AATAA^T est m×mm\times m et possède donc au maximum mm 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 nn et que mm.

Preuve du théorème:

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

Considérons la diagonalisation de ATAA^TA: ATA=VDVT. A^TA=VDV^T \,. En multipliant à gauche par VTV^T puis à droite par VV, VT(ATA)V=D. V^T(A^TA)V=D\,. Par le lemme ci-dessus, toutes les valeurs propres de ATAA^TA, sur la diagonale de DD, sont 0\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=diag(λ1,λ2,,λl,0,,0), D=\mathrm{diag}(\lambda_1,\lambda_2,\dots,\lambda_l,0,\dots,0)\,, avec λ1>0,,λl>0\lambda_1\gt 0,\dots,\lambda_l\gt 0. Distinguons ensuite la sous-matrice diagonale de DD qui contient les valeurs propres strictement positives, en écrivant: D=[D000], D= \left[ \begin{array}{cc} D_*&0\\ 0&0 \end{array} \right]_{\square}\,, D=diag(λ1,,λl)D_*=\mathrm{diag}(\lambda_1,\dots,\lambda_l) est l×ll\times l, et les ''00'' sont des matrices nulles.

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

L'orthonormalité des colonnes de VV implique que V1TV1=Il,V2TV2=Inl, V_1^TV_1=I_l\,,\qquad V_2^TV_2=I_{n-l}\,, mais la relation VVT=InVV^T=I_n implique aussi que In=VVT=[V1V2][V1TV2T]=V1V1T+V2V2T. 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 V1V_1 et V2V_2 pour récrire la diagonalisation ATA=VDVTA^TA=VDV^T, qui est équivalente à VT(ATA)V=DV^T(A^TA)V=D. Comme VT(ATA)V=[V1TV2T]ATA[V1V2]=[V1TV2T][ATAV1ATAV2]=[V1TATAV1V1TATAV2V2TATAV1V2TATAV2],\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=[D000],D= \left[ \begin{array}{cc} D_*&0\\ 0&0 \end{array} \right]_{\square}\,, ceci implique que V1TATAV1=D(l×l) V_1^TA^TAV_1=D_* \quad (l\times l) et V2TATAV2=0((nl)×(nl)) V_2^TA^TAV_2 =0 \quad ((n-l)\times (n-l)) De cette dernière, on tire que (AV2)T(AV2)=0(AV_2)^T(AV_2)=0, qui implique que AV2=0. AV_2=0\,. (En effet, on sait que pour toute matrice MM, MTMM^TM contient tous les produits scalaires possibles entre les colonnes de MM, en particulier, sur sa diagonale, les carrés des normes des colonnes. Si MTM=0M^TM=0, cela implique que la norme de chaque colonne de MM est nulle, et donc que MM est la matrice nulle. )

Définissons maintenant la matrice m×lm\times l: U1:=AV1D1/2, U_1:= AV_1D_*^{-1/2}\,, D1/2:=diag(1/λ1,,1/λl) D_*^{-1/2}:= \mathrm{diag}(1/\sqrt{\lambda_1},\dots,1/\sqrt{\lambda_l}) est bien définie puisque λk>0\lambda_k\gt 0 pour tout k=1,,lk=1,\dots,l, et n'est rien d'autre que l'inverse de D1/2:=diag(λ1,,λl). D_*^{1/2}:= \mathrm{diag}(\sqrt{\lambda_1},\dots,\sqrt{\lambda_l}). On remarque maintenant que les colonnes de U1U_1 forment une famille orthonormale, puisque U1TU1=(AV1D1/2)TAV1D1/2=D1/2(V1TATAV1)D1/2=D1/2DD1/2=Il.\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 U1U_1, DD_* et V1V_1 fournissent déjà une première factorisation de AA:

En effet, U1D1/2V1T=AV1D1/2D1/2=IlV1T=AV1V1T=A(InV2V2T)=A(AV2=0)V2T=A\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 U1D1/2V1TU_1D_*^{1/2}V_1^T, en augmentant les tailles des matrices, de façon à ce qu'il devienne UΣVTU\Sigma V^T.

On rajoute d'abord à V1TV_1^T le bloc V2TV_2^T, ce qui donne VT=[V1TV2T] V^T= \left[ \begin{array}{c} V_1^T\\ V_2^T \end{array} \right]_{\square} Passons à UU. Si l=ml=m, alors on peut prendre U=U1U=U_1. Mais, si l<ml\lt m, U1U_1 n'est pas carrées: ses colonnes forment une base orthonormée de Col(U1)Rm\mathrm{Col}(U_1)\subset \mathbb{R}^m, mais pas de Rm\mathbb{R}^m, on peut donc compléter cette base en une base de Rm\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 Rn\mathbb{R}^n. Les mlm-l vecteurs rajoutés peuvent être rangés dans une matrice U2U_2, m×(ml)m\times(m-l), qui permet de définir la matrice m×mm\times m orthogonale U:=[U1U2]. U:= \left[ \begin{array}{cc} U_1& U_2 \end{array} \right]_{\square}\,. Finalement, Σ\Sigma (m×nm\times n) est construite à partir de D1/2D_*^{1/2} (l×ll\times l), en rajoutant des blocs nuls, si nécessaire (rappelons que lmin{m,n}l\leqslant \min\{m,n\}): Σ:=[D1/2000]. \Sigma:= \left[ \begin{array}{cc} D_*^{1/2}&{\color{orange}0}\\ {\color{purple}0}&{\color{teal}0} \end{array} \right]_{\square}\,.

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, UΣVT=[U1U2][D1/2000][V1TV2T]=[U1U2][D1/2V1T0]=U1D1/2V1T=A.\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: