Un cube de nombres
Trois indices, vingt-sept composantes pour une dimension trois. On peut le trancher de trois façons — en tranches frontales, latérales ou horizontales — et chacune donne une matrice ordinaire. Surtout, un tenseur d'ordre trois est une machine à trois entrées : nourrissez-la de trois vecteurs et elle rend un nombre, de deux vecteurs et elle rend un vecteur, d'un seul et elle rend une matrice. Faites tourner le vecteur w ci-dessous et regardez la matrice T(·,·,w) changer.
Glissez dans la vue de gauche pour tourner autour du cube.
composante positivecomposante négative
Trois indices, trois rôles. Une matrice relie deux espaces ; un tenseur d'ordre trois en relie trois, et c'est pourquoi il apparaît naturellement dès qu'un phénomène croise trois entrées : la piézoélectricité relie un champ électrique à un tenseur de contraintes, l'élasticité non linéaire croise trois directions, et en analyse de données un cube individus × variables × instants est exactement cela. Les traiter comme des piles de matrices, c'est perdre l'information qui lie les trois axes.
Le rang, et la première surprise
Un tenseur de rang un s'écrit a ⊗ b ⊗ c ; le rang est le nombre minimal de tels termes qu'il faut additionner. Pour une matrice, ce rang ne dépasse jamais la dimension. Pour un tenseur, si. Pire : la meilleure approximation de rang deux d'un tenseur donné peut ne pas exister — on peut s'en approcher aussi près qu'on veut sans jamais l'atteindre, en faisant diverger les facteurs. L'animation ci-dessous le montre sur le tenseur classique, dont l'erreur tend vers zéro pendant que les coefficients tendent vers l'infini.
L'approximation est la différence de deux tenseurs de rang un, divisée par ε.
| ε | erreur | norme des termes | produit erreur × norme |
|---|
Ce que cela casse. Pour les matrices, le théorème d'Eckart et Young garantit que la meilleure approximation de rang r existe et se lit dans la décomposition en valeurs singulières. Rien de tel ici : l'ensemble des tenseurs de rang au plus deux n'est pas fermé, et l'optimisation peut diverger indéfiniment en améliorant toujours un peu. C'est pourquoi les algorithmes de décomposition tensorielle imposent des contraintes — orthogonalité, non-négativité, bornes sur les facteurs — non par élégance mais pour que le problème ait une solution.
Pourquoi on ne peut pas diagonaliser
La démonstration ne demande aucune théorie : il suffit de compter. Diagonaliser un tenseur d'ordre trois voudrait dire trouver trois changements de base rendant nulles toutes les composantes hors diagonale. Or un tenseur 3 × 3 × 3 a vingt-sept composantes, alors que trois matrices orthogonales et trois termes diagonaux n'en offrent que douze à régler. Vingt-sept contraintes pour douze inconnues : c'est impossible en général. Ce qui reste possible est la décomposition de Tucker, où les facteurs sont orthogonaux mais où le cœur, lui, n'est pas diagonal.
Le cas des matrices, revisité. Pour un ordre deux, le décompte donne n² composantes contre deux matrices orthogonales — n(n−1)/2 paramètres chacune — plus n valeurs diagonales, soit n(n−1) + n = n². Égalité exacte : c'est précisément pour cela que la décomposition en valeurs singulières existe toujours, et le miracle des matrices n'est rien d'autre que cette coïncidence de comptage, qui cesse dès l'ordre trois.
Il existe pourtant des vecteurs propres
La bonne définition existe : x est vecteur propre si T(·, x, x) = λ x avec x unitaire. Pour un tenseur symétrique, cela revient exactement à chercher les points critiques de la forme cubique f(x) = T(x,x,x) sur la sphère, et la valeur propre est alors la valeur de f en ce point. La sphère ci-dessous est colorée par f ; les points marqués sont les vecteurs propres, trouvés par la méthode de Newton depuis des milliers de départs aléatoires. Ils ne sont pas trois : un tenseur symétrique générique d'ordre trois en dimension trois en possède sept.
Glissez dans la vue pour tourner la sphère.
| λ | vecteur propre | nature | résidu |
|---|
Sept, et pourquoi. Le compte général, dû à Cartwright et Sturmfels, donne ((m−1)ⁿ − 1)/(m−2) valeurs propres pour un tenseur symétrique d'ordre m en dimension n. Pour m = 3 et n = 3, cela fait sept — contre trois pour une matrice, où m = 2 rend la formule dégénérée et le compte égal à n. Sur les réels on en trouve souvent moins, les autres étant complexes ; le tenseur diagonal, lui, les affiche toutes les sept, et l'on peut vérifier qu'elles ne se réduisent pas aux trois directions des axes.
Les bassins d'attraction
L'élément décisif. Pour une matrice, la méthode de la puissance converge vers le même vecteur propre dominant depuis presque n'importe quel départ : il n'y a qu'un bassin. Pour un tenseur, l'itération x ← T(·,x,x) normalisé converge aussi — mais pas toujours vers le même point. La sphère ci-dessous est coloriée selon le vecteur propre atteint depuis chaque départ, et le dessin qui apparaît est une carte de bassins. Trouver la meilleure approximation de rang un d'un tenseur est un problème non convexe, et c'est là qu'on le voit.
Le calcul prend un instant : chaque point de la sphère est le départ d'une itération complète.
La conséquence pratique. Toute décomposition tensorielle repose sur une optimisation non convexe : on relance depuis plusieurs départs, on compare, on garde le meilleur, sans jamais de garantie d'optimalité. Håstad a montré en 1990 que le calcul du rang d'un tenseur est NP-difficile, et Hillar et Lim ont établi en 2013 que presque tous les problèmes tensoriels le sont — leur article s'intitule sobrement Most tensor problems are NP-hard. Ce n'est pas un défaut des algorithmes : c'est la nature du terrain, et la carte ci-dessus en est le relevé.