]> SALOME platform Git repositories - modules/adao.git/blob - doc/fr/theory.rst
Salome HOME
Minor documentation corrections
[modules/adao.git] / doc / fr / theory.rst
1 ..
2    Copyright (C) 2008-2019 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 possible
45 de l'état réel du système et de ses propriétés stochastiques. On note que cet
46 état réel (ou "*état vrai*") ne peut être atteint, mais peut seulement être
47 estimé. De plus, malgré le fait que les informations utilisées sont
48 stochastiques par nature, l'assimilation de données fournit des techniques
49 déterministes afin de réaliser l'estimation de manière très efficace.
50
51 Comme l'assimilation de données cherche l'estimation la **meilleure possible**,
52 la démarche technique sous-jacente intègre toujours de l'optimisation afin de
53 trouver cette estimation : des méthodes d'optimisation choisies sont toujours
54 intégrées dans les algorithmes d'assimilation de données. Par ailleurs, les
55 méthodes d'optimisation peuvent être vues dans ADAO comme un moyen d'étendre
56 les applications d'assimilation de données. Elles seront présentées de cette
57 façon dans la section pour `Approfondir l'estimation d'état par des méthodes
58 d'optimisation`_, mais elles sont beaucoup plus générales et peuvent être
59 utilisés sans les concepts d'assimilation de données.
60
61 Deux types principaux d'applications existent en assimilation de données, qui
62 sont couverts par le même formalisme : l'**identification de paramètres** et la
63 **reconstruction de champs**. Avant d'introduire la `Description simple du cadre
64 méthodologique de l'assimilation de données`_ dans une prochaine section, nous
65 décrivons brièvement ces deux types d'applications. A la fin de ce chapitre,
66 quelques références permettent d'`Approfondir le cadre méthodologique de
67 l'assimilation de données`_ et d'`Approfondir l'estimation d'état par des
68 méthodes d'optimisation`_.
69
70 Reconstruction de champs ou interpolation de données
71 ----------------------------------------------------
72
73 .. index:: single: reconstruction de champs
74 .. index:: single: interpolation de données
75 .. index:: single: interpolation de champs
76
77 La **reconstruction (ou l'interpolation) de champs** consiste à trouver, à
78 partir d'un nombre restreint de mesures réelles, le (ou les) champ(s)
79 physique(s) qui est (sont) le(s) plus *cohérent(s)* avec ces mesures.
80
81 La *cohérence* est à comprendre en termes d'interpolation, c'est-à-dire que le
82 champ que l'on cherche à reconstruire, en utilisant de l'assimilation de données
83 sur les mesures, doit s'adapter au mieux aux mesures, tout en restant contraint
84 par la simulation globale du champ. Le champ calculé est donc une estimation *a
85 priori* du champ que l'on cherche à identifier.
86
87 Si le système évolue dans le temps, la reconstruction doit être établie à chaque
88 pas de temps, du champ dans son ensemble. Le processus d'interpolation est dans
89 ce cas plus compliqué car il est temporel, et plus seulement en termes de
90 valeurs instantanées du champ.
91
92 Un exemple simple de reconstruction de champs provient de la météorologie, dans
93 laquelle on recherche les valeurs de variables comme la température ou la
94 pression en tout point du domaine spatial. On dispose de mesures instantanées de
95 ces quantités en certains points, mais aussi d'un historique de ces mesures. De
96 plus, ces variables sont contraintes par les équations d'évolution de
97 l'atmosphère, qui indiquent par exemple que la pression en un point ne peut pas
98 prendre une valeur quelconque indépendamment de la valeur au même point à un
99 temps précédent. On doit donc faire la reconstruction d'un champ en tout point
100 de l'espace, de manière "cohérente" avec les équations d'évolution et avec les
101 mesures aux précédents pas de temps.
102
103 Identification de paramètres, ajustement de modèles, calibration
104 ----------------------------------------------------------------
105
106 .. index:: single: identification de paramètres
107 .. index:: single: ajustement de paramètres
108 .. index:: single: ajustement de modèles
109 .. index:: single: calibration
110 .. index:: single: ébauche
111 .. index:: single: régularisation
112 .. index:: single: problèmes inverses
113
114 L'**identification (ou l'ajustement) de paramètres** par assimilation de données
115 est une forme de calibration d'état qui utilise simultanément les mesures
116 physiques et une estimation *a priori* des paramètres (appelée l'"*ébauche*")
117 d'état que l'on cherche à identifier, ainsi qu'une caractérisation de leurs
118 erreurs. De ce point de vue, cette démarche utilise toutes les informations
119 disponibles sur le système physique, avec des hypothèses restrictives mais
120 réalistes sur les erreurs, pour trouver l'"*estimation optimale*" de l'état
121 vrai. On peut noter, en termes d'optimisation, que l'ébauche réalise la
122 "*régularisation*", au sens mathématique de Tikhonov [Tikhonov77]_
123 [WikipediaTI]_, du problème principal d'identification de paramètres. On peut
124 aussi désigner cette démarche comme une résolution de type "*problème inverse*".
125
126 En pratique, les deux écarts (ou incréments) observés "*calculs-mesures*" et
127 "*calculs-ébauche*" sont combinés pour construire la correction de calibration
128 des paramètres ou des conditions initiales. L'ajout de ces deux incréments
129 requiert une pondération relative, qui est choisie pour refléter la confiance
130 que l'on donne à chaque information utilisée. Cette confiance est représentée
131 par la covariance des erreurs sur l'ébauche et sur les observations. Ainsi
132 l'aspect stochastique des informations est essentiel pour construire une
133 fonction d'erreur pour la calibration.
134
135 Un exemple simple d'identification de paramètres provient de tout type de
136 simulation physique impliquant un modèle paramétré. Par exemple, une simulation
137 de mécanique statique d'une poutre contrainte par des forces est décrite par les
138 paramètres de la poutre, comme un coefficient de Young, ou par l'intensité des
139 forces appliquées. Le problème d'estimation de paramètres consiste à chercher
140 par exemple la bonne valeur du coefficient de Young de telle manière à ce que la
141 simulation de la poutre corresponde aux mesures, en y incluant la connaissance
142 des erreurs.
143
144 Toutes les grandeurs représentant la description de la physique dans un modèle
145 sont susceptibles d'être calibrés dans une démarche d'assimilation de données,
146 que ce soient des paramètres de modèles, des conditions initiales ou des
147 conditions aux limites. Leur prise en compte simultanée est largement facilitée
148 par la démarche d'assimilation de données, permettant de traiter objectivement
149 un ensemble hétérogène d'informations à disposition.
150
151 Description simple du cadre méthodologique de l'assimilation de données
152 -----------------------------------------------------------------------
153
154 .. index:: single: ébauche
155 .. index:: single: covariances d'erreurs d'ébauche
156 .. index:: single: covariances d'erreurs d'observation
157 .. index:: single: covariances
158 .. index:: single: 3DVAR
159 .. index:: single: Blue
160
161 On peut décrire ces démarches de manière simple. Par défaut, toutes les
162 variables sont des vecteurs, puisqu'il y a plusieurs paramètres à ajuster, ou
163 un champ discrétisé à reconstruire.
164
165 Selon les notations standards en assimilation de données, on note
166 :math:`\mathbf{x}^a` les paramètres optimaux qui doivent être déterminés par
167 calibration, :math:`\mathbf{y}^o` les observations (ou les mesures
168 expérimentales) auxquelles on doit comparer les sorties de simulation,
169 :math:`\mathbf{x}^b` l'ébauche (valeurs *a priori*, ou valeurs de
170 régularisation) des paramètres cherchés, :math:`\mathbf{x}^t` les paramètres
171 inconnus idéaux qui donneraient exactement les observations (en supposant que
172 toutes les erreurs soient nulles et que le modèle soit exact) en sortie.
173
174 Dans le cas le plus simple, qui est statique, les étapes de simulation et
175 d'observation peuvent être combinées en un unique opérateur d'observation noté
176 :math:`H` (linéaire ou non-linéaire). Il transforme formellement les paramètres
177 :math:`\mathbf{x}` en entrée en résultats :math:`\mathbf{y}`, qui peuvent être
178 directement comparés aux observations :math:`\mathbf{y}^o` :
179
180 .. math:: \mathbf{y} = H(\mathbf{x})
181
182 De plus, on utilise l'opérateur linéarisé (ou tangent) :math:`\mathbf{H}` pour
183 représenter l'effet de l'opérateur complet :math:`H` autour d'un point de
184 linéarisation (et on omettra ensuite de mentionner :math:`H` même si l'on peut
185 le conserver). En réalité, on a déjà indiqué que la nature stochastique des
186 variables est essentielle, provenant du fait que le modèle, l'ébauche et les
187 observations sont tous incorrects. On introduit donc des erreurs d'observations
188 additives, sous la forme d'un vecteur aléatoire :math:`\mathbf{\epsilon}^o` tel
189 que :
190
191 .. math:: \mathbf{y}^o = \mathbf{H} \mathbf{x}^t + \mathbf{\epsilon}^o
192
193 Les erreurs représentées ici ne sont pas uniquement celles des observations, ce
194 sont aussi celles de la simulation. On peut toujours considérer que ces erreurs
195 sont de moyenne nulle. En notant :math:`E[.]` l'espérance mathématique
196 classique, on peut alors définir une matrice :math:`\mathbf{R}` des covariances
197 d'erreurs d'observation par l'expression :
198
199 .. math:: \mathbf{R} = E[\mathbf{\epsilon}^o.{\mathbf{\epsilon}^o}^T]
200
201 L'ébauche peut être écrite formellement comme une fonction de la valeur vraie,
202 en introduisant le vecteur d'erreurs :math:`\mathbf{\epsilon}^b` tel que :
203
204 .. math:: \mathbf{x}^b = \mathbf{x}^t + \mathbf{\epsilon}^b
205
206 Les erreurs d'ébauche :math:`\mathbf{\epsilon}^b` sont aussi supposées de
207 moyenne nulle, de la même manière que pour les observations. On définit la
208 matrice :math:`\mathbf{B}` des covariances d'erreurs d'ébauche par :
209
210 .. math:: \mathbf{B} = E[\mathbf{\epsilon}^b.{\mathbf{\epsilon}^b}^T]
211
212 L'estimation optimale des paramètres vrais :math:`\mathbf{x}^t`, étant donné
213 l'ébauche :math:`\mathbf{x}^b` et les observations :math:`\mathbf{y}^o`, est
214 ainsi "l'*analyse*" :math:`\mathbf{x}^a` et provient de la minimisation d'une
215 fonction d'erreur, explicite en assimilation variationnelle, ou d'une correction
216 de filtrage en assimilation par filtrage.
217
218 En **assimilation variationnelle**, dans un cas statique, on cherche
219 classiquement à minimiser la fonction :math:`J` suivante :
220
221 .. 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})
222
223 :math:`J` est classiquement désignée comme la fonctionnelle "*3D-VAR*" en
224 assimilation de données (voir par exemple [Talagrand97]_) ou comme la
225 fonctionnelle de régularisation de Tikhonov généralisée en optimisation (voir
226 par exemple [WikipediaTI]_). Comme les matrices de covariance :math:`\mathbf{B}`
227 et :math:`\mathbf{R}` sont proportionnelles aux variances d'erreurs, leur
228 présence dans les deux termes de la fonctionnelle :math:`J` permet effectivement
229 de pondérer les termes d'écarts par la confiance dans les erreurs d'ébauche ou
230 d'observations. Le vecteur :math:`\mathbf{x}` des paramètres réalisant le
231 minimum de cette fonction constitue ainsi l'analyse :math:`\mathbf{x}^a`. C'est
232 à ce niveau que l'on doit utiliser toute la panoplie des méthodes de
233 minimisation de fonctions connues par ailleurs en optimisation (voir aussi la
234 section `Approfondir l'estimation d'état par des méthodes d'optimisation`_).
235 Selon la taille du vecteur :math:`\mathbf{x}` des paramètres à identifier, et la
236 disponibilité du gradient ou de la hessienne de :math:`J`, il est judicieux
237 d'adapter la méthode d'optimisation choisie (gradient, Newton, quasi-Newton...).
238
239 En **assimilation par filtrage**, dans ce cas simple usuellement dénommé
240 "*BLUE*" (pour "*Best Linear Unbiased Estimator*"), l'analyse
241 :math:`\mathbf{x}^a` est donnée comme une correction de l'ébauche
242 :math:`\mathbf{x}^b` par un terme proportionnel à la différence entre les
243 observations :math:`\mathbf{y}^o` et les calculs :math:`\mathbf{H}\mathbf{x}^b` :
244
245 .. math:: \mathbf{x}^a = \mathbf{x}^b + \mathbf{K}(\mathbf{y}^o - \mathbf{H}\mathbf{x}^b)
246
247 où :math:`\mathbf{K}` est la matrice de gain de Kalman, qui s'exprime à l'aide
248 des matrices de covariance sous la forme suivante :
249
250 .. math:: \mathbf{K} = \mathbf{B}\mathbf{H}^T(\mathbf{H}\mathbf{B}\mathbf{H}^T+\mathbf{R})^{-1}
251
252 L'avantage du filtrage est le calcul explicite du gain, pour produire ensuite la
253 matrice *a posteriori* de covariance d'analyse.
254
255 Dans ce cas statique simple, on peut montrer, sous une hypothèse de
256 distributions gaussiennes d'erreurs (très peu restrictive en pratique) et de
257 linéarité de :math:`H`, que les deux approches *variationnelle* et *de
258 filtrage* donnent la même solution.
259
260 On indique que ces méthodes de "*3D-VAR*" et de "*BLUE*" peuvent être étendues
261 à des problèmes dynamiques, sous les noms respectifs de "*4D-VAR*" et de
262 "*filtre de Kalman*". Elles doivent alors prendre en compte l'opérateur
263 d'évolution pour établir aux bons pas de temps une analyse de l'écart entre les
264 observations et les simulations et pour avoir, à chaque instant, la propagation
265 de l'ébauche à travers le modèle d'évolution. De la même manière, ces méthodes
266 peuvent aussi être utilisées dans le cas d'opérateurs d'observation ou
267 d'évolution non linéaires. Un grand nombre de variantes ont été développées
268 pour accroître la qualité numérique des méthodes ou pour prendre en compte des
269 contraintes informatiques comme la taille ou la durée des calculs.
270
271 Approfondir le cadre méthodologique de l'assimilation de données
272 ----------------------------------------------------------------
273
274 .. index:: single: estimation d'état
275 .. index:: single: estimation de paramètres
276 .. index:: single: problèmes inverses
277 .. index:: single: estimation bayésienne
278 .. index:: single: interpolation optimale
279 .. index:: single: régularisation mathématique
280 .. index:: single: méthodes de régularisation
281 .. index:: single: méthodes de lissage
282
283 Pour obtenir de plus amples informations sur les techniques d'assimilation de
284 données, le lecteur peut consulter les documents introductifs comme
285 [Talagrand97]_ ou [Argaud09]_, des supports de formations ou de cours comme
286 [Bouttier99]_ et [Bocquet04]_ (ainsi que d'autres documents issus des
287 applications des géosciences), ou des documents généraux comme [Talagrand97]_,
288 [Tarantola87]_, [Asch16]_, [Kalnay03]_, [Ide97]_, [Tikhonov77]_ et
289 [WikipediaDA]_.
290
291 On note que l'assimilation de données n'est pas limitée à la météorologie ou aux
292 géo-sciences, mais est largement utilisée dans d'autres domaines scientifiques.
293 Il y a de nombreux champs d'applications scientifiques et technologiques dans
294 lesquels l'utilisation efficace des données observées, mais incomplètes, est
295 cruciale.
296
297 Certains aspects de l'assimilation de données sont aussi connus sous les noms
298 d'*estimation d'état*, d'*estimation de paramètres*, de *problèmes inverses*,
299 d'*estimation bayésienne*, d'*interpolation optimale*, de *régularisation
300 mathématique*, de *lissage de données*, etc. Ces termes peuvent être utilisés
301 dans les recherches bibliographiques.
302
303 Approfondir l'estimation d'état par des méthodes d'optimisation
304 ---------------------------------------------------------------
305
306 .. index:: single: estimation d'état
307 .. index:: single: méthodes d'optimisation
308 .. index:: single: DerivativeFreeOptimization
309 .. index:: single: ParticleSwarmOptimization
310 .. index:: single: DifferentialEvolution
311 .. index:: single: QuantileRegression
312
313 Comme vu précédemment, dans un cas de simulation statique, l'assimilation
314 variationnelle de données nécessite de minimiser la fonction objectif :math:`J`:
315
316 .. math:: J(\mathbf{x})=(\mathbf{x}-\mathbf{x}^b)^T.\mathbf{B}^{-1}.(\mathbf{x}-\mathbf{x}^b)+(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x})
317
318 qui est dénommée la fonctionnelle du "*3D-VAR*". Elle peut être vue comme la
319 forme étendue d'une *minimisation moindres carrés*, obtenue en ajoutant un terme
320 de régularisation utilisant :math:`\mathbf{x}-\mathbf{x}^b`, et en pondérant les
321 différences par les deux matrices de covariances :math:`\mathbf{B}` et
322 :math:`\mathbf{R}`. La minimisation de la fonctionnelle :math:`J` conduit à la
323 *meilleure* estimation de l'état :math:`\mathbf{x}`. Pour obtenir plus
324 d'informations sur ces notions, on se reportera aux ouvrages généraux de
325 référence comme [Tarantola87]_.
326
327 Les possibilités d'extension de cette estimation d'état, en utilisant de manière
328 plus explicite des méthodes d'optimisation et leurs propriétés, peuvent être
329 imaginées de deux manières.
330
331 En premier lieu, les méthodes classiques d'optimisation impliquent l'usage de
332 méthodes de minimisation variées souvent basées sur un gradient. Elles sont
333 extrêmement efficaces pour rechercher un minimum local isolé. Mais elles
334 nécessitent que la fonctionnelle :math:`J` soit suffisamment régulière et
335 différentiable, et elles ne sont pas en mesure de saisir des propriétés
336 globales du problème de minimisation, comme par exemple : minimum global,
337 ensemble de solutions équivalentes dues à une sur-paramétrisation, multiples
338 minima locaux, etc. **Une méthode pour étendre les possibilités d'estimation
339 consiste donc à utiliser l'ensemble des méthodes d'optimisation existantes,
340 permettant la minimisation globale, diverses propriétés de robustesse de la
341 recherche, etc**. Il existe de nombreuses méthodes de minimisation, comme les
342 méthodes stochastiques, évolutionnaires, les heuristiques et méta-heuristiques
343 pour les problèmes à valeurs réelles, etc. Elles peuvent traiter des
344 fonctionnelles :math:`J` en partie irrégulières ou bruitées, peuvent
345 caractériser des minima locaux, etc. Les principaux désavantages de ces
346 méthodes sont un coût numérique souvent bien supérieur pour trouver les
347 estimations d'états, et fréquemment aucune garantie de convergence en temps
348 fini. Ici, on ne mentionne que quelques méthodes disponibles dans ADAO :
349
350 - l'*optimisation sans dérivées (Derivative Free Optimization ou DFO)* (voir :ref:`section_ref_algorithm_DerivativeFreeOptimization`),
351 - l'*optimisation par essaim de particules (Particle Swarm Optimization ou PSO)* (voir :ref:`section_ref_algorithm_ParticleSwarmOptimization`),
352 - l'*évolution différentielle (Differential Evolution ou DE)* (voir :ref:`section_ref_algorithm_DifferentialEvolution`),
353 - la *régression de quantile (Quantile Regression ou QR)* (voir :ref:`section_ref_algorithm_QuantileRegression`).
354
355 En second lieu, les méthodes d'optimisation cherchent usuellement à minimiser
356 des mesures quadratiques d'erreurs, car les propriétés naturelles de ces
357 fonctions objectifs sont bien adaptées à l'optimisation classique par gradient.
358 Mais d'autres mesures d'erreurs peuvent être mieux adaptées aux problèmes de
359 simulation de la physique réelle. Ainsi, **une autre manière d'étendre les
360 possibilités d'estimation consiste à utiliser d'autres mesures d'erreurs à
361 réduire**. Par exemple, on peut citer une **erreur absolue**, une **erreur
362 maximale**, etc. Ces mesures d'erreurs ne sont pas différentiables, mais
363 certaines méthodes d'optimisation peuvent les traiter: heuristiques et
364 méta-heuristiques pour les problèmes à valeurs réelles, etc. Comme
365 précédemment, les principaux désavantages de ces méthodes sont un coût
366 numérique souvent bien supérieur pour trouver les estimations d'états, et pas
367 de garantie de convergence en temps fini. Ici encore, on ne mentionne que
368 quelques méthodes qui sont disponibles dans ADAO :
369
370 - l'*optimisation sans dérivées (Derivative Free Optimization ou DFO)* (voir :ref:`section_ref_algorithm_DerivativeFreeOptimization`),
371 - l'*optimisation par essaim de particules (Particle Swarm Optimization ou PSO)* (voir :ref:`section_ref_algorithm_ParticleSwarmOptimization`),
372 - l'*évolution différentielle (Differential Evolution ou DE)* (voir :ref:`section_ref_algorithm_DifferentialEvolution`).
373
374 Le lecteur intéressé par le sujet de l'optimisation pourra utilement commencer
375 sa recherche grâce au point d'entrée [WikipediaMO]_.