• Aucun résultat trouvé

Algorithmes d'optimisation

Chapitre 7 Étalonnage des diagrammes d'antennes de MIRAS

7.3 Méthode d'étalonnage

7.3.4 Algorithmes d'optimisation

Plusieurs algorithmes d'optimisations sont envisageables comme l'algorithme de la descente du gradient et l'algorithme du gradient conjugué. Ces deux algorithmes sont simples à implémen- ter et ont une convergence linéaire pour le premier et super-linéaire pour le second ([72] page 41). Cependant, vue la nature non convexe du critère (7.9) qui est aussi non quadratique avec des termes en x d'ordre 4, nous proposons d'utiliser aussi l'algorithme de Newton qui nécessite le calcul des dérivées d'ordre 1 et 2 du critère à minimiser. La vitesse de convergence est ici qua- dratique ([72] page 41) mais le temps de calcul de chaque itération est plus élevé de celui des algorithmes précédents.

Ainsi, quel que soit l'algorithme choisi, les étapes suivantes sont répétées à chaque itération t et l'organigramme correspondant est présenté sur la gure 7.1 :

1. Calcul du gradient ∇J(x(t)) (et de la matrice hessienne ∇2J(x(t)) si nécessaire) 2. Choix de la direction de descente d(t) selon l'algorithme

3. Calcul du pas optimal λmin> 0 tel que λmin = arg min λ J(x

(t)+ λd(t)) 4. Mise à jour de la solution : x(t+1)= x(t)+ λ

mind(t)

Il nous reste maintenant à dénir la direction de descente d, expliquer le choix de cette direction pour chaque algorithme, calculer le pas de minimisation λ et nalement préciser l'ini- tialisation et le test d'arrêt.

a) Direction de descente

En optimisation, une direction de descente d est un vecteur de même dimension que le vecteur à estimer x qui permet de se rapprocher d'un minimum local bx de la fonction à minimiser J(x). Elle est ainsi dénie à l'itération t, comme étant n'importe quel vecteur d(t) tel que le produit scalaire entre ce vecteur et la dérivée du critère à minimiser J(x(t)) est négatif :

d(t)†∇J(x(t)) < 0. (7.10)

Cette condition est obtenue en utilisant le théorème de Taylor d'ordre 1 ([73], page 22). En eet, soit x(t−1) la solution de J(x) à l'itération t − 1 et x(t) la solution à l'itération t. Le développement de Taylor d'ordre 1 appliqué à x(t) s'écrit :

J(x(t)) = J(x(t−1)) + ∇J(x)(t)†(x(t)− x(t−1)) + O(x(t)− x(t−1))2. (7.11) L'objectif étant d'obtenir une direction de descente qui garantit la diminution de la valeur du critère d'une itération à l'autre, on souhaite donc que l'inégalité suivante soit satisfaite :

J(x(t)) − J(x(t−1)) < 0 ce qui se traduit par la condition :

∇J(x(t))(x(t)− x(t−1)) < 0.

Ce développement de Taylor est valable si la variation de (x(t) − x(t−1)) est susamment faible. Elle peut se mettre ainsi sous la forme suivante :

x(t)− x(t−1)= λd(t)

où λ ≥ 0 est un pas faible de minimisation à une dimension et d est la direction de descente. La combinaison de ces deux dernières équations permet d'obtenir la condition de descente donnée à l'équation (7.10).

b) Choix de la direction de descente

Dans la plupart des algorithmes itératifs d'ordre 1 et 2, la mise à jour de la solution s'écrit sous la forme suivante ([73], page 25) :

x(t+1)= x(t)− λ(t)H(t)∇J(x(t)) .

où H(t) est une matrice réelle symétrique dénie positive. La direction de descente s'écrit alors : d(t) = −H(t)∇J(x(t)) .

La condition de descente donnée à l'équation (7.10) devient :

∇J(x(t))H(t)∇J(x) > 0 . (7.12)

Cette condition est toujours vraie tant que la matrice H(t) est dénie positive. Il nous reste maintenant de calculer la direction de descente pour chaque algorithme.

Algorithme du gradient

La direction de descente la plus simple est celle de la méthode du gradient où dans ce cas H(t) n'est autre que la matrice identité :

