Salome HOME
Documentation improvements and post analysis
[modules/adao.git] / doc / fr / theory.rst
1 ..
2    Copyright (C) 2008-2021 EDF R&D
3
4    This file is part of SALOME ADAO module.
5
6    This library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the License, or (at your option) any later version.
10
11    This library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with this library; if not, write to the Free Software
18    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19
20    See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
22    Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
23
24 .. _section_theory:
25
26 =================================================================================
27 **[DocT]** Une brève introduction à l'Assimilation de Données et à l'Optimisation
28 =================================================================================
29
30 .. index:: single: Data Assimilation
31 .. index:: single: assimilation de données
32 .. index:: single: état vrai
33 .. index:: single: observation
34 .. index:: single: a priori
35
36 **L'assimilation de données** est un cadre général bien établi pour le calcul de
37 l'estimation optimale de l'état réel d'un système, au cours du temps si
38 nécessaire. Il utilise les valeurs obtenues en combinant des observations et des
39 modèles *a priori*, incluant de plus des informations sur leurs erreurs.
40
41 En d'autres termes, l'assimilation de données est un moyen de fusionner les
42 données mesurées d'un système, qui sont les observations, avec des
43 connaissances physique et mathématique *a priori* du système, intégrées dans
44 les modèles numériques. L'objectif est d'obtenir la meilleure estimation
45 possible de l'état réel du système et de ses propriétés stochastiques. On note
46 que cet état réel (ou "*état vrai*") ne peut être habituellement atteint, mais
47 peut seulement être estimé. De plus, malgré le fait que les informations
48 utilisées sont stochastiques par nature, l'assimilation de données fournit des
49 techniques déterministes afin de réaliser l'estimation de manière très
50 efficace.
51
52 Comme l'assimilation de données cherche l'estimation la **meilleure possible**,
53 la démarche technique sous-jacente intègre toujours de l'optimisation afin de
54 trouver cette estimation : des méthodes d'optimisation choisies sont toujours
55 intégrées dans les algorithmes d'assimilation de données. Par ailleurs, les
56 méthodes d'optimisation peuvent être vues dans ADAO comme un moyen d'étendre
57 les applications d'assimilation de données. Elles seront présentées de cette
58 façon dans la section pour `Approfondir l'estimation d'état par des méthodes
59 d'optimisation`_, mais elles sont beaucoup plus générales et peuvent être
60 utilisées sans les concepts d'assimilation de données.
61
62 Deux types principaux d'applications existent en assimilation de données, qui
63 sont couverts par le même formalisme : la **reconstruction de champs** et
64 **l'identification de paramètres**. On parle aussi respectivement
65 **d'estimation d'états** et **d'estimation de paramètres**. Avant d'introduire
66 la `Description simple du cadre méthodologique de l'assimilation de données`_
67 dans une prochaine section, on décrit brièvement ces deux types d'applications.
68 A la fin de ce chapitre, quelques références permettent d'`Approfondir le cadre
69 méthodologique de l'assimilation de données`_ et d'`Approfondir l'estimation
70 d'état par des méthodes d'optimisation`_.
71
72 Reconstruction de champs ou interpolation de données
73 ----------------------------------------------------
74
75 .. index:: single: reconstruction de champs
76 .. index:: single: interpolation de données
77 .. index:: single: interpolation de champs
78 .. index:: single: estimation d'état
79
80 La **reconstruction (ou l'interpolation) de champs** consiste à trouver, à
81 partir d'un nombre restreint de mesures réelles, le (ou les) champ(s)
82 physique(s) qui est (sont) le(s) plus *cohérent(s)* avec ces mesures.
83
84 La *cohérence* est à comprendre en termes d'interpolation, c'est-à-dire que le
85 champ que l'on cherche à reconstruire, en utilisant de l'assimilation de
86 données sur les mesures, doit s'adapter au mieux aux mesures, tout en restant
87 contraint par la simulation globale du champ. Le champ calculé est donc une
88 estimation *a priori* du champ que l'on cherche à identifier. On parle aussi
89 **d'estimation d'état** dans ce cas.
90
91 Si le système évolue dans le temps, la reconstruction du champ dans son
92 ensemble doit être établie à chaque pas de temps, en tenant compte des
93 informations sur une fenêtre temporelle. Le processus d'interpolation est plus
94 compliqué dans ce cas car il est temporel, et plus seulement en termes de
95 valeurs instantanées du champ.
96
97 Un exemple simple de reconstruction de champs provient de la météorologie, dans
98 laquelle on recherche les valeurs de variables comme la température ou la
99 pression en tout point du domaine spatial. On dispose de mesures instantanées de
100 ces quantités en certains points, mais aussi d'un historique de ces mesures. De
101 plus, ces variables sont contraintes par les équations d'évolution de
102 l'atmosphère, qui indiquent par exemple que la pression en un point ne peut pas
103 prendre une valeur quelconque indépendamment de la valeur au même point à un
104 temps précédent. On doit donc faire la reconstruction d'un champ en tout point
105 de l'espace, de manière "cohérente" avec les équations d'évolution et avec les
106 mesures aux précédents pas de temps.
107
108 Identification de paramètres, ajustement de modèles, calage
109 -----------------------------------------------------------
110
111 .. index:: single: identification de paramètres
112 .. index:: single: ajustement de paramètres
113 .. index:: single: ajustement de modèles
114 .. index:: single: recalage
115 .. index:: single: calage
116 .. index:: single: ébauche
117 .. index:: single: régularisation
118 .. index:: single: problèmes inverses
119 .. index:: single: estimation de paramètres
120
121 **L'identification (ou l'ajustement) de paramètres** par assimilation de
122 données est une forme de calage d'état qui utilise simultanément les mesures
123 physiques et une estimation *a priori* des paramètres (appelée "*l'ébauche*")
124 d'état que l'on cherche à identifier, ainsi qu'une caractérisation de leurs
125 erreurs. De ce point de vue, cette démarche utilise toutes les informations
126 disponibles sur le système physique, avec des hypothèses restrictives mais
127 réalistes sur les erreurs, pour trouver "*l'estimation optimale*" de l'état
128 vrai. On peut noter, en termes d'optimisation, que l'ébauche réalise la
129 "*régularisation*", au sens mathématique de Tikhonov [Tikhonov77]_
130 [WikipediaTI]_, du problème principal d'identification de paramètres. On peut
131 aussi désigner cette démarche comme une résolution de type "*problème
132 inverse*".
133
134 En pratique, les deux écarts (ou incréments) observés "*calculs-mesures*" et
135 "*calculs-ébauche*" sont combinés pour construire la correction de calage des
136 paramètres ou des conditions initiales. L'ajout de ces deux incréments requiert
137 une pondération relative, qui est choisie pour refléter la confiance que l'on
138 donne à chaque information utilisée. Cette confiance est représentée par la
139 covariance des erreurs sur l'ébauche et sur les observations. Ainsi l'aspect
140 stochastique des informations est essentiel pour construire une fonction
141 d'erreur pour le calage.
142
143 Un exemple simple d'identification de paramètres provient de tout type de
144 simulation physique impliquant un modèle paramétré. Par exemple, une simulation
145 de mécanique statique d'une poutre contrainte par des forces est décrite par les
146 paramètres de la poutre, comme un coefficient de Young, ou par l'intensité des
147 forces appliquées. Le problème d'estimation de paramètres consiste à chercher
148 par exemple la bonne valeur du coefficient de Young de telle manière à ce que la
149 simulation de la poutre corresponde aux mesures, en y incluant la connaissance
150 des erreurs.
151
152 Toutes les grandeurs représentant la description de la physique dans un modèle
153 sont susceptibles d'être calibrées dans une démarche d'assimilation de données,
154 que ce soient des paramètres de modèles, des conditions initiales ou des
155 conditions aux limites. Leur prise en compte simultanée est largement facilitée
156 par la démarche d'assimilation de données, permettant de traiter objectivement
157 un ensemble hétérogène d'informations à disposition.
158
159 Estimation conjointe d'états et de paramètres
160 ---------------------------------------------
161
162 .. index:: single: estimation conjointe d'états et de paramètres
163
164 Il parfois nécessaire, en considérant les deux types d'applications
165 précédentes, d'avoir besoin d'estimer en même temps des états (champs) et des
166 paramètres caractérisant un phénomène physique. On parle alors **d'estimation
167 conjointe d'états et de paramètres**.
168
169 Sans rentrer ici dans les méthodes avancées pour résoudre ce problème, on peut
170 mentionner la démarche conceptuellement très simple consistant à considérer le
171 vecteur des états à interpoler comme *augmenté* par le vecteur des paramètres à
172 caler. On note que l'on est globalement en *estimation d'état* ou
173 *reconstruction de champs*, et que dans le cas temporel, l'évolution des
174 paramètres à estimer est simplement l'identité. Les algorithmes d'assimilation
175 ou d'optimisation peuvent ensuite être appliqués au vecteur augmenté. Valable
176 dans le cas de non-linéarités modérées dans la simulation, cette méthode simple
177 étend l'espace d'optimisation, et conduit donc à des problèmes plus gros, mais
178 il est souvent possible de réduire la représentation pour revenir à des cas
179 numériquement calculables. Sans exhaustivité, l'optimisation à variables
180 séparées, le filtrage de rang réduit, ou le traitement spécifique des matrices
181 de covariances, sont des techniques courantes pour éviter ce problème de
182 dimension.
183
184 Pour aller plus loin, on se référera aux méthodes mathématiques d'optimisation
185 et d'augmentation développées dans de nombreux ouvrages ou articles
186 spécialisés, trouvant leur origine par exemple dans [Lions68]_, [Jazwinski70]_
187 ou [Dautray85]_. En particulier dans le cas de non-linéarités plus marquées
188 lors de la simulation numérique des états, il convient de traiter de manière
189 plus complète mais aussi plus complexe le problème d'estimation conjointe
190 d'états et de paramètres.
191
192 Description simple du cadre méthodologique de l'assimilation de données
193 -----------------------------------------------------------------------
194
195 .. index:: single: ébauche
196 .. index:: single: covariances d'erreurs d'ébauche
197 .. index:: single: covariances d'erreurs d'observation
198 .. index:: single: covariances
199 .. index:: single: 3DVAR
200 .. index:: single: Blue
201
202 On peut décrire ces démarches de manière simple. Par défaut, toutes les
203 variables sont des vecteurs, puisqu'il y a plusieurs paramètres à ajuster, ou
204 un champ discrétisé à reconstruire.
205
206 Selon les notations standards en assimilation de données, on note
207 :math:`\mathbf{x}^a` les paramètres optimaux qui doivent être déterminés par
208 calage, :math:`\mathbf{y}^o` les observations (ou les mesures expérimentales)
209 auxquelles on doit comparer les sorties de simulation, :math:`\mathbf{x}^b`
210 l'ébauche (valeurs *a priori*, ou valeurs de régularisation) des paramètres
211 cherchés, :math:`\mathbf{x}^t` les paramètres inconnus idéaux qui donneraient
212 exactement les observations (en supposant que toutes les erreurs soient nulles
213 et que le modèle soit exact) en sortie.
214
215 Dans le cas le plus simple, qui est statique, les étapes de simulation et
216 d'observation peuvent être combinées en un unique opérateur d'observation noté
217 :math:`\mathcal{H}` (linéaire ou non-linéaire). Il transforme formellement les
218 paramètres :math:`\mathbf{x}` en entrée en résultats :math:`\mathbf{y}`, qui
219 peuvent être directement comparés aux observations :math:`\mathbf{y}^o` :
220
221 .. math:: \mathbf{y} = \mathcal{H}(\mathbf{x})
222
223 De plus, on utilise l'opérateur linéarisé (ou tangent) :math:`\mathbf{H}` pour
224 représenter l'effet de l'opérateur complet :math:`\mathcal{H}` autour d'un
225 point de linéarisation (et on omettra usuellement ensuite de mentionner
226 :math:`\mathcal{H}`, même si l'on peut le conserver, pour ne mentionner que
227 :math:`\mathbf{H}`). En réalité, on a déjà indiqué que la nature stochastique
228 des variables est essentielle, provenant du fait que le modèle, l'ébauche et
229 les observations sont tous incorrects. On introduit donc des erreurs
230 d'observations additives, sous la forme d'un vecteur aléatoire
231 :math:`\mathbf{\epsilon}^o` tel que :
232
233 .. math:: \mathbf{y}^o = \mathbf{H} \mathbf{x}^t + \mathbf{\epsilon}^o
234
235 Les erreurs représentées ici ne sont pas uniquement celles des observations, ce
236 sont aussi celles de la simulation. On peut toujours considérer que ces erreurs
237 sont de moyenne nulle. En notant :math:`E[.]` l'espérance mathématique
238 classique, on peut alors définir une matrice :math:`\mathbf{R}` des covariances
239 d'erreurs d'observation par l'expression :
240
241 .. math:: \mathbf{R} = E[\mathbf{\epsilon}^o.{\mathbf{\epsilon}^o}^T]
242
243 L'ébauche peut être écrite formellement comme une fonction de la valeur vraie,
244 en introduisant le vecteur d'erreurs :math:`\mathbf{\epsilon}^b` tel que :
245
246 .. math:: \mathbf{x}^b = \mathbf{x}^t + \mathbf{\epsilon}^b
247
248 Les erreurs d'ébauche :math:`\mathbf{\epsilon}^b` sont aussi supposées de
249 moyenne nulle, de la même manière que pour les observations. On définit la
250 matrice :math:`\mathbf{B}` des covariances d'erreurs d'ébauche par :
251
252 .. math:: \mathbf{B} = E[\mathbf{\epsilon}^b.{\mathbf{\epsilon}^b}^T]
253
254 L'estimation optimale des paramètres vrais :math:`\mathbf{x}^t`, étant donné
255 l'ébauche :math:`\mathbf{x}^b` et les observations :math:`\mathbf{y}^o`, est
256 ainsi "l'*analyse*" :math:`\mathbf{x}^a` et provient de la minimisation d'une
257 fonction d'erreur, explicite en assimilation variationnelle, ou d'une correction
258 de filtrage en assimilation par filtrage.
259
260 En **assimilation variationnelle**, dans un cas statique, on cherche
261 classiquement à minimiser la fonction :math:`J` suivante :
262
263 .. math:: J(\mathbf{x})=\frac{1}{2}(\mathbf{x}-\mathbf{x}^b)^T.\mathbf{B}^{-1}.(\mathbf{x}-\mathbf{x}^b)+\frac{1}{2}(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x})
264
265 :math:`J` est classiquement désignée comme la fonctionnelle "*3D-Var*" en
266 assimilation de données (voir par exemple [Talagrand97]_) ou comme la
267 fonctionnelle de régularisation de Tikhonov généralisée en optimisation (voir
268 par exemple [WikipediaTI]_). Comme les matrices de covariance :math:`\mathbf{B}`
269 et :math:`\mathbf{R}` sont proportionnelles aux variances d'erreurs, leur
270 présence dans les deux termes de la fonctionnelle :math:`J` permet effectivement
271 de pondérer les termes d'écarts par la confiance dans les erreurs d'ébauche ou
272 d'observations. Le vecteur :math:`\mathbf{x}` des paramètres réalisant le
273 minimum de cette fonction constitue ainsi l'analyse :math:`\mathbf{x}^a`. C'est
274 à ce niveau que l'on doit utiliser toute la panoplie des méthodes de
275 minimisation de fonctions connues par ailleurs en optimisation (voir aussi la
276 section `Approfondir l'estimation d'état par des méthodes d'optimisation`_).
277 Selon la taille du vecteur :math:`\mathbf{x}` des paramètres à identifier, et la
278 disponibilité du gradient ou de la hessienne de :math:`J`, il est judicieux
279 d'adapter la méthode d'optimisation choisie (gradient, Newton, quasi-Newton...).
280
281 En **assimilation par filtrage**, dans ce cas simple usuellement dénommé
282 "*BLUE*" (pour "*Best Linear Unbiased Estimator*"), l'analyse
283 :math:`\mathbf{x}^a` est donnée comme une correction de l'ébauche
284 :math:`\mathbf{x}^b` par un terme proportionnel à la différence entre les
285 observations :math:`\mathbf{y}^o` et les calculs :math:`\mathbf{H}\mathbf{x}^b` :
286
287 .. math:: \mathbf{x}^a = \mathbf{x}^b + \mathbf{K}(\mathbf{y}^o - \mathbf{H}\mathbf{x}^b)
288
289 où :math:`\mathbf{K}` est la matrice de gain de Kalman, qui s'exprime à l'aide
290 des matrices de covariance sous la forme suivante :
291
292 .. math:: \mathbf{K} = \mathbf{B}\mathbf{H}^T(\mathbf{H}\mathbf{B}\mathbf{H}^T+\mathbf{R})^{-1}
293
294 L'avantage du filtrage est le calcul explicite du gain, pour produire ensuite la
295 matrice *a posteriori* de covariance d'analyse.
296
297 Dans ce cas statique simple, on peut montrer, sous une hypothèse de
298 distributions gaussiennes d'erreurs (très peu restrictive en pratique) et de
299 linéarité de :math:`\mathcal{H}`, que les deux approches *variationnelle* et
300 *de filtrage* donnent la même solution.
301
302 On indique que ces méthodes de "*3D-Var*" et de "*BLUE*" peuvent être étendues
303 à des problèmes dynamiques ou temporels, sous les noms respectifs de "*4D-Var*"
304 et de "*Filtre de Kalman (KF)*" et leurs dérivés. Elles doivent alors prendre
305 en compte un opérateur d'évolution pour établir aux bons pas de temps une
306 analyse de l'écart entre les observations et les simulations et pour avoir, à
307 chaque instant, la propagation de l'ébauche à travers le modèle d'évolution. De
308 la même manière, ces méthodes peuvent aussi être utilisées dans le cas
309 d'opérateurs d'observation ou d'évolution non linéaires. Un grand nombre de
310 variantes ont été développées pour accroître la qualité numérique des méthodes
311 ou pour prendre en compte des contraintes informatiques comme la taille ou la
312 durée des calculs.
313
314 Une vue schématique des approches d'Assimilation de Données et d'Optimisation
315 -----------------------------------------------------------------------------
316
317 Pour aider le lecteur à se faire un idée des approches utilisables avec ADAO en
318 Assimilation de Données et en Optimisation, on propose ici un schéma simplifié
319 décrivant une classification arbitraire des méthodes. Il est partiellement et
320 librement inspiré de [Asch16]_ (Figure 1.5).
321
322   .. _meth_steps_in_study:
323   .. image:: images/meth_ad_and_opt.png
324     :align: center
325     :width: 75%
326   .. centered::
327     **Une classification simplifiée de méthodes utilisables avec ADAO en Assimilation de Données et en Optimisation (les acronymes et les liens descriptifs internes sont énumérés ci-dessous)**
328
329 Il est volontairement simple pour rester lisible, les lignes tiretées montrant
330 certaines des simplifications ou extensions. Ce schéma omet par exemple de
331 citer spécifiquement les méthodes avec réductions, dont une partie sont des
332 variantes de méthodes de base indiquées ici, ou de citer les extensions les
333 plus détaillées. Il omet de même les méthodes de tests disponibles dans ADAO et
334 utiles pour la mise en étude.
335
336 Chaque méthode citée dans ce schéma fait l'objet d'une partie descriptive
337 spécifique dans le chapitre des :ref:`section_reference_assimilation`. Les
338 acronymes cités dans le schéma ont la signification indiquée dans les pointeurs
339 associés :
340
341 - 3D-Var : :ref:`section_ref_algorithm_3DVAR`,
342 - 4D-Var : :ref:`section_ref_algorithm_4DVAR`,
343 - Blue : :ref:`section_ref_algorithm_Blue`,
344 - DiffEvol : :ref:`section_ref_algorithm_DifferentialEvolution`,
345 - EKF : :ref:`section_ref_algorithm_ExtendedKalmanFilter`,
346 - EnKF : :ref:`section_ref_algorithm_EnsembleKalmanFilter`,
347 - DFO : :ref:`section_ref_algorithm_DerivativeFreeOptimization`,
348 - Incr-Var : Incremental version Variational optimisation,
349 - KF : :ref:`section_ref_algorithm_KalmanFilter`,
350 - LLS : :ref:`section_ref_algorithm_LinearLeastSquares`,
351 - NLLS : :ref:`section_ref_algorithm_NonLinearLeastSquares`,
352 - QR : :ref:`section_ref_algorithm_QuantileRegression`,
353 - Swarm : :ref:`section_ref_algorithm_ParticleSwarmOptimization`,
354 - Tabu : :ref:`section_ref_algorithm_TabuSearch`,
355 - UKF : :ref:`section_ref_algorithm_UnscentedKalmanFilter`.
356
357 Approfondir le cadre méthodologique de l'assimilation de données
358 ----------------------------------------------------------------
359
360 .. index:: single: ajustement de paramètres
361 .. index:: single: apprentissage
362 .. index:: single: calage
363 .. index:: single: calibration
364 .. index:: single: data-driven
365 .. index:: single: estimation bayésienne
366 .. index:: single: estimation d'état
367 .. index:: single: estimation de paramètres
368 .. index:: single: intelligence artificielle
369 .. index:: single: interpolation de champs
370 .. index:: single: interpolation optimale
371 .. index:: single: inversion
372 .. index:: single: lissage de données
373 .. index:: single: machine learning
374 .. index:: single: méta-heuristiques
375 .. index:: single: méthodes de régularisation
376 .. index:: single: optimisation quadratique
377 .. index:: single: optimisation variationnelle
378 .. index:: single: problèmes inverses
379 .. index:: single: recalage
380 .. index:: single: réduction de modèles
381 .. index:: single: régularisation mathématique
382
383 Pour obtenir de plus amples informations sur les techniques d'assimilation de
384 données, le lecteur peut consulter les documents introductifs comme
385 [Talagrand97]_ ou [Argaud09]_, des supports de formations ou de cours comme
386 [Bouttier99]_ et [Bocquet04]_ (ainsi que d'autres documents issus des
387 applications des géosciences), ou des documents généraux comme [Talagrand97]_,
388 [Tarantola87]_, [Asch16]_, [Kalnay03]_, [Ide97]_, [Tikhonov77]_ et
389 [WikipediaDA]_. De manière plus mathématique, on pourra aussi consulter
390 [Lions68]_, [Jazwinski70]_.
391
392 On note que l'assimilation de données n'est pas limitée à la météorologie ou aux
393 géo-sciences, mais est largement utilisée dans d'autres domaines scientifiques.
394 Il y a de nombreux champs d'applications scientifiques et technologiques dans
395 lesquels l'utilisation efficace des données observées, mais incomplètes, est
396 cruciale.
397
398 Certains aspects de l'assimilation de données sont aussi connus sous d'autres
399 noms. Sans être exhaustif, on peut mentionner les noms de *calage* ou de
400 *recalage*, de *calibration*, *d'estimation d'état*, *d'estimation de
401 paramètres*, *d'ajustement de paramètres*, de *problèmes inverses* ou
402 *d'inversion*, *d'estimation bayésienne*, *d'interpolation de champs* ou
403 *d'interpolation optimale*, *d'optimisation variationnelle*, *d'optimisation
404 quadratique*, de *régularisation mathématique*, de *méta-heuristiques*
405 d'optimisation, de *réduction de modèles*, de *lissage de données*, de pilotage
406 des modèles par les données (« *data-driven* »), *d'apprentissage* de modèles
407 et de données (*Machine Learning* et Intelligence Artificielle), etc. Ces
408 termes peuvent être utilisés dans les recherches bibliographiques.
409
410 Approfondir l'estimation d'état par des méthodes d'optimisation
411 ---------------------------------------------------------------
412
413 .. index:: single: estimation d'état
414 .. index:: single: méthodes d'optimisation
415 .. index:: single: DerivativeFreeOptimization
416 .. index:: single: ParticleSwarmOptimization
417 .. index:: single: DifferentialEvolution
418 .. index:: single: QuantileRegression
419 .. index:: single: QualityCriterion
420
421 Comme vu précédemment, dans un cas de simulation statique, l'assimilation
422 variationnelle de données nécessite de minimiser la fonction objectif :math:`J`:
423
424 .. math:: J(\mathbf{x})=\frac{1}{2}(\mathbf{x}-\mathbf{x}^b)^T.\mathbf{B}^{-1}.(\mathbf{x}-\mathbf{x}^b)+\frac{1}{2}(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x})
425
426 qui est dénommée la fonctionnelle du "*3D-Var*". Elle peut être vue comme la
427 forme étendue d'une *minimisation moindres carrés*, obtenue en ajoutant un terme
428 de régularisation utilisant :math:`\mathbf{x}-\mathbf{x}^b`, et en pondérant les
429 différences par les deux matrices de covariances :math:`\mathbf{B}` et
430 :math:`\mathbf{R}`. La minimisation de la fonctionnelle :math:`J` conduit à la
431 *meilleure* estimation de l'état :math:`\mathbf{x}`. Pour obtenir plus
432 d'informations sur ces notions, on se reportera aux ouvrages généraux de
433 référence comme [Tarantola87]_.
434
435 Les possibilités d'extension de cette estimation d'état, en utilisant de manière
436 plus explicite des méthodes d'optimisation et leurs propriétés, peuvent être
437 imaginées de deux manières.
438
439 En premier lieu, les méthodes classiques d'optimisation impliquent l'usage de
440 méthodes de minimisation variées souvent basées sur un gradient. Elles sont
441 extrêmement efficaces pour rechercher un minimum local isolé. Mais elles
442 nécessitent que la fonctionnelle :math:`J` soit suffisamment régulière et
443 différentiable, et elles ne sont pas en mesure de saisir des propriétés
444 globales du problème de minimisation, comme par exemple : minimum global,
445 ensemble de solutions équivalentes dues à une sur-paramétrisation, multiples
446 minima locaux, etc. **Une démarche pour étendre les possibilités d'estimation
447 consiste donc à utiliser l'ensemble des méthodes d'optimisation existantes,
448 permettant la minimisation globale, diverses propriétés de robustesse de la
449 recherche, etc**. Il existe de nombreuses méthodes de minimisation, comme les
450 méthodes stochastiques, évolutionnaires, les heuristiques et méta-heuristiques
451 pour les problèmes à valeurs réelles, etc. Elles peuvent traiter des
452 fonctionnelles :math:`J` en partie irrégulières ou bruitées, peuvent
453 caractériser des minima locaux, etc. Les principaux désavantages de ces
454 méthodes sont un coût numérique souvent bien supérieur pour trouver les
455 estimations d'états, et fréquemment aucune garantie de convergence en temps
456 fini. Ici, on ne mentionne que quelques méthodes disponibles dans ADAO :
457
458 - l'*optimisation sans dérivées (Derivative Free Optimization ou DFO)* (voir :ref:`section_ref_algorithm_DerivativeFreeOptimization`),
459 - l'*optimisation par essaim de particules (Particle Swarm Optimization ou PSO)* (voir :ref:`section_ref_algorithm_ParticleSwarmOptimization`),
460 - l'*évolution différentielle (Differential Evolution ou DE)* (voir :ref:`section_ref_algorithm_DifferentialEvolution`),
461 - la *régression de quantile (Quantile Regression ou QR)* (voir :ref:`section_ref_algorithm_QuantileRegression`).
462
463 En second lieu, les méthodes d'optimisation cherchent usuellement à minimiser
464 des mesures quadratiques d'erreurs, car les propriétés naturelles de ces
465 fonctions objectifs sont bien adaptées à l'optimisation classique par gradient.
466 Mais d'autres mesures d'erreurs peuvent être mieux adaptées aux problèmes de
467 simulation de la physique réelle. Ainsi, **une autre manière d'étendre les
468 possibilités d'estimation consiste à utiliser d'autres mesures d'erreurs à
469 réduire**. Par exemple, on peut citer une *erreur en valeur absolue*, une
470 *erreur maximale*, etc. On donne précisément ci-dessous les cas les plus
471 classiques de mesures d'erreurs, en indiquant leur identifiant dans ADAO pour
472 la sélection éventuelle d'un critère de qualité :
473
474 - la fonction objectif pour la mesure d'erreur par moindres carrés pondérés et augmentés (qui est la fonctionnelle de base par défaut de tous les algorithmes en assimilation de données, souvent nommée la fonctionnelle du "*3D-Var*", et qui est connue pour les critères de qualité dans ADAO sous les noms de "*AugmentedWeightedLeastSquares*", "*AWLS*" ou "*DA*") est :
475
476     .. index:: single: AugmentedWeightedLeastSquares (QualityCriterion)
477     .. index:: single: AWLS (QualityCriterion)
478     .. math:: J(\mathbf{x})=\frac{1}{2}(\mathbf{x}-\mathbf{x}^b)^T.\mathbf{B}^{-1}.(\mathbf{x}-\mathbf{x}^b)+\frac{1}{2}(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x})
479
480 - la fonction objectif pour la mesure d'erreur par moindres carrés pondérés (qui est le carré de la norme pondérée :math:`L^2` de l'innovation, avec un coefficient :math:`1/2` pour être homogène à la précédente, et qui est connue pour les critères de qualité dans ADAO sous les noms de "*WeightedLeastSquares*" ou "*WLS*") est :
481
482     .. index:: single: WeightedLeastSquares (QualityCriterion)
483     .. index:: single: WLS (QualityCriterion)
484     .. math:: J(\mathbf{x})=\frac{1}{2}(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x})
485
486 - la fonction objectif pour la mesure d'erreur par moindres carrés (qui est le carré de la norme :math:`L^2` de l'innovation, avec un coefficient :math:`1/2` pour être homogène aux précédentes, et qui est connue pour les critères de qualité dans ADAO sous les noms de "*LeastSquares*", "*LS*" ou "*L2*") est :
487
488     .. index:: single: LeastSquares (QualityCriterion)
489     .. index:: single: LS (QualityCriterion)
490     .. index:: single: L2 (QualityCriterion)
491     .. math:: J(\mathbf{x})=\frac{1}{2}(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.(\mathbf{y}^o-\mathbf{H}.\mathbf{x})=\frac{1}{2}||\mathbf{y}^o-\mathbf{H}.\mathbf{x}||_{L^2}^2
492
493 - la fonction objectif pour la mesure d'erreur en valeur absolue (qui est la norme :math:`L^1` de l'innovation, et qui est connue pour les critères de qualité dans ADAO sous les noms de "*AbsoluteValue*" ou "*L1*") est :
494
495     .. index:: single: AbsoluteValue (QualityCriterion)
496     .. index:: single: L1 (QualityCriterion)
497     .. math:: J(\mathbf{x})=||\mathbf{y}^o-\mathbf{H}.\mathbf{x}||_{L^1}
498
499 - la fonction objectif pour la mesure d'erreur maximale (qui est la norme :math:`L^{\infty}` de l'innovation, et qui est connue pour les critères de qualité dans ADAO sous les noms de "*MaximumError*" ou "*ME*") est :
500
501     .. index:: single: MaximumError (QualityCriterion)
502     .. index:: single: ME (QualityCriterion)
503     .. math:: J(\mathbf{x})=||\mathbf{y}^o-\mathbf{H}.\mathbf{x}||_{L^{\infty}}
504
505 Ces mesures d'erreurs peuvent ne être pas différentiables comme pour les deux
506 dernières, mais certaines méthodes d'optimisation peuvent quand même les
507 traiter : heuristiques et méta-heuristiques pour les problèmes à valeurs
508 réelles, etc. Comme précédemment, les principaux désavantages de ces méthodes
509 sont un coût numérique souvent bien supérieur pour trouver les estimations
510 d'états, et pas de garantie de convergence en temps fini. Ici encore, on ne
511 mentionne que quelques méthodes qui sont disponibles dans ADAO :
512
513 - l'*optimisation sans dérivées (Derivative Free Optimization ou DFO)* (voir :ref:`section_ref_algorithm_DerivativeFreeOptimization`),
514 - l'*optimisation par essaim de particules (Particle Swarm Optimization ou PSO)* (voir :ref:`section_ref_algorithm_ParticleSwarmOptimization`),
515 - l'*évolution différentielle (Differential Evolution ou DE)* (voir :ref:`section_ref_algorithm_DifferentialEvolution`).
516
517 Le lecteur intéressé par le sujet de l'optimisation pourra utilement commencer
518 sa recherche grâce au point d'entrée [WikipediaMO]_.
519
520 Méthodes de réduction et optimisation réduite
521 ---------------------------------------------
522
523 .. index:: single: réduction
524 .. index:: single: méthodes de réduction
525 .. index:: single: méthodes réduites
526 .. index:: single: espace réduit
527 .. index:: single: sous-espace neutre
528 .. index:: single: SVD
529 .. index:: single: POD
530 .. index:: single: PCA
531 .. index:: single: Kahrunen-Loeve
532 .. index:: single: RBM
533 .. index:: single: EIM
534 .. index:: single: Fourier
535 .. index:: single: ondelettes
536 .. index:: single: EOF
537 .. index:: single: sparse
538
539 Les démarches d'assimilation de données et d'optimisation impliquent toujours
540 une certaine réitération d'une simulation numérique unitaire représentant la
541 physique que l'on veut traiter. Pour traiter au mieux cette physique, cette
542 simulation numérique unitaire est souvent de taille importante voire imposante,
543 et conduit à un coût calcul extrêmement important dès lors qu'il est répété. La
544 simulation physique complète est souvent appelée "*simulation haute fidélité*"
545 (ou "*full scale simulation*").
546
547 De manière générale, **les méthodes de réduction visent donc à réduire le coût de
548 calcul de l'optimisation tout en contrôlant au mieux l'erreur numérique
549 impliquée par cette réduction**.
550
551 Pour établir cela, on cherche à réduire au moins l'un des ingrédients qui
552 composent le problème d'assimilation de données ou d'optimisation. On peut
553 ainsi classer les méthodes de réduction selon l'ingrédient sur lequel elles
554 opèrent, en sachant que certaines méthodes portent sur plusieurs d'entre eux.
555 On indique ici une classification grossière, que le lecteur peut compléter par
556 la lecture d'ouvrages ou d'articles généraux en mathématiques ou spécialisés
557 pour sa physique.
558
559 Réduction des algorithmes d'assimilation de données ou d'optimisation :
560     les algorithmes d'optimisation eux-mêmes peuvent engendrer des coûts de
561     calculs importants pour traiter les informations numériques. Diverses
562     méthodes permettent de réduire leur coût algorithmique, par exemple en
563     travaillant dans l'espace réduit le plus adéquat pour l'optimisation, ou en
564     utilisant des techniques d'optimisation multi-niveaux. ADAO dispose de
565     telles techniques qui sont incluses dans les variantes d'algorithmes
566     classiques, conduisant à des résolutions exactes ou approximées mais
567     numériquement plus efficaces. Par défaut, les options algorithmiques
568     choisies par défaut dans ADAO sont toujours les plus performantes
569     lorsqu'elles n'impactent pas la qualité de l'optimisation.
570
571 Réduction de la représentation des covariances :
572     dans les algorithmes d'assimilation de données, ce sont les covariances qui
573     sont les grandeurs les plus coûteuses à manipuler ou à stocker, devenant
574     souvent les quantités limitantes du point de vue du coût de calcul. De
575     nombreuses méthodes cherchent donc à utiliser une représentation réduite de
576     ces matrices (conduisant parfois mais pas obligatoirement à réduire aussi
577     la dimension l'espace d'optimisation). On utilise classiquement des
578     techniques de factorisation, de décomposition (spectrale, Fourier,
579     ondelettes...) ou d'estimation d'ensemble (EOF...), ou des combinaisons,
580     pour réduire la charge numérique de ces covariances dans les calculs. ADAO
581     utilise certaines de ces techniques, en combinaison avec des techniques de
582     calcul creux ("sparse"), pour rendre plus efficace la manipulation des
583     matrices de covariance.
584
585 Réduction du modèle physique :
586     la manière la plus simple de réduire le coût du calcul unitaire consiste à
587     réduire le modèle de simulation lui-même, en le représentant de manière
588     numériquement plus économique. De nombreuses méthodes permettent cette
589     réduction de modèles en assurant un contrôle plus ou moins strict de
590     l'erreur d'approximation engendrée par la réduction. L'usage de modèles
591     simplifiés de la physique permet une réduction mais sans toujours produire
592     un contrôle d'erreur. Au contraire, toutes les méthodes de décomposition
593     (Fourier, ondelettes, SVD, POD, PCA, Kahrunen-Loeve, RBM, EIM, etc.) visent
594     ainsi une réduction de l'espace de représentation avec un contrôle d'erreur
595     explicite. Très fréquemment utilisées, elles doivent néanmoins être
596     complétées par une analyse fine de l'interaction avec l'algorithme
597     d'optimisation dans lequel le calcul réduit est inséré, pour éviter des
598     instabilités, incohérences ou inconsistances notoirement préjudiciables.
599     ADAO supporte complètement l'usage de ce type de méthode de réduction, même
600     s'il est souvent nécessaire d'établir cette réduction indépendante
601     générique préalablement à l'optimisation.
602
603 Réduction de l'espace d'assimilation de données ou d'optimisation :
604     la taille de l'espace d'optimisation dépend grandement du type de problème
605     traité (estimation d'états ou de paramètres) mais aussi du nombre
606     d'observations dont on dispose pour conduire l'assimilation de données. Il
607     est donc parfois possible de conduire l'optimisation dans l'espace le plus
608     petit par une adaptation de la formulation interne des algorithmes
609     d'optimisation. Lorsque c'est possible et judicieux, ADAO intègre ce genre
610     de formulation réduite pour améliorer la performance numérique sans
611     amoindrir la qualité de l'optimisation.
612
613 Combinaison de plusieurs réductions :
614     de nombreux algorithmes avancés cherchent à combiner simultanément
615     plusieurs techniques de réduction. Néanmoins, il est difficile de disposer
616     à la fois de méthodes génériques et robustes, et d'utiliser en même temps
617     de plusieurs techniques très performantes de réduction. ADAO intègre
618     certaines méthodes parmi les plus robustes, mais cet aspect fait toujours
619     largement l'objet de recherches et d'évolutions.
620
621 On peut terminer ce rapide tour d'horizon des méthodes de réduction par le fait
622 que leur usage est omni-présent dans les applications réelles et dans les
623 outils numériques, et qu'ADAO permet d'utiliser les méthodes éprouvées sans
624 même le savoir.