• Aucun résultat trouvé

Partie I : Notions fondamentales de modélisation

I.3 Optimisation des paramètres d’un modèle

I.3.2 Les principaux algorithmes d’optimisation

La majorité des problèmes numériques posés ici sont des problèmes d’optimisation : que ce soit pour les tests d’identifiabilité et de discernabilité, pour l’identification de paramètres de modèle, ou encore pour la planification d’expériences. Ainsi l’utilisation d’algorithmes d’optimisation (aussi nommés « optimiseurs ») est fondamentale.

Les paragraphes suivants présentent les principales familles d’algorithmes d’optimisation ainsi que leurs propriétés. Ils vont permettre notamment de justifier le choix des algorithmes cités précédemment.

I.3.2.1 Introduction (généralités, robustesse, efficacité)

Avant de traiter des différents types d’optimiseurs, il convient de définir quelques notions et propriétés qui caractérisent ces derniers.

a. Optima locaux et globaux

L’optimum global est la valeur du critère d’optimisation la plus faible ou la plus élevée, respectivement dans le cas d’un minimum ou d’un maximum, dans l’ensemble de l’espace des paramètres d’optimisation. L’objectif de l’optimisation est bien sûr d’atteindre cette valeur. Cependant, il peut exister des optima locaux, qui sont définis comme des valeurs optimales du critère d’optimisation dans un voisinage restreint autour de cet optimum. Si l’on prend l’exemple de la fonction mono-paramétrique présentée sur la Figure 4, il y a un minimum local et un maximum local, représentés par les flèches vertes en pointillés, et un maximum et un minimum global, représentés par les flèches pleines rouges.

Figure 4 – Illustration de la différence entre optimum local et optimum global

Certains algorithmes ne peuvent différencier les optima locaux et globaux. Il en résulte que les résultats de l’optimisation peuvent être erronés, puisque l’optimiseur peut avoir convergé vers un optimum local.

b. Initialisation

Les algorithmes d’optimisation fonctionnent tous suivant un processus itératif qui nécessitent une ou plusieurs initialisations de la valeur des paramètres d’optimisation. C’est ensuite à partir de cette/ces valeurs que démarre le processus de recherche de la solution optimale. Le choix de l’initialisation des paramètres peut être décisif du fait des problèmes posés par les optima locaux. En effet, une initialisation proche d’un optimum local peut éventuellement mener un algorithme d’optimisation à converger vers cet optimum plutôt que vers l’optimum global. Ainsi, différentes initialisations peuvent conduire l’optimiseur à trouver différentes solutions, qui ne seront pas nécessairement la solution globale.

c. Robustesse

La propriété de robustesse d’un algorithme d’optimisation est directement liée aux deux notions précédentes. En effet, un algorithme sera dit robuste si sa solution n’est pas sensible à la valeur initiale des paramètres d’optimisation, et donc converge vers l’optimum global. A l’inverse, un algorithme dont la solution est très dépendante de la valeur initiale des paramètres sera dit peu robuste.

Même si les recherches sont très avancées en optimisation paramétrique, il n’existe aucun algorithme parfaitement robuste, il faut donc toujours être conscient de ce type de problème. Il sera cependant montré par la suite, que certaines familles d’algorithmes sont plus ou moins sensibles, d’où l’importance du choix de l’algorithme.

d. Efficacité ou complexité

En fonction de sa composition, du nombre de calculs par itération, ou encore du nombre d’itérations nécessaire à sa convergence, un algorithme nécessite une certaine quantité de « ressources » (en termes de temps de calcul, ou d’espace de stockage). Un algorithme sera dit complexe s’il nécessite une importante quantité de ressources et efficace s’il en nécessite peu. Plus concrètement, un algorithme d’optimisation efficace sera plus rapide à trouver une solution qu’un algorithme complexe.

De manière générale, la complexité va souvent de pair avec la robustesse, et inversement, un algorithme efficace est souvent peu robuste. La sélection de l’algorithme d’optimisation le plus adapté résulte donc d’un compromis entre robustesse et efficacité, en fonction de la complexité du problème d’optimisation.

Par exemple, l’optimisation d’une fonction mono-paramétrique, sans minimum local, est un problème très simple. Il sera donc d’autant plus intéressant d’utiliser un algorithme très efficace, que sa robustesse importera peu.

A l’inverse, un problème d’optimisation très complexe, du fait d’un nombre très important de paramètres, par exemple, peut présenter un grand nombre d’optima locaux. Un algorithme très robuste sera nécessaire ; même s’il est peu efficace, il permettra d’assurer la convergence vers la solution globale.

Une liste des optimiseurs les plus courants est donnée dans le paragraphe suivant. Pour une étude plus approfondie, le lecteur devra se référer à des ouvrages de référence telles que Walter and Pronzato (1994) et Dréo and Siarry (2003).

I.3.2.2 Le choix des optimiseurs

Différentes méthodes numériques, parmi les plus répandues, sont proposées dans cette partie. Une distinction entre les optimiseurs locaux, souvent très efficaces mais peu robustes, et les optimiseurs globaux, robustes mais lents à converger, est faite. Il existe aussi des algorithmes mixtes qui proposent de coupler les deux familles d’optimiseurs.

a. Optimiseurs locaux

Parmi les optimiseurs locaux, peuvent être cités :

 Méthode du gradient Réduit

 Méthodes de Quasi-Newton et dérivés

 Méthode de Broyden-Fletcher-Goldfarb-Shanno (BFGS)  Méthode de Levenberg et Marquardt