d(t) = −∇J(x(t)).

Ce choix peut cependant s'avérer inecace notamment lorsque le critère contient une vallée très resserrée et courbée qui inclut le minimum. Dans ce cas, l'optimisation arrive au fond de la vallée vers le minimum en utilisant de très petits pas et se révèle donc très lente ([72], page 41) avec une vitesse de convergence linéaire [73] [74].

Algorithme du gradient conjugué

Diverses corrections, de la direction de descente, à l'algorithme du gradient ont été proposées dans la littérature dont la plus importante est celle de l'algorithme du gradient conjugué. Une motivation de cet algorithme est qu'il converge plus rapidement que la méthode de gradient et qu'il est moins exigeant en termes de calcul que la méthode de Newton présentée plus loin ([73], page 130). La direction de descente est ainsi dénie par :

d(t) = −∇J(x(t)) + µ(t)d(t−1),

où µ(t) est un coecient réel positif calculé à chaque itération. Une propriété du gradient conju- gué est que le gradient ∇J(x(t)) est orthogonal aux directions de descentes précédentes ([73], page 136). Diérentes méthodes existent pour calculer le coecient µ comme la méthode du Polak-Ribière que nous utilisons ici :

µ(t)= ∇J(x (t))(∇J(x(t)) − ∇J(x(t−1))) ° ° °∇J(x(t−1))°°°2 . (7.13)

D'après ([73], page 139), cette méthode est la plus robuste surtout si le critère à minimiser est non quadratique (ce qui est notre cas) où la perte d'orthogonalité entre le gradient et les directions de descentes précédentes se fait progressivement au l des itérations. par conséquent, la solution restera bloquée autour du même point. Une solution est de rafraichir l'algorithme, par une itération de la descente du gradient, chaque p itérations ou à chaque fois que deux gradients consécutifs sont loin d'être orthogonaux, c.à.d. pour :

¯

¯∇J(x(t))t∇J(x(t−1))¯¯ °

°∇J(x(t))°°2 ≥ ν (7.14)

où p représente le nombre d'inconnus et ν est une constante positive inférieure à 1. La valeur typique de ν est 0.1 ([72], page 125). Nous rappelons que deux directions de descentes consécutives sont orthogonales si d(t)†

d(t−1)= 0. Algorithme de Newton

Pour la méthode de Newton, la matrice H(t) est dénie comme l'inverse de la matrice hes- sienne ou dérivée d'ordre 2 de J(x(t)) :

Pour vérier la condition de descente (7.12), cette matrice doit être toujours réelle symétrique et dénie positive. La direction de descente s'écrit donc :

