Des avancées sur la présentation de la SVD.

This commit is contained in:
Pierre-Edouard Portier 2021-07-19 22:57:15 +02:00
parent 9cd35e56fb
commit 58f0fc5ac6
2 changed files with 57 additions and 6 deletions

View File

@ -391,15 +391,66 @@ Nous venons de voir que les vecteurs orthogonaux $\mathbf{v_1}, \mathbf{v_2},\do
Nous construirons de même des vecteurs orthogonaux $\mathbf{u_1}, \mathbf{u_2},\dots, \mathbf{u_k}$ qui forment une base d'un sous-espace $k$-dimensionnel sur lequel peuvent être projetés les $P$ vecteurs colonnes de $\mathbf{X}$ pour minimiser les carrés des écarts à l'espace d'origine qui était de dimension (au plus) $max(N,P)$.
Nous trouverons de façon similaire que $\mathbf{u_1}$ est le vecteur propre de $\mathbf{X} \mathbf{X}^T$ associé à la plus grande valeur propre $\lambda_1$ (cette dernière étant exactement la même que celle associée à $\mathbf{v_1}$).
Nous trouverons de façon similaire que $\mathbf{u_1}$ est le vecteur propre de $\mathbf{X} \mathbf{X}^T$ associé à la plus grande valeur propre $\mu_1$. De même, $\mathbf{u_2}$ est le vecteur propre de $\mathbf{X} \mathbf{X}^T$ associé à la seconde plus grande valeur propre $\mu_2$. Etc.
Nous montrerons ensuite que la matrice $\mathbf{X}$ peut s'écrire comme une somme de matrices de rang 1 qui sont les produits des vecteurs $\mathbf{u}$ et $\mathbf{v}$ (on se place dans la situation où $N>P$ et $\mathbf{X}$ est de rang $P$). Il s'agit de la *décomposition en valeurs singulières* de $\mathbf{X}$.
Autrement dit, nous pouvons écrire :
\begin{equation}
\mathbf{X} = \sum_{\alpha=1}^{P} \sqrt{\lambda_\alpha} \mathbf{u_\alpha}\mathbf{v_\alpha}^T
\begin{cases}
\mathbf{X}^T\mathbf{X}\mathbf{v_\alpha} = \lambda_\alpha \mathbf{v_\alpha} \\
\mathbf{X}\mathbf{X}^T\mathbf{u_\alpha} = \mu_\alpha \mathbf{u_\alpha}
\end{cases}
\label{eq:svd-meme-valeurs-propres}
\end{equation}
En prémultipliant la première des deux équations du système (\ref{eq:svd-meme-valeurs-propres}) par $\mathbf{X}$, nous obtenons :
\[
\left(\mathbf{X}\mathbf{X}^T\right)\mathbf{X}\mathbf{v_\alpha} = \lambda_\alpha \left(\mathbf{X}\mathbf{v_\alpha}\right)
\]
Cette dernière équation nous indique qu'au vecteur propre $\mathbf{v_\alpha}$ de $\mathbf{X}^T\mathbf{X}$ correspond un vecteur propre $\left(\mathbf{X}\mathbf{v_\alpha}\right)$ de $\mathbf{X}\mathbf{X}^T$ de même valeur propre $\lambda_\alpha$. Comme $\mu_1$ est la plus grande valeur propre de $\mathbf{X}\mathbf{X}^T$, nous avons montré que $\lambda_1 \leq \mu_1$
De même, en prémultipliant la seconde des deux équations du système (\ref{eq:svd-meme-valeurs-propres}) par $\mathbf{X}^T$, nous montrerions que $\mu_1 \leq \lambda_1$. Donc, $\lambda_1 = \mu_1$ et en général, $\lambda_\alpha = \mu_\alpha$.
Calculons la norme euclidienne, aussi appelée norme L2, de $\mathbf{X}\mathbf{v_\alpha}$.
\begin{align*}
& \text{Norme euclidienne de } \mathbf{X}\mathbf{v_\alpha} \\
= \{ & \text{ Par définition de la norme L2.} \} \\
& \sqrt{\left(\mathbf{X}\mathbf{v_\alpha}\right)^T\left(\mathbf{X}\mathbf{v_\alpha}\right)} \\
= \{ &\text{Propriété de la transposition} \} \\
& \sqrt{\mathbf{v_\alpha}^T\mathbf{X}^T\mathbf{X}\mathbf{v_\alpha}} \\
= \{ & \text{Voir équation (\ref{eq:svd-meme-valeurs-propres})} \} \\
& \sqrt{\lambda_\alpha\mathbf{v_\alpha}^T\mathbf{v_\alpha}} \\
= \{ & \text{Par construction, } \mathbf{v_\alpha} \text{est de norme 1.} \} \\
& \sqrt{\lambda_\alpha} \\
\end{align*}
Nous avons montré plus haut que $\left(\mathbf{X}\mathbf{v_\alpha}\right)$ est un vecteur propre de $\mathbf{X}\mathbf{X}^T$ de valeur propre associée $\lambda_\alpha$. Or, $\mathbf{u_\alpha}$ est le vecteur propre unitaire (i.e., de norme euclidienne égale à 1) de $\left(\mathbf{X}\mathbf{v_\alpha}\right)$ associé à la valeur propre $\lambda_\alpha$. C'est pourquoi, nous pouvons écrire :
\[
\begin{cases}
\mathbf{u_\alpha} = \frac{1}{\sqrt{\lambda_\alpha}} \mathbf{Xv_\alpha} \\
\mathbf{v_\alpha} = \frac{1}{\sqrt{\lambda_\alpha}} \mathbf{X}^T\mathbf{u_\alpha}
\end{cases}
\]
A partir de l'égalité $\mathbf{X}\mathbf{v_\alpha}=\mathbf{u_\alpha}\sqrt{\lambda_\alpha}$, nous post-multiplions par $\mathbf{v_\alpha}^T$ et nous sommons sur l'ensemble des $P$ axes principaux (en supposant, sans perte de généralité, que $N>P$) :
\[
\mathbf{X}\left(\sum_{\alpha=1}^{P}\mathbf{v_\alpha}\mathbf{v_\alpha}^T\right) = \sum_{\alpha=1}^{P}\sqrt{\lambda_\alpha}\mathbf{u_\alpha}\mathbf{v_\alpha}^T
\]
Soit $\mathbf{V}$ la matrice formée des $P$ vecteurs $\mathbf{v_\alpha}$ en colonnes. Comme les vecteurs $\mathbf{v_\alpha}$ sont orthogonaux deux à deux et de norme $1$, $\mathbf{V}\mathbf{V}^T$ est la matrice identité $\mathbf{I_P}$. Donc, $\sum_{\alpha=1}^{P}\mathbf{v_\alpha}\mathbf{v_\alpha}^T=\mathbf{V}\mathbf{V}^T=\mathbf{I_P}$. Nous obtenons finalement :
\begin{equation}
\mathbf{X} = \sum_{\alpha=1}^{P}\sqrt{\lambda_\alpha}\mathbf{u_\alpha}\mathbf{v_\alpha}^T
\label{eq:svd}
\end{equation}
Nous avons montré que la matrice $\mathbf{X}$ peut s'écrire comme une somme de matrices de rang 1 qui sont les produits des vecteurs $\mathbf{u}$ (appelé *vecteur singulier à gauche*) et $\mathbf{v}$ (appelé *vecteur singulier à droite*) pondérés par les *valeurs singulières* $\sqrt{\lambda_\alpha}$. L'équation (\ref{eq:svd}) est celle de la *décomposition en valeurs singulières* de $\mathbf{X}$.
Nous obtenons une reconstitution approchée de rang $k$ de $\mathbf{X}$ en ne conservant dans l'équation (\ref{eq:svd}) que les $k$ plus grandes valeurs singulières $\sqrt{\lambda_1},\sqrt{\lambda_2}, \dots, \sqrt{\lambda_k}$ et en annulant toutes les autres.
## Illustrations du SVD avec la compression d'une image
@ -440,7 +491,7 @@ print_grey_img(compress_SVD(X,64), main="d=64");
## Métrique associée à une matrice définie non négative
Avant de résoudre ce problème d'optimisation, nous rappelons quelques propriétés des matrices symétriques définies non négatives. Une matrice définie non négative (souvent noté PSD pour "positive semi-definite") $\mathbf{M}$ représente une métrique car elle définit un produit scalaire et donc une géométrie, c'est-à-dire qu'elle donne un sens aux notions de distance et d'angle.
Avant de pouvoir présenter le cœur de la preuve de l'existence de la décomposition en valeurs singulières, nous rappelons quelques propriétés des matrices symétriques définies non négatives. Une matrice définie non négative (souvent noté PSD pour "positive semi-definite") $\mathbf{M}$ représente une métrique car elle définit un produit scalaire et donc une géométrie, c'est-à-dire qu'elle donne un sens aux notions de distance et d'angle.
Le produit scalaire défini par $\mathbf{M}$ entre deux vecteurs $\mathbf{x}$ et $\mathbf{y}$ pourra se noter $<\mathbf{x},\mathbf{y}>_{\mathbf{M}} = \mathbf{x}^T\mathbf{M}\mathbf{y}$. Pour que ce produit scalaire soit valide, $\mathbf{M}$ doit respecter la contrainte $\mathbf{x}^T\mathbf{M}\mathbf{y} \geq 0$ pour tout $\mathbf{x}$ et $\mathbf{y}$.
@ -507,7 +558,7 @@ Ainsi, le vecteur résultat $\mathbf{Mx}$ est contraint de rester du même côt
### Présentation de la méthode sur un exemple
Avant de pouvoir présenter la preuve de la décomposition en valeurs singulières, nous devons introduire une stratégie souvent très utile pour résoudre un problème d'optimisation sous contraintes : la méthode dite des multiplicateurs de Lagrange.
Avant de pouvoir présenter la preuve de l'existence de la décomposition en valeurs singulières, nous devons introduire une stratégie souvent très utile pour résoudre un problème d'optimisation sous contraintes : la méthode dite des multiplicateurs de Lagrange.
Prenons un exemple simple à deux dimensions. Nous cherchons à maximiser $F(\mathbf{x}) = x_1^2 + x_2^2$ sous la contrainte $K(\mathbf{x})=b$, avec $K(\mathbf{x}) = a_1 x_1 + a_2 x_2$. C'est-à-dire que le point solution $\mathbf{x^*}$ doit être situé sur la ligne $K$.
@ -581,7 +632,7 @@ Nous allons montrer que la dérivée du gain maximum par rapport au niveau de co
## Dérivation de la décomposition en valeurs singulières
Après ces préambules sur la notion de métrique associée à une matrice définie non négative et sur la méthode d'optimisation dite des multiplicateurs de Lagrange, nous reprenons la dérivation de la décomposition en valeurs singulières.
Après ces préambules sur la notion de métrique associée à une matrice définie non négative et sur la méthode d'optimisation dite des multiplicateurs de Lagrange, nous reprenons la dérivation de la preuve de l'existence de la décomposition en valeurs singulières pour toute matrice.
Rappelons que nous avons noté $\mathbf{v_1}$ le vecteur directeur du meilleur sous-espace de dimension 1 pour le nuage des $N$ observations de $\mathcal{R}^P$. Nous montrons que $\mathbf{v_1}$ est le vecteur propre de $\mathbf{X}^T\mathbf{X}$ associé à la plus grande valeur propre $\lambda_1$.

Binary file not shown.