Salome HOME
Adding sampling test algorithm
[modules/adao.git] / doc / fr / theory.rst
1 ..
2    Copyright (C) 2008-2014 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 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 rassemble les données mesurées
42 d'un système, qui sont les observations, avec une connaissance physique et
43 mathématique *a priori* du système, intégrée dans les modèles numériques, afin
44 d'obtenir la meilleure estimation possible de l'état réel du système et de ses
45 propriétés stochastiques. On note que cet état réel (ou "état" vrai") ne peut
46 être atteint, mais peut seulement être estimé. De plus, malgré le fait que les
47 informations utilisées sont stochastiques par nature, l'assimilation de données
48 fournit des techniques déterministes afin de réaliser l'estimation de manière
49 très efficace.
50
51 L'assimilation de données cherchant l'estimation la **meilleure possible**, la
52 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és 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 les
56 applications d'assimilation de données. Elles seront présentées de cette façon
57 dans la section pour `Approfondir l'estimation d'état par des méthodes
58 d'optimisation`_, mais elles sont beaucoup plus générale 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 champs physique qui est le
79 plus *cohérent* 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 (même si les hypothèses sur les erreurs sont
120 relativement restrictives) 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, du problème principal d'identification
123 de paramètres. On peut aussi désigner cette démarche comme une résolution de
124 type "*problèmes inverses*".
125
126 En pratique, les deux écarts (ou incréments) observés "*calculs-ébauche*" et
127 "*calculs-mesures*" 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, mesuré *a priori*, est essentiel pour
133 construire une 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 Description simple du cadre méthodologique de l'assimilation de données
145 -----------------------------------------------------------------------
146
147 .. index:: single: ébauche
148 .. index:: single: covariances d'erreurs d'ébauche
149 .. index:: single: covariances d'erreurs d'observation
150 .. index:: single: covariances
151
152 On peut décrire ces démarches de manière simple. Par défaut, toutes les
153 variables sont des vecteurs, puisqu'il y a plusieurs paramètres à ajuster.
154
155 Selon les notations standard en assimilation de données, on note
156 :math:`\mathbf{x}^a` les paramètres optimaux qui doivent être déterminés par
157 calibration, :math:`\mathbf{y}^o` les observations (ou les mesures
158 expérimentales) auxquelles on doit comparer les sorties de simulation,
159 :math:`\mathbf{x}^b` l'ébauche (valeurs *a priori*, ou valeurs de 
160 régularisation) des paramètres cherchés, :math:`\mathbf{x}^t` les paramètres
161 inconnus idéaux qui donneraient exactement les observations (en supposant que
162 toutes les erreurs soient nulles et que le modèle soit exact) en sortie.
163
164 Dans le cas le plus simple, qui est statique, les étapes de simulation et
165 d'observation peuvent être combinées en un unique opérateur d'observation noté
166 :math:`H` (linéaire ou non-linéaire). Il transforme formellement les paramètres
167 :math:`\mathbf{x}` en entrée en résultats :math:`\mathbf{y}`, qui peuvent être
168 directement comparés aux observations :math:`\mathbf{y}^o` :
169
170 .. math:: \mathbf{y} = H(\mathbf{x})
171
172 De plus, on utilise l'opérateur linéarisé :math:`\mathbf{H}` pour représenter
173 l'effet de l'opérateur complet :math:`H` autour d'un point de linéarisation (et
174 on omettra ensuite de mentionner :math:`H` même si l'on peut le conserver). En
175 réalité, on a déjà indiqué que la nature stochastique des variables est
176 essentielle, provenant du fait que le modèle, l'ébauche et les observations sont
177 tous incorrects. On introduit donc des erreurs d'observations additives, sous la
178 forme d'un vecteur aléatoire :math:`\mathbf{\epsilon}^o` tel que :
179
180 .. math:: \mathbf{y}^o = \mathbf{H} \mathbf{x}^t + \mathbf{\epsilon}^o
181
182 Les erreurs représentées ici ne sont pas uniquement celles des observations, ce
183 sont aussi celles de la simulation. On peut toujours considérer que ces erreurs
184 sont de moyenne nulle. En notant :math:`E[.]` l'espérance mathématique
185 classique, on peut alors définir une matrice :math:`\mathbf{R}` des covariances
186 d'erreurs d'observation par :
187
188 .. math:: \mathbf{R} = E[\mathbf{\epsilon}^o.{\mathbf{\epsilon}^o}^T]
189
190 L'ébauche peut aussi être écrite comme une fonction de la valeur vraie, en
191 introduisant le vecteur d'erreurs :math:`\mathbf{\epsilon}^b` tel que :
192
193 .. math:: \mathbf{x}^b = \mathbf{x}^t + \mathbf{\epsilon}^b
194
195 où les erreurs sont aussi supposées de moyenne nulle, de la même manière que
196 pour les observations. On définit la matrice :math:`\mathbf{B}` des covariances
197 d'erreurs d'ébauche par :
198
199 .. math:: \mathbf{B} = E[\mathbf{\epsilon}^b.{\mathbf{\epsilon}^b}^T]
200
201 L'estimation optimale des paramètres vrais :math:`\mathbf{x}^t`, étant donné
202 l'ébauche :math:`\mathbf{x}^b` et les observations :math:`\mathbf{y}^o`, est
203 ainsi l'"*analyse*" :math:`\mathbf{x}^a` et provient de la minimisation d'une
204 fonction d'erreur (en assimilation variationnelle) ou d'une correction de
205 filtrage (en assimilation par filtrage).
206
207 En **assimilation variationnelle**, dans un cas statique, on cherche
208 classiquement à minimiser la fonction :math:`J` suivante :
209
210 .. 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})
211
212 qui est usuellement désignée comme la fonctionnelle "*3D-VAR*" (voir par exemple
213 [Talagrand97]_). Comme les matrices de covariance :math:`\mathbf{B}` et
214 :math:`\mathbf{R}` sont proportionnelles aux variances d'erreurs, leur présence
215 dans les deux termes de la fonctionnelle :math:`J` permet effectivement de
216 pondérer les différences par la confiance dans les erreurs d'ébauche ou
217 d'observations. Le vecteur :math:`\mathbf{x}` des paramètres réalisant le
218 minimum de cette fonction constitue ainsi l'analyse :math:`\mathbf{x}^a`. C'est
219 à ce niveau que l'on doit utiliser toute la panoplie des méthodes de
220 minimisation de fonctions connues par ailleurs en optimisation (voir aussi la
221 section `Approfondir l'estimation d'état par des méthodes d'optimisation`_).
222 Selon la taille du vecteur :math:`\mathbf{x}` des paramètres à identifier, et la
223 disponibilité du gradient ou de la hessienne de :math:`J`, il est judicieux
224 d'adapter la méthode d'optimisation choisie (gradient, Newton, quasi-Newton...).
225
226 En **assimilation par filtrage**, dans ce cas simple usuellement dénommé
227 "*BLUE*" (pour "*Best Linear Unbiased Estimator*"), l'analyse
228 :math:`\mathbf{x}^a` est donnée comme une correction de l'ébauche
229 :math:`\mathbf{x}^b` par un terme proportionnel à la différence entre les
230 observations :math:`\mathbf{y}^o` et les calculs :math:`\mathbf{H}\mathbf{x}^b` :
231
232 .. math:: \mathbf{x}^a = \mathbf{x}^b + \mathbf{K}(\mathbf{y}^o - \mathbf{H}\mathbf{x}^b)
233
234 où :math:`\mathbf{K}` est la matrice de gain de Kalman, qui s'exprime à l'aide
235 des matrices de covariance sous la forme suivante :
236
237 .. math:: \mathbf{K} = \mathbf{B}\mathbf{H}^T(\mathbf{H}\mathbf{B}\mathbf{H}^T+\mathbf{R})^{-1}
238
239 L'avantage du filtrage est le calcul explicite du gain, pour produire ensuite la
240 matrice *a posteriori* de covariance d'analyse.
241
242 Dans ce cas statique simple, on peut montrer, sous une hypothèse de
243 distributions gaussiennes d'erreurs (très peu restrictive en pratique), que les
244 deux approches *variationnelle* et *de filtrage* donnent la même solution.
245
246 On indique que ces méthodes de "*3D-VAR*" et de "*BLUE*" peuvent être étendues à
247 des problèmes dynamiques, sous les noms respectifs de "*4D-VAR*" et de "*filtre
248 de Kalman*". Elles peuvent prendre en compte l'opérateur d'évolution pour
249 établir aux bons pas de temps une analyse de l'écart entre les observations et
250 les simulations et pour avoir, à chaque instant, la propagation de l'ébauche à
251 travers le modèle d'évolution. Un grand nombre de variantes ont été développées
252 pour accroître la qualité numérique des méthodes ou pour prendre en compte des
253 contraintes informatiques comme la taille ou la durée des calculs.
254
255 Approfondir le cadre méthodologique de l'assimilation de données
256 ----------------------------------------------------------------
257
258 .. index:: single: estimation d'état
259 .. index:: single: estimation de paramètres
260 .. index:: single: problèmes inverses
261 .. index:: single: estimation bayésienne
262 .. index:: single: interpolation optimale
263 .. index:: single: régularisation mathématique
264 .. index:: single: méthodes de régularisation
265 .. index:: single: méthodes de lissage
266
267 Pour obtenir de plus amples informations sur les techniques d'assimilation de
268 données, le lecteur peut consulter les documents introductifs comme
269 [Talagrand97]_ ou [Argaud09]_, des supports de formations ou de cours comme
270 [Bouttier99]_ et [Bocquet04]_ (ainsi que d'autres documents issus des
271 applications des géosciences), ou des documents généraux comme [Talagrand97]_,
272 [Tarantola87]_, [Kalnay03]_, [Ide97]_ et [WikipediaDA]_.
273
274 On note que l'assimilation de données n'est pas limitée à la météorologie ou aux
275 géo-sciences, mais est largement utilisée dans d'autres domaines scientifiques.
276 Il y a de nombreux champs d'applications scientifiques et technologiques dans
277 lesquels l'utilisation efficace des données observées, mais incomplètes, est
278 cruciale.
279
280 Certains aspects de l'assimilation de données sont aussi connus sous les noms
281 d'*estimation d'état*, d'*estimation de paramètres*, de *problèmes inverses*,
282 d'*estimation bayésienne*, d'*interpolation optimale*, de *régularisation
283 mathématique*, de *lissage de données*, etc. Ces termes peuvent être utilisés
284 dans les recherches bibliographiques.
285
286 Approfondir l'estimation d'état par des méthodes d'optimisation
287 ---------------------------------------------------------------
288
289 .. index:: single: estimation d'état
290 .. index:: single: méthodes d'optimisation
291
292 Comme vu précédemment, dans un cas de simulation statique, l'assimilation
293 variationnelle de données nécessite de minimiser la fonction objectif :math:`J`:
294
295 .. 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})
296
297 qui est dénommée la fonctionnelle du "*3D-VAR*". Elle peut être vue comme la
298 forme étendue d'une *minimisation moindres carrés*, obtenue en ajoutant un terme
299 de régularisation utilisant :math:`\mathbf{x}-\mathbf{x}^b`, et en pondérant les
300 différences par les deux matrices de covariances :math:`\mathbf{B}` et
301 :math:`\mathbf{R}`. La minimisation de la fonctionnelle :math:`J` conduit à la
302 *meilleure* estimation de l'état :math:`\mathbf{x}`. Pour obtenir plus
303 d'informations sur ces notions, on se reportera aux ouvrages généraux de
304 référence comme [Tarantola87]_.
305
306 Les possibilités d'extension de cette estimation d'état, en utilisant de manière
307 plus explicite des méthodes d'optimisation et leurs propriétés, peuvent être
308 imaginées de deux manières.
309
310 En premier lieu, les méthodes classiques d'optimisation impliquent l'usage de
311 méthodes de minimisation variées basées sur un gradient. Elles sont extrêmement
312 efficaces pour rechercher un minimum local isolé. Mais elles nécessitent que la
313 fonctionnelle :math:`J` soit suffisamment régulière et différentiable, et elles
314 ne sont pas en mesure de saisir des propriétés globales du problème de
315 minimisation, comme par exemple : minimum global, ensemble de solutions
316 équivalentes dues à une sur-paramétrisation, multiples minima locaux, etc. **Une
317 méthode pour étendre les possibilités d'estimation consiste donc à utiliser
318 l'ensemble des méthodes d'optimisation existantes, permettant la minimisation
319 globale, diverses propriétés de robustesse de la recherche, etc**. Il existe de
320 nombreuses méthodes de minimisation, comme les méthodes stochastiques,
321 évolutionnaires, les heuristiques et méta-heuristiques pour les problèmes à
322 valeurs réelles, etc. Elles peuvent traiter des fonctionnelles :math:`J` en
323 partie irrégulières ou bruitées, peuvent caractériser des minima locaux, etc. Le
324 principal désavantage de ces méthodes est un coût numérique souvent bien
325 supérieur pour trouver les estimations d'états, et pas de garantie de
326 convergence en temps fini. Ici, on ne mentionne que des méthodes qui sont
327 disponibles dans le module ADAO : la *régression de quantile (Quantile
328 Regression)* [WikipediaQR]_ and l'*optimisation par essaim de particules
329 (Particle Swarm Optimization)* [WikipediaPSO]_.
330
331 En second lieu, les méthodes d'optimisation cherchent usuellement à minimiser
332 des mesures quadratiques d'erreurs, car les propriétés naturelles de ces
333 fonctions objectifs sont bien adaptées à l'optimisation classique par gradient.
334 Mais d'autres mesures d'erreurs peuvent être mieux adaptées aux problèmes de
335 simulation de la physique réelle. Ainsi, **une autre manière d'étendre les
336 possibilités d'estimation consiste à utiliser d'autres mesures d'erreurs à
337 réduire**. Par exemple, on peut citer l'**erreur absolue**, l'**erreur
338 maximale**, etc. Ces mesures d'erreurs ne sont pas différentiables, mais
339 certaines méthodes d'optimisation peuvent les traiter: heuristiques et
340 méta-heuristiques pour les problèmes à valeurs réelles, etc. Comme précédemment,
341 le principal désavantage de ces méthodes est un coût numérique souvent bien
342 supérieur pour trouver les estimations d'états, et pas de garantie de
343 convergence en temps fini. Ici, on ne mentionne encore que des méthodes qui sont
344 disponibles dans le module ADAO : l'*optimisation par essaim de particules
345 (Particle Swarm Optimization)* [WikipediaPSO]_.
346
347 Le lecteur intéressé par le sujet de l'optimisation pourra utilement commencer
348 sa recherche grâce au point d'entrée [WikipediaMO]_.