d(t)= −¡2J(x(t)−1∇J(x(t)),

L'idée de la méthode de Newton est de minimiser le critère J(x(t))autour d'une solution x(t). Le développement de Taylor d'ordre 2 ([73], page 26) de J(x(t)) s'écrit :

J(x(t)) = J(x(t−1)) + ∇J(x)(t)†

(x(t)− x(t−1))

+ 12(x(t)− x(t−1))2J(x(t))(x(t)− x(t−1)) + O¡x(t)− x(t−1)¢3.

(7.15)

Le minimum du critère J(x(t)) est obtenu en annulant sa dérivée par rapport à x(t) où on obtient :

∇J(x(t)) + ∇2J(x(t))(x(t)− x(t−1)) = 0 qui peut s'écrit aussi de la manière suivante :

x(t)= x(t−1)−¡2J(x(t)−1∇J(x(t)) .

Cette équation représente la forme pure de Newton. En pratique, un pas faible de minimisa- tion à une dimension λ est ajouté à la solution pour assurer que la variation de (x(t)− x(t−1)) est faible. L'équation précédente devient :

x(t) = x(t−1)+ λ(t)d(t)

où d(t) est la direction de descente dans le cas de Newton qui est égale à : d(t)2J(x(t)−1∇J(x(t)) .

Pour vérier la condition de descente (7.12), il reste à imposer à la matrice hessienne d'être dénie positive à chaque itération. Comme le critère J(x) est non convexe, alors ∇2J(x) n'est pas forcément toujours dénie positive et une correction de cette matrice est parfois nécessaire.

Plusieurs corrections de la matrice hessienne ont déjà été présentées ([72], page 48). La correction la plus simple est d'ajouter à ∇2J(x)un multiple de la matrice identité, c.à.d. trouver un scalaire ² tel que ∇2J(x) + ²I est susamment dénie positive. En pratique, cette correction peut se faire par le calcul de la valeur propre minimale de ∇2J(x) à chaque itération. Si cette valeur est négative, alors un scalaire ² juste supérieur à la valeur absolue de la valeur propre minimale est ajouté à la diagonale de ∇2J(x). Cependant, il n'est pas toujours possible de calculer la valeur propre minimale de ∇2J(x). D'autres solutions pratiques existent pour calculer ². Une solution est de choisir ² assez faible et d'essayer de faire la décomposition de Cholesky de la matrice ∇2J(x) + ²I. Si cette décomposition termine par un succès, alors la matrice hessienne corrigée est dénie positive. Sinon, ² est augmentée et la décomposition de Cholesky est répétée jusqu'à l'obtention d'une matrice hessienne dénie positive ([72], page 51).

c) Minimisation à une dimension

Les algorithmes itératifs choisis pour minimiser le critère J(x) nécessitent le calcul à chaque itération d'un pas de minimisation à une dimension de ce critère (Line Search Method) [72]. Ce pas contribue à la mise à jour de la solution et est calculé de manière à obliger le critère à diminuer d'une itération à l'autre. L'équation de mise à jour de la solution x est donnée par :

x(t+1)= x(t)+ λmind(t)

où λmin est un pas positif calculer en minimisant un critère à 1 inconnu donné par :

λmin= arg min

λ J(x + λd) (7.16)

Dans un cadre général, il peut être très coûteux de calculer λmin en minimisant (7.16) car

ceci nécessite un calcul à plusieurs reprises du critère pour trouver nalement un minimum éven- tuellement local de (7.16). par conséquent, des méthodes approchées sont utilisées pour trouver un pas λ non global mais qui assure la diminution du critère J(x) d'une itération à l'autre. Parmi ces méthodes, celles basées sur les conditions de Wolfe, les conditions de Goldstein qui utilise la valeur du critère aussi que du gradient pour déterminer λ ([72], page 56).

Dans notre cas, l'avantage est que le calcul de λminest explicite car la minimisation de (7.16)

se réduit à la résolution d'un polynôme d'ordre 4 en fonction de λ qui peut s'écrit :

J(λ) = J0+ J1λ + J2λ2+ J3λ3+ J4λ4,

où J0, J1, J2,J3 et J4 sont des réels à déterminer. Ainsi, λmin est calculé explicitement sans

évaluation du critère avec un temps de calcul assez rapide. Dans un premier temps, nous calculons la dérivée du polynôme J(λ) qui est à son tour un polynôme d'ordre 3. Ensuite, nous calculons les racines de cette dérivée. Finalement, parmi les racines positives, λmin sera celle qui correspond

à J(λ) le plus petit.

d) Initialisation

L'initialisation de l'algorithme d'optimisation se fait à partir des diagrammes d'antennes mesurés au sol (ou à l'étape d'étalonnage précédente), noté Fo. Ainsi, d'après l'équation (7.3),

le point de départ de l'algorithme correspond à la solution xo donnée par :

b

xo = (BWB)−1(BW)Fo (7.17)

L'importance de cette initialisation est que si les diagrammes d'antennes en orbite varient légèrement par rapport à ceux mesurés au sol ou à l'étape d'étalonnage précédente (ce qui est at- tendu), alors cette initialisation n'est pas loin de la solution globale et évite ainsi à l'optimisation de tomber dans des minima locaux.

e) Test d'arrêt

Pour le test d'arrêt, nous proposons d'utiliser une condition sur ces trois termes :

La diérence entre la solution de deux itérations consécutives : kδxk2 = kx(t)− x(t−1)k2 < Ex

La diérence entre le critère de deux itérations consécutives : kδJk2 = kJ(t)− J(t−1)k2< EJ

La norme du gradient à chaque itération :

k∇Jk2< E∇J

où EC, EJ et E∇J sont des seuils faibles à préciser selon la diculté du problème.

Documents relatifs