Table of Contents
Les vecteurs propres représentent un concept fondamental en algèbre linéaire, avec de nombreuses applications passionnantes dans divers domaines tels que l’informatique, les mathématiques appliquées ou le machine learning. Pourtant, ils peuvent sembler abstraits et intimidants, souvent présentés dans des termes très rigoureux et généraux sur plusieurs centaines de pages. Par ailleurs, les informations concernant leur nature et leurs applications sont dispersées dans de multiples sources. Cet article vise à rendre les vecteurs propres plus accessibles grâce à des visualisations simples et des exemples concrets.
Vecteurs et bases
Dans un espace de dimension N, un vecteur \(v\) est une liste de N scalaires :
\[v=\begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_N\end{bmatrix}\]
La base standard (S) est un ensemble particulier de N vecteurs \(s_1, s_2, \dots, s_N\), où \(s_k\) est défini par un 1 à la position k et 0 ailleurs.
Par défaut, chaque vecteur est exprimé par rapport à cette base standard. Autrement dit, le vecteur \(v\) ci-dessus signifie que :
\(v = x_1 \cdot s_1 + x_2 \cdot s_2 + \dots + x_N \cdot s_N\). Pour rendre la base explicite, on note \(v=v_S\).
Géométriquement, un vecteur est une flèche partant de l’origine de l’espace N-dimensionnel et se terminant au point identifié par ses composantes.
L’image suivante illustre en 2D la base standard \(s_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}\), \(s_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix}\), accompagnée de deux autres vecteurs \(v_S = \begin{bmatrix} 3 \\ -1 \end{bmatrix}\) et \(w_S = \begin{bmatrix} 1 \\ 1 \end{bmatrix}\) :
Un ensemble de vecteurs est dit indépendant si aucun d’eux ne peut s’écrire comme une combinaison linéaire des autres. Par exemple, les vecteurs \(\begin{bmatrix} 3 \\ -1 \end{bmatrix}\) et \(\begin{bmatrix} 1 \\ 1 \end{bmatrix}\) sont indépendants, alors que \(\begin{bmatrix} 1 \\ 1 \end{bmatrix}\) et \(\begin{bmatrix} 2 \\ 2 \end{bmatrix}\) ne le sont pas, car ce dernier est le double du premier.
Dans un espace N-dimensionnel, une base est tout ensemble de N vecteurs indépendants. La base standard n’est pas unique ; toute base permet d’exprimer de manière unique chaque vecteur de l’espace comme une somme pondérée de ces vecteurs de base.
Par conséquent, un même vecteur peut être défini selon différentes bases. Les valeurs et la signification de chaque composante peuvent changer, mais le vecteur reste identique. Par exemple, nous avons défini précédemment \(v\) et \(w\) par rapport à la base standard. Maintenant, choisissons la base constituée de ces deux vecteurs, et exprimons les vecteurs \(s_1\) et \(s_2\) par rapport à cette nouvelle base :
Comment changer la base d’un vecteur
Soit \(v_S\) un vecteur exprimé dans la base standard, et B une autre base composée des vecteurs \(b_1, b_2, \dots, b_N\).
On définit la matrice carrée \(B\) de taille N par N dont la j-ième colonne est \(b_{jS}\), c’est-à-dire l’expression du vecteur \(b_j\) dans la base standard.
Le vecteur exprimé dans la base B est alors donné par :
\(v_B = B^{-1} \cdot v_S\) et inversement \(v_S = B \cdot v_B\).
Les opérateurs
Un opérateur est une matrice carrée \(O_S\) de dimension N décrivant comment un vecteur \(v_S\) est transformé en un autre vecteur \(u_S\) :
\(u_S = O_S \cdot v_S\).
On peut voir les vecteurs comme des « données », et les opérateurs comme des « transformations » appliquées aux données.
Dans un espace 2D, plusieurs types d’opérateurs sont couramment rencontrés :
Opérateur de mise à l’échelle
Exemple d’opérateur :
\(O_1 = \begin{bmatrix} k_x & 0 \\ 0 & k_y \end{bmatrix}\), par exemple \(O_1 = \begin{bmatrix} 1.5 & 0 \\ 0 & 2 \end{bmatrix}\).
La figure ci-dessous illustre l’espace 2D original à gauche, l’espace transformé par \(O_1\) au centre, et à droite des gradients indiquant le déplacement des points :
Opérateur cisaillement
Un exemple :
\(O_2 = \begin{bmatrix} 1 & s_x \\ s_y & 1 \end{bmatrix}\), par exemple \(O_2 = \begin{bmatrix} 1 & 0.25 \\ 0.5 & 1 \end{bmatrix}\).
Opérateur de rotation
La matrice de rotation de vecteurs dans le sens anti-horaire d’un angle \(\phi\) est :
\(O_3 = \begin{bmatrix} \cos \phi & -\sin \phi \\ \sin \phi & \cos \phi \end{bmatrix}\).
Par exemple, une rotation de 30° correspond à :
\(O_3 = \begin{bmatrix} 0.866 & -0.5 \\ 0.5 & 0.866 \end{bmatrix}\).
Opérateurs composites
Si un opérateur \(O\) est la composition des opérateurs \(O_1\) puis \(O_2\), on a :
\(O = O_2 \cdot O_1\).
Par exemple, appliquer successivement rotation, cisaillement puis mise à l’échelle correspond à :
\(O_4 = O_1 \cdot O_2 \cdot O_3 = \begin{bmatrix} 1.5 & 0 \\ 0 & 2 \end{bmatrix} \cdot \begin{bmatrix} 1 & 0.25 \\ 0.5 & 1 \end{bmatrix} \cdot \begin{bmatrix} 0.866 & -0.5 \\ 0.5 & 0.866 \end{bmatrix} = \begin{bmatrix} 1.4865 & -0.42525 \\ 1.866 & 1.232 \end{bmatrix}\).
La translation n’est pas un opérateur linéaire
Surprise : la translation n’est pas un opérateur linéaire classique. Elle peut toutefois être modélisée comme telle en ajoutant une dimension temporaire :
Par exemple, pour traduire en 2D un vecteur \(v = \begin{bmatrix} v_x \\ v_y \end{bmatrix}\) horizontalement de \(t_x\) et verticalement de \(t_y\), on ajoute une troisième composante égale à 1 :
\(v = \begin{bmatrix} v_x \\ v_y \\ 1 \end{bmatrix}\).
L’opérateur de translation devient :
\(O = \begin{bmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{bmatrix}\).
La transformation produit :
\(u = O \cdot v = \begin{bmatrix} v_x + t_x \\ v_y + t_y \\ 1 \end{bmatrix}\), puis on supprime la dimension temporaire.
Changer la base d’un opérateur
Comme pour les vecteurs, changer la base dans laquelle un opérateur est exprimé modifie sa représentation :
Soit \(O_S\) un opérateur dans la base standard, et \(B\) une autre base avec la matrice carrée \(B\) définie précédemment.
Alors :
\(O_B = B^{-1} \cdot O_S \cdot B\) et inversement \(O_S = B \cdot O_B \cdot B^{-1}\).
Valeurs propres et vecteurs propres
Pour un opérateur \(O\), un vecteur propre est un vecteur non nul qui, lorsqu’il est transformé par \(O\), reste sur la même droite (il peut conserver ou inverser son sens) mais peut voir sa norme modifiée.
Mathématiquement, si un vecteur \(e \neq 0\) et un scalaire \(\lambda\) vérifient :
\(O \cdot e = \lambda \cdot e\), alors :
- \(e\) est un vecteur propre
- \(\lambda\) est la valeur propre associée
Tout multiple non nul de \(e\) est aussi vecteur propre associé à la même valeur propre (ils ne sont pas indépendants). Ainsi, on s’intéresse généralement à l’axe défini par un vecteur propre plutôt qu’à un vecteur propre particulier.
Un opérateur peut posséder jusqu’à N vecteurs propres indépendants, formant une base appelée base propre.
Appliquer plusieurs fois l’opérateur à un vecteur quelconque non propre converge vers le vecteur propre associé à la valeur propre de plus grande valeur absolue (sauf si le vecteur initial est déjà propre). Cette propriété est illustrée dans les images suivantes et s’éclaircira avec la forme diagonale d’un opérateur.
Exemples en dimension 2
Considérons l’opérateur :
\(O=\begin{bmatrix} 1 & 2 \\ 2 & 1 \end{bmatrix}\), qui possède deux axes de vecteurs propres :
\(e_1 = \begin{bmatrix} t \\ t \end{bmatrix}\), \(e_2 = \begin{bmatrix} t \\ -t \end{bmatrix}\), pour tout \(t \neq 0\), avec valeurs propres \(\lambda_1=3\) et \(\lambda_2=-1\).
La transformation et les axes propres (en rouge) sont représentés ci-dessous :
Un autre opérateur :
\(O=\begin{bmatrix} 1 & 0.5 \\ 0 & 1 \end{bmatrix}\) possède un unique axe propre \(e=\begin{bmatrix} t \\ 0 \end{bmatrix}\), valeur propre \(\lambda=1\).
Enfin, un opérateur de rotation :
\(O=\begin{bmatrix} 0.866 & -0.5 \\ 0.5 & 0.866 \end{bmatrix}\) n’a pas de vecteur propre (en 2D, les rotations n’en possèdent pas ; en 3D, elles en ont un axe).
Un opérateur identité ou de mise à l’échelle uniforme :
\(O=\begin{bmatrix} 2 & 0 \\ 0 & 2 \end{bmatrix}\) a pour vecteurs propres tous les vecteurs non nuls, avec \(\lambda=2\).
Calcul des valeurs propres
On cherche \(\lambda\) tels que :
\((O – \lambda I) \cdot e = 0\), avec \(e \neq 0\), ce qui revient à résoudre :
\(\det(O – \lambda I) = 0\).
En dimension 2, si :
\(O = \begin{bmatrix} a & b \\ c & d \end{bmatrix}\), alors :
\(\lambda_{1,2} = \frac{a + d \pm \sqrt{(a + d)^2 – 4 (a d – b c)}}{2}\).
- Si la racine carrée n’est pas définie dans ℝ, l’opérateur n’a pas de valeurs propres réelles.
- Dans ℂ (nombres complexes), les valeurs propres existent toujours. Si \(\lambda_1 \neq \lambda_2\), il y a exactement deux axes de vecteurs propres.
- Si \(\lambda_1 = \lambda_2\), l’opérateur a soit un seul axe propre, soit tous les axes sont propres.
Calcul des vecteurs propres
Pour chaque valeur propre \(\lambda_k\), on résout :
\((O – \lambda_k I) \cdot e_k = 0\).
Ces équations ne sont pas indépendantes, on obtient donc une famille de solutions où au moins une variable reste libre.
Par exemple, pour :
\(O = \begin{bmatrix} 1 & 2 \\ 2 & 1 \end{bmatrix}\) avec \(\lambda_1 = 3\), \(\lambda_2 = -1\).
Pour \(\lambda_1\) :
\(\begin{bmatrix} -2 & 2 \\ 2 & -2 \end{bmatrix} \cdot e_1 = 0\), donc \(e_1 = \begin{bmatrix} t \\ t \end{bmatrix}\).
Pour \(\lambda_2\) :
\(e_2 = \begin{bmatrix} t \\ -t \end{bmatrix}\).
Quelques propriétés supplémentaires
- Une matrice carrée \(A\) et sa transposée \(A^T\) ont les mêmes valeurs propres.
- Une matrice stochastique (valeurs positives, chaque ligne somme à 1) a toujours \(\lambda=1\) comme valeur propre maximale.
- Tous les vecteurs propres indépendants d’une matrice symétrique sont orthogonaux.
Applications clés des vecteurs propres
Malgré leur définition pointue, les vecteurs propres ont un large éventail d’applications pratiques.
1. Diagonalisation et exponentiation des matrices
Pour une matrice \(A\), calculer \(A^k\) pour \(k \gg 1\) peut être coûteux. En choisissant une base propre \(E\), on écrit :
\(A = E \cdot O_E \cdot E^{-1}\), où \(O_E\) est diagonale avec les valeurs propres sur la diagonale.
Alors :
\(A^k = E \cdot O_E^k \cdot E^{-1}\), et comme \(O_E^k\) est diagonale, son calcul est simple.
Exemple : pour :
\(A = \begin{bmatrix} -2 & 1 \\ -4 & 3 \end{bmatrix}\), avec \(\lambda_1 = -1\), \(\lambda_2 = 2\), on obtient :
\(A^{1000} = \begin{bmatrix} \frac{4-2^{1000}}{3} & \frac{2^{1000}-1}{3} \\ \frac{4-2^{1002}}{3} & \frac{2^{1002}-1}{3} \end{bmatrix}\).
2. Séries récursives
Série de Fibonacci : chaque terme est somme des deux précédents, modélisée dans un espace 2D par :
\(v_k = \begin{bmatrix} f_{k-1} \\ f_k \end{bmatrix}\), avec opérateur :
\(O = \begin{bmatrix} 0 & 1 \\ 1 & 1 \end{bmatrix}\).
La formule directe du \(n\)-ième terme est :
\(f_n = \frac{1}{\sqrt{5}} \left( \left(\frac{1 + \sqrt{5}}{2}\right)^n – \left(\frac{1 – \sqrt{5}}{2}\right)^n \right)\).
Série géométrique : modélisée par :
\(v_k = \begin{bmatrix} a_k \\ g_k \end{bmatrix}\), \(O = \begin{bmatrix} t & 0 \\ t & 1 \end{bmatrix}\).
La formule fermée est :
\(g_n = c \cdot \frac{1 – t^{n+1}}{1 – t}\), pour \(t \neq 1\).
3. Chaînes de Markov
Une chaîne de Markov est un graphe orienté pondéré où la somme des poids sortants d’un nœud vaut 1.
Chaque état est un vecteur, la transition est un opérateur stochastique.
L’état stable est le vecteur propre associé à la valeur propre 1, représentant la distribution de probabilité après un grand nombre d’itérations.
Exemple simple :
Chaîne avec matrice de transition :
\(A = \begin{bmatrix} 0.4 & 0.3 \\ 0.6 & 0.7 \end{bmatrix}\),
avec vecteur propre associé :
\(e_1 = \begin{bmatrix} \frac{1}{3} \\ \frac{2}{3} \end{bmatrix}\), vérifiant \(A \cdot e_1 = e_1\).
Application Google PageRank : chaque page Web est un nœud, les liens sont des arêtes avec poids égaux.
Le vecteur propre dominant donne le rang d’importance des pages.
4. Clustering spectral de graphes
Pour un graphe non orienté connecté, le but est de trouver \(K\) clusters où les nœuds sont fortement connectés entre eux.
On définit :
- Matrice d’adjacence \(A\)
- Matrice diagonale des degrés \(D\), avec \(D_{ii} = \sum_j A_{ij}\)
- Matrice laplacienne \(L = D – A\)
La matrice laplacienne a une valeur propre nulle unique si le graphe est connecté.
Le vecteur propre associé à la deuxième plus petite valeur propre (\(e_2\)) sert à séparer les nœuds en deux groupes (selon le signe des composantes).
Pour plus de groupes, on utilise les vecteurs propres suivants et applique l’algorithme des k-moyennes sur leurs projections.
Exemple : Le réseau du « Zachary’s Karate Club » représente les relations sociales entre 34 membres.
Utiliser le clustering spectral permet de reproduire la scission réelle en deux groupes, à l’exception d’un membre ambigu (#9).
5. Réduction de dimension avec l’ACP (PCA)
Si les données sont des vecteurs N-dimensionnels, il est souvent utile de les réduire à K dimensions en conservant un maximum d’information.
- Compression des données
- Visualisation (2D, 3D)
- Amélioration de l’efficacité des modèles
- Réduction du surapprentissage
L’Analyse en Composantes Principales (ACP) repose sur les vecteurs propres.
On centre et normalise les données, puis on calcule la matrice de covariance \(V\) et ses vecteurs propres.
Les K premiers vecteurs propres \(e_1, \dots, e_K\) correspondent aux directions de plus grande variance.
Pour réduire un vecteur \(d_N\) en \(d_K\), on calcule :
\(d_K = E \cdot d_N\), où \(E\) a ses lignes égales aux vecteurs propres.
Application Eigenfaces pour la reconnaissance faciale : un visage représenté par N pixels devient un vecteur de dimension K bien plus petite.
En compressant un jeu d’images de visages, on peut les reconstruire avec une qualité satisfaisante.
Les 25 premières eigenfaces extraites sont :
Enfin, la moyenne, l’écart-type et leur ratio sont représentés ici :
Visualisation de données multidimensionnelles : par exemple, le jeu de données IRIS (4 dimensions) projeté sur les deux premiers vecteurs propres :
Cette projection sépare bien les trois espèces d’iris, utile pour la classification.