Elles font partie de la famille des algorithmes de descente. Les valeurs des dérivés premières (gradient, Jacobien) ou seconde (Hessien) sont calculées ou approximées pour déterminer la direction de recherche de l’algorithme. Seules des méthodes adaptées aux problèmes non linéaires sont données.

Les méthodes de Levenberg-Marquardt et de BFGS sont surement les plus utilisées, la première est une combinaison des algorithmes du gradient et de Gauss-Newton ; bien adaptée à l’optimisation des fonctions des moindres carrées, elle est plus stable que les méthodes dont elle est issue (A. T. V Elzhov et al., 2015; More, 1978; Ranganathan, 2004).

La méthode BFGS est une dérivée de la méthode de quasi-Newton, pour laquelle le Hessien n’est pas calculé, mais substitué par une approximation de son inverse. Ainsi la méthode demande un nombre de calculs bien plus réduit, tout en gardant une efficacité certaine (Byrd et al., 1995; Fletcher, 2013).

b. Optimiseurs globaux ou stochastiques Parmi les optimiseurs globaux, peuvent être cités :

 Les algorithmes génétiques et évolutionnaires  L’algorithme du recuit simulé

Les algorithmes génétiques et évolutionnaires, contrairement aux méthodes locales présentées ci- dessus, sont des méthodes stochastiques, dont la recherche ne se base pas sur la fonction à optimiser mais sur des processus aléatoires. Comme leur nom l’indique, ce type d’algorithme s’inspire de l’évolution biologique d’une population d’individus. Chaque individu est caractérisé par un génome (séquence de chromosomes ou allèles). La population évolue par sélection (seulement les individus les mieux adaptés survivent), par croisement (générant des enfants comportant des séquences de chromosomes de leur parents) et par mutation d’une partie de leur génome. Ce type d’algorithme est très adapté à l’optimisation d’une fonction présentant plusieurs minima (ou maxima). Le coût de calcul est cependant très important car tous les individus de chaque génération doivent être évalués, faisant autant de fois appel au calcul de la fonction à optimiser (Leardi, 2007; Scrucca, 2013). Le vocabulaire utilisé est souvent spécifique pour ces algorithmes, où des terminologies de biologie évolutive et d’optimisation numérique s’entremêlent. Les équivalences de termes sont données dans le Tableau 1.

Tableau 1 – Vocabulaire des algorithmes évolutionnaires et génétiques

Optimisation évolutionnaire Optimisation classique

Individu Paramètre (vecteur)

Population Ensemble des paramètres évalués au

cours d’une génération

Génération Itération de la boucle principale de l’algorithme

Génome Eléments d’un paramètre vectoriel

Fonction de performance ou d’adaptation

Le squelette d’un algorithme évolutionnaire est le suivant :

 construction et évaluation d'une population initiale

Puis, de manière intégrative jusqu'à atteindre un critère d'arrêt :

 sélection d'une partie de la population ;  reproduction des individus sélectionnés;  mutation de la descendance ;

 remplacement de la population initiale par la nouvelle génération ;  élitisme : conservation des meilleurs individus ;

 évaluation du degré d'adaptation de chaque individu.

Les algorithmes génétiques et évolutionnaires sont initialement deux familles distinctes d’algorithmes. Ils ont été développés simultanément au cours des années 1960. Le premier a été conçu à l’origine pour des paramètres d’optimisation à valeurs entières (chaines binaires), et le second pour des nombres à valeur réelle. Les deux familles ont par la suite convergé et tendent maintenant à se confondre, les algorithmes génétiques ayant été adaptés aux nombre réels.

Les méthodes évolutionnaires ont trouvé de nombreuses applications en chimie (Hibbert, 1993a; Leardi, 2007) et plus particulièrement en cinétique (Balland et al., 2000; Hibbert, 1993b; Moros et al., 1996; Park et al., 1997; Pontikakis and Stamatelos, 2004; Wolf and Moros, 1997).

Parmi les autres optimiseurs globaux, on citera aussi brièvement le recuit simulé dont il existe quelques applications en cinétique chimique (Eftaxias et al., 2002, 2006), mais son utilisation est bien moins répandue. Il s’agit aussi d’une procédure stochastique, dont le principe s’inspire du phénomène physique du recuit des métaux en science des matériaux. Pour plus de détails, se référer à Dréo and Siarry (2003) en complément.

c. Optimiseurs hybrides

Les algorithmes d’optimisation locale ou globale peuvent se coupler ou inspirer la formation de nouveaux algorithmes hybrides. Deux méthodes sont distinguées : la première alterne l’utilisation des algorithmes de recherche globale et locale, la seconde imbrique un algorithme à recherche local dans une méthode globale.

 Pour la première famille, l’utilisation d’une méthode globale pendant un nombre limité d’itérations permet dans un premier temps de cibler une population proche de l’optimum global. Ensuite, une méthode locale initialisée sur la population (ou les meilleurs individus) proposée par la méthode globale permet de converger très rapidement vers l’optimum. Plusieurs travaux en cinétique chimique se sont intéressés à ces méthodes (Balland et al., 2000; Hibbert, 1993b; Wang and Kim, 2001).

 La seconde méthode propose d’inclure à l’intérieur même de l’algorithme de recherche globale, des phases de recherche locale grâce à une méthode appropriée, en sélectionnant par exemple une partie de chaque génération à laquelle on fera subir la méthode locale. Les solutions trouvées sont ensuite ajoutées à la population de la génération suivante. Pour ce type de méthode, plusieurs travaux en cinétique chimique ont aussi été publiés (Hibbert, 1993b; Katare et al., 2004; Park and Froment, 1998; Rodriguez-Fernandez et al., 2006)