• Aucun résultat trouvé

4.1 Introduction

4.3.1 Algorithmes de décomposition CP

Nous proposons de comparer les algorithmes de diagonalisation conjointe non-unitaire de tenseurs d’ordre trois développés dans cette thèse, à trois algorithmes de décomposition CP d’un tenseur d’ordre quatre développés par Sorber et al. dans la toolbox Matlab tensorlab [107]. Rappelons que le lien entre l’ensemble de tenseurs d’ordre trois et le tenseur d’ordre quatre considéré est montré à la fin du paragraphe 2.2.1. Les algorithmes de décomposition CP sont basés sur des méthodes de moindres carrés (ce qui signifie qu’ils reposent sur le critère direct (2.74)). Les trois algorithmes considérés sont les suivants :

• Les moindres carrés alternés ou ALS pour Alternating Least Square, développé et utilisé initialement dans le cadre de la décomposition CP par Carroll et Chang [16] et Harshman [57]. Cet algorithme itératif, très simple, est une référence dans le do-maine. L’ALS consiste ici à estimer tour à tour, une des quatre matrices facteurs, en minimisant au sens des moindres carrés l’erreur quadratique entre les tenseurs et leur modèle. Bien que la convergence ne soit pas systématiquement assurée avec l’ALS, l’algorithme atteint en général un bon niveau de performance et présente une com-plexité algorithmique relativement faible. Cependant, sa convergence est assez lente. Pour notre comparaison, nous utiliserons une version améliorée de l’ALS avec une recherche linéaire optimisée, aussi appelée ELS pour Enhanced Line Search [98, 105] dont le but est de rechercher le pas d’adaptation optimal dans la direction considérée pour garantir la convergence de l’algorithme au prix d’une complexité algorithmique accrue. Dans les simulations, on dénotera cet algorithme CPD-ALS.

• Le gradient conjugué non-linéaire, noté NCG pour Non-linear Conjugate Gradient, dont la version utilisée ici a été développée par Sorber et al. dans [104]. Cette méthode itérative associe des étapes de descente du gradient selon plusieurs directions. Ainsi la complexité de l’algorithme dépendra du nombre d’itérations internes qui est lié aux différentes étapes de descente du gradient. NCG présente une meilleure vitesse de convergence qu’une simple méthode du gradient. Pour l’algorithme considéré, le pas d’adaptation du gradient est calculé de façon optimale à l’aide d’une méthode de Moré-Thuente. Pour les simulations, on dénommera l’algorithme CPD-NCG.

• L’algorithme Levenberg-Marquardt (LM), développé initialement par Marquardt [76], est basé sur la méthode proposée, quelques années auparavant, par Levenberg [68].

Cet algorithme itératif combine la méthode de Gauss-Newton et celle du gradient. Contrairement à la méthode de Gauss-Newton, LM converge vers une solution même s’il est mal initialisé. LM repose essentiellement sur l’estimation et l’inversion de la matrice Jacobienne associée à un critère des moindres carrés plus un terme de régu-larisation permettant d’optimiser la recherche de direction. Cette méthode se place parmi les meilleurs algorithmes de décomposition CP en termes de niveau de perfor-mance et une vitesse de convergence. Le principal inconvénient de cette méthode des moindres carrés est sa complexité algorithmique bien supérieure à celle des autres algorithmes de décomposition CP, due à l’inversion de la matrice Jacobienne. Ce-pendant, la méthode LM utilisée dans le cadre de nos simulations [106] exploite la structure particulière de la matrice Jacobienne, permettant ainsi de réduire la com-plexité de l’algorithme. De plus, elle utilise un préconditionneur basé sur une méthode de gradient conjugué qui permet d’éviter d’éventuels problèmes dus à l’inversion de matrices.

4.3.2 Complexité algorithmique

Avant toute chose, intéressons nous à la complexité par balayage (ou par itération) des différents algorithmes que nous allons comparer. Les complexités avancées ici sont celle obte-nues pour des tenseurs réels. Pour le cas complexe, il suffit de multiplier tous les termes par un facteur quatre. Pour les trois algorithmes de décomposition CP, les calculs des complexi-tés pour des tenseurs de tout ordre, sont détaillés dans [106]. Les complexicomplexi-tés sont données en flop. Pour que les comparaisons soient justes, tous les algorithmes traiteront K tenseurs cibles réduits de dimensions Ns× Ns× Ns (soit un tenseur de dimensions Ns× Ns× Ns× K pour les algorithmes de décomposition CP). Ainsi, dans ces conditions, l’ALS classique pré-sente une complexité par itération de O(10KN4

s) flop et lorsqu’on l’optimise avec l’ELS, on obtient finalement une complexité de l’ordre de O(16KNs4) flop par itération. Pour NCG, la complexité va dépendre, en plus des caractéristiques du problème, du nombre d’itérations de la méthode de Moré-Thuente itmt pour calculer de manière optimale le pas d’adaptation. Ainsi la complexité de NCG dépendra, essentiellement, du calcul du gradient et de la fonction d’évaluation. Finalement, il vaut O(10itmtKN4

s) flop par itération. Enfin, soit itlm le nombre d’itérations internes à l’algorithme LM, et soit itcg le nombre d’itérations nécessaires pour le calcul du préconditionneur, la complexité de l’algorithme LM approximé utilisé ici est de l’ordre de O 2(4 + itlm)KN4

s + itlmitcg(40N2

s +43N3

s + 8N2

s(K + 3Ns) flop par itération. No-tons la grande diminution de complexité par rapport à l’algorithme LM non optimisé qui ne nécessite pas moins de O(2(4 + itlm)KNs4+ itlm31Ns3(K + 3Ns)3) flop par itération.

4.3. Simulations 107 Détaillons, maintenant, le coût des algorithmes de diagonalisation conjointe de tenseurs d’ordre trois développés au cours de cette thèse. Commençons par le calcul des différents paramètres. Pour T-ALUJA, le calcul d’un seul paramètre nécessite exactement 2K(Ns2−1)+1 flop contre seulement 2K + 1 flop pour T-ALUJA-A. Pour un couple (i, j) ∈ Ns2, i < j donné, il y a six paramètres à estimer. Donc, pour un balayage des Ns(Ns−1)

2 couples (i, j) possibles, où un balayage correspond à une itération pour les algorithmes de décomposition CP, l’estimation

de tous les paramètres coûte O(6KN4

s) flop pour T-ALUJA et O(3(2K + 1)N2

s) flop pour T-ALUJA-A. Concernant la mise à jour des tenseurs cibles et des matrices diagonalisantes, la complexité est la même pour les deux algorithmes. Après avoir déterminé un paramètre, on met à jour une tranche de N2

s composantes pour un tenseur cible, soit KN2

s composantes pour

l’ensemble des tenseurs. A chaque estimation d’un paramètre, on met aussi à jour Nséléments d’une matrice diagonalisante (cette opération est clairement négligeable devant la mise à jour des tenseurs cibles). Au cours d’un balayage, ces deux opérations sont faites pour chacun des 3Ns(Ns − 1) paramètres. Ainsi, les mises à jour ont un coût global de O(3KN4

s) flop par itération. Finalement, la complexité par balayage des algorithmes proposés est de O(9KNs4)

flop pour T-ALUJA et de O(3KNs4) flop pour T-ALUJA-A dont le coût d’estimation des

paramètres est négligeable devant le coût des mises à jour.

Algorithmes Complexité (en flop/itération)

T-ALUJA O(9KN4 s) T-ALUJA-A O(3KN4 s) CPD-ALS O(16KN4 s) CPD-NCG O(10itmtKN4 s) CPD-LM O  2(4 + itlm)KN4 s + itlmitcg(40N2 s +4 3N 3 s + 8N2 s(K + 3Ns) 

Table 4.2 – Récapitulatif des complexités de chacun des algorithmes de diagonalisation conjointe de tenseurs proposés et de chacun des algorithmes de décomposition CP utilisés dans ce chapitre

Le tableau 4.2 récapitule les complexités de chaque algorithme. On constate que l’algo-rithme T-ALUJA-A est celui présentant la complexité la plus faible devant T-ALUJA puis CPD-ALS. CPD-NCG et CPD-LM, quant à eux, dépendent du nombre d’itérations interne aux méthodes utilisées. Cependant, même dans le meilleur des cas où itmt = itlm = itcg = 1,

leurs complexités ne descendraient pas en dessous de O(10KN4

s) flop par itération, soit la même complexité que l’ALS non optimisé. Finalement, aucun des algorithmes de décom-position CP présentés ne possède une meilleure complexité algorithmique que T-ALUJA et surtout T-ALUJA-A.