UQLab Une plate-forme pour la quantification des incertitudes sous Matlab Bruno Sudret Stefano Marelli ETH Zürich, Institute of Structural Engineering Chair of Risk, Safety & Uncertainty Quantification Stefano-Franscini-Platz 5 CH-8093 Zürich sudret@ibk.baug.ethz.ch RÉSUMÉ. On présente une nouvelle plate-forme de traitement des incertitudes développée dans l environnement MATLAB. Cette plate-forme a vocation à diffuser le plus largement possible la culture incertitudes auprès des étudiants, ingénieurs et chercheurs du domaine, en offrant différents niveaux d utilisation, du débutant au développeur confirmé. Rassemblant dans un environnement unique les techniques de propagation des incertitudes les plus modernes (méthodes de fiabilité, chaos polynomial, krigeage, analyse de sensibilité globale, etc.), elle est d emblée développée pour le calcul haute performance. Conçue dans une philosophie open source, elle a vocation à s enrichir des contributions de la communauté. ABSTRACT. A new computational platform for uncertainty quantification (UQ) in engineering is presented. It aims at disseminating the good practices of UQ towards students, field engineers and researchers by offering different levels of usage from the beginner to the advanced developer. It gathers in a single, consistent frame many state-of-the-art UQ techniques including reliability methods, polynomial chaos expansions, kriging and global sensitivity analysis while being natively developed for high performance computing. It is conceived as an open source software which shall be open to contributions from the community. MOTS-CLÉS : quantification des incertitudes, logiciel, MATLAB, fiabilité, chaos polynomial. KEYWORDS: uncertainty quantification, software, MATLAB, structural reliability, polynomial chaos expansions.
2 8èmes Journées Fiabilité des Matériaux et des Structures. 1. Introduction Dans de nombreux domaines de l ingénierie moderne, la simulation numérique est devenue un outil incontournable permettant de modéliser le comportement des systèmes complexes, de façon à optimiser leur dimensionnement, valider leur performance ou encore prévoir leur évolution dans le temps. La quantification des incertitudes en ingénierie est une discipline émergente à la frontière de la simulation numérique, des mathématiques appliquées, des statistiques et des probabilités, qui s intéresse à l impact des incertitudes et des méconnaissances sur les prédictions fournies par les modèles. Elle recouvre des champs de recherche historiquement distincts, dont la fiabilité des structures, l analyse de sensibilité globale, l optimisation robuste ou encore les méthodes de calibration basées sur des techniques bayésiennes [4]. En termes de recherche, les développements récents sont portés par une communauté académique très large d ingénieurs, de statisticiens et de mathématiciens appliqués, qui ont parfois leur propre vocabulaire. En termes d outils, de nombreuses librairies libres comme FERUM [2] et OpenTURNS [1] existent, ainsi que des logiciels commerciaux comme PhimecaSoft, COSSAN ou Nessus (voir une revue dans [3]). À ce jour cependant, aucune solution existante ne permet d aborder l ensemble des problématiques mentionnées plus haut. Par ailleurs, aucun de ces logiciels n est conçu pour être facilement étendu par la communauté de l ingénierie, soit parce qu il s agit d une solution commerciale fermée, soit parce que le logiciel est basé sur des langages complexes, orientés objet comme C++ ou Python, qui bien qu étant d utilisation croissante, restent l apanage de programmeurs confirmés. De façon à fournir une solution alternative permettant à la fois une utilisation aisée pour l enseignement et les applications industrielles, et une architecture ouverte et extensible pour la recherche, la Chaire Risk, Safety and Uncertainty Quantification de l ETH Zürich a lancé la plate-forme de traitement des incertitudes UQLAB (Uncertainty Quantification in MATLAB) Les objectifs principaux du projet UQLAB sont les suivants : proposer un ensemble d outils pour la quantification d inceritudes en ingénierie dans un environnement homogène et facile d accès ; faciliter la prise en main de la plate-forme par différents publics, de l étudiant au chercheur confirmé en passant par l ingénieur de calcul ; proposer une architecture modulaire qui puisse être utilisée pour de nouveaux développements algorithmiques par des ingénieurs sans connaissance approfondie du calcul scientifique ; permettre un couplage facile à des codes de calcul externes (e.g. par éléments finis) considéré comme des boîtes noires ; permettre l utilisation quasi-transparente de moyens de calcul haute performance (HPC). Partant de ces différentes contraintes, le choix s est porté vers l environnement de développement MATLAB, largement utilisé dans la recherche académique, pour
Quantification d incertitudes avec UQLab 3 l enseignement, mais également dans les chaînes de calcul industrielles à haute valeur ajoutée. 2. Du cadre théorique à l implémentation 2.1. Quantification des incertitudes L architecture de la plate-forme s appuie sur la méthodologie de quantification des incertitudes aujourd hui largement acceptée par la communauté scientifique [4] et résumée ci-dessous (Figure 1). Figure 1. Méthologie de traitement des incertitudes en simulation numérique Une fois défini le modèle de simulation du système (étape A), on introduit un modèle probabiliste des paramètres d entrée (étape B : lois marginales et structure de dépendance (copule)). La propagation des incertitudes (étape C) permet de quantifier de façon probabiliste les quantités d intérêt à travers les moments statistiques, la distribution de probabilité ou encore, dans le cadre d une analyse de fiabilité, la probabilité de défaillance associée à un seuil admissible. L étape C de hiérarchisation des incertitudes vise à déterminer quels sont les paramètres d entrée dont l incertitude a le plus d influence sur les quantités d intérêt. 2.2. Architecture de UQLAB L architecture du cœur de UQLAB suit les grandes lignes de la méthodologie rappelée précédemment à travers la définition de modules interagissant entre eux autour d un portail ( gateway en anglais), comme représenté Figure 2. Compte tenu des objectifs de flexibilité et d extensibilité fixés en introduction, la plate-forme UQLAB est conçue comme un environnement de calcul plutôt qu un simple package MATLAB. En particulier, elle a vocation à proposer un cadre de développement informatique facile d accès plus que tel ou tel nouvel algorithme. Chacune des trois étapes de la méthodologie incertitudes correspond à un module particulier : l étape A (modélisation physique) correspond ici au module MODEL, qui contient le modèle de simulation d intérêt ;
4 8èmes Journées Fiabilité des Matériaux et des Structures. Figure 2. Architecture de UQLAB : différents modules connectés au GATEWAY, chacun pouvant avoir plusieurs instances. l étape B (quantification des sources d incertitudes) correspond au module IN- PUT, qui contient la description probabiliste des paramètres d entrée ; l étape C (propagation des incertitudes) correspond au module ANALYSIS ; d autres modules auxiliaires tels que DISPATCHER et WORKFLOW sur la figure 2 permettent de gérer différentes actions complémentaires au cours d une analyse. Chaque module a plusieurs connections, l une avec le portail central, GATEWAY et un nombre arbitraire de sous-modules ou instances, e.g. Input1, Input2, etc. Le portail GATEWAY est une entité unique présente en permanence en mémoire et accessible depuis n importe quel endroit : il permet d avoir accès à toutes les données de chaque module depuis n importe quel fichier MATLAB une fois que l environnement UQLAB est lancé. Les instances des modules permettent de faire coexister sans ambiguités au sein d une même étude différents modèles probabilistes (e.g. Input1, Input2, etc.), différents modèles de simulation (e.g. Model1 pour un modèle aux éléments finis, Model2 pour une surface de réponse, etc.) et différentes analyses (e.g. Analysis1 pour une analyse de fiabilité, Analysis2 pour une analyse de sensibilité, etc.). Une analyse classique d incertitudes (e.g. une simulation de Monte Carlo pour évaluer la fiabilité d un système dont la performance est modélisée par une fonction codée dans un fichier MATLAB) va donc requérir (a minima) d instancier les trois modules suivants : un module MODEL qui contiendra les informations nécessaires pour évaluer la performance ;
Quantification d incertitudes avec UQLab 5 un module INPUT, qui contient un ensemble de lois marginales pour chacun des paramètres d entrée du problème, ainsi que leur structure de dépendance représentée dans le formalisme des copules ; un module ANALYSIS, qui contient les paramètres pour la simulation de Monte Carlo et le calcul de la probabilité de défaillance. Une fois les différents modules instanciés, l analyse est lancée et les résultats sont disponibles dans un objet présent dans l espace de travail MATLAB. Il est ensuite possible de modifier chacun des ingrédients, i.e. remplacer le modèle probabiliste IN- PUT1 par INPUT2, changer de modèle de simulation (par exemple, en construisant de façon intermédiaire un méta-modèle), ou encore relancer l analyse de fiabilité avec une autre méthode de calcul. A tout instant, les différentes instances des modules sont accessibles en mémoire, et les résultats des analyses effectuées précédemment sont disponibles, ce qui permet une comparaison facile des résultats et des post-traitement graphiques immédiats. Le module WORKFLOW permet de gérer de façon non ambigüe l existence concommittante de plusieurs modèles probabilistes, de simulation ou encore plusieurs analyses. Il est alors possible de gérer en parallèle un nombre arbitraire de workflows. L analyste peut par exemple relancer plusieurs fois la même analyse en changeant simplement une valeur d un paramètre, un type de loi de probabilité, ce qui rend immédiat toute forme d étude paramétrique. Cette fontionnalité devient encore plus utile lorsque l utilisateur a accès à une plate-forme distante de calcul haute performance, e.g. un cluster de processeurs. Une fois l analyse prototypée localement sur son poste de travail, il peut définir un module DISPATCHER qui contiendra toutes les informations requises pour l accès distant au cluster. Par défaut le DISPATCHER est local, ce qui signifie que le program s exécute dans la session MATLAB courante sans modifications. Pour relancer son analyse sur un cluster, l ingénieur peut définir un autre type de dispatcher, correspondant par exemple à la séquence ssh+cluster+queuing, qui permet d abord de se connecter au serveur de calcul distant par une connection ssh, de copier les données nécessaires au calcul sur la machine distante, de créer les scripts locaux nécessaire (i.e. interface avec la queue de calcul), de lancer l analyse et d assembler les résultats (en cas de dispatch multi-processeur) avant de ramener les calculs sur la machine de départ. Quelle que soit la complexité du management du serveur de calcul, cette partie est gérée de façon complètement indépendante du problème de quantification d incertitudes par l intermédiaire du DISPATCHER : en d autres termes, un ingénieur qui souhaiterait relancer une étude existante avec un nouveau moyen de calcul HPC n aurait qu à définir le nouveau DISPATCHER ad hoc, le reste de la mise en données restant inchangée. 2.3. L implémentation en MATLAB La raison d être de la plate-forme UQLAB est de permettre la diffusion des techniques de quantification des incertitudes à un large public, de l étudiant à l ingénieur
6 8èmes Journées Fiabilité des Matériaux et des Structures. au chercheur de la discipline. Le langage de programmation MATLAB est apparu comme le meilleur compromis entre la facilité d utilisation, la puissance des commandes built-in et la performance, sous réserve de choisir une architecture de développement adaptée. Ainsi, le cœur de la plate-forme présentée en Figure 2 est codée en langage objet. Le GATEWAY est l implémentation MATLAB du pattern objet singleton, ce qui garantit son unicité et son accès depuis n importe quelle routine par l intermédiaire d une variable globale protégée. Chaque module est un objet qui contient uniquement les informations relatives aux sous-modules existants et les méthodes pour les ajouter, activer et supprimer. Au final, le GATEWAY et les modules sont un ensemble de pointeurs qui ne requièrent qu un espace mémoire négligeable. Chaque instance de module est un objet qui contient toutes les données nécessaires pour réaliser les tâches relatives à cet objet. Par exemple, un module INPUT contient toutes les informations sur les densités de probabilité marginales et la structure de dépendance entre les paramètres d entrée de façon à pouvoir générer un échantillon de taille fixée. Un module MODEL permet d évaluer la réponse du modèle de simulation pour un jeu de paramètres d entrée fourni. De par la structure modulaire de la plateforme, il est possible de réaliser des tests de diagnostics sur tout nouvel objet à sa création, ou d implémenter des fonctionnalités plus avancées tels que les call backs ou les event listeners. 2.4. Un modèle de développement collaboratif Le projet UQLAB se veut dès l origine ouvert et collaboratif, de façon à assurer une large diffusion de la culture incertitudes dans le monde de la recherche académique et dans l ingénierie. En conséquence, on prévoit que différents types d utilisateurs / développeurs, ayant des contraintes et des attentes différentes, veuillent s approprier la plate-forme avec la même facilité. Plus précisément, on distingue deux niveaux : l utilisateur final est intéressé par le contenu scientifique actuel de la plateforme, c est-à-dire un ensemble d algorithmes state-of-the-art et performants pour la quantification d incertitudes, présentés dans un environnement cohérent et simple d utilisation. Ce type d utilisateurs connaît les principes de la quantification d incertitudes, mais n a pas nécessairement des connaissance poussées en programmation. Les nombreux exemples de la documentation doivent lui permettre de trouver le bon point de départ (e.g. un exemple d analyse similaire à son problème), qu il pourra modifier ensuite à sa guise. C est le profil typique de l étudiant de master ou de l ingénieur d étude dans l industrie ; le développeur scientifique est un scientifique possédant une connaissance avancée des méthodes de quantification d incertitudes. Il est intéressé par les algorithmes existants, mais surtout par la possibilité de prototyper lui-même ses propres algo-
Quantification d incertitudes avec UQLab 7 Figure 3. Système de management de contenus de la plateforme UQLAB (branche contrib) rithmes à partir des briques disponibles. C est le profil typique du doctorant ou du chercheur en milieu académique ou industriel. 1 La plate-forme UQLAB offre également des possibilités de développement collaboratif calqué sur la classification précédente. Pour ce faire, un système de management de contenus (CMS, content management system) est proposé, qui rend aisé le développement de ses propres analyses, algorithmes, etc. mais aussi leur éventuelle diffusion ultérieure à la communauté (Figure 3). Trois niveaux de code sont disponible pour chaque module, à savoir built-in (le code de la version officielle diffusée de UQLAB), contrib (les codes proposés par d autres utilisateurs, et libres d utilisation sans garantie) et external. La structure du CMS permet l incorporation facile de codes pré-existants qui fourniraient des algorithmes non encore disponibles dans la version officielle de UQLAB. Il est possible d interfacer ces bibliothèques en écrivant un wrapper du code à intégrer, qui permet de transformer les données d entrée de UQLAB au format d entrée de ce code, de lancer l analyse et de reformatter les résultats au format UQLAB. A titre d exemple, et de façon à pouvoir valider les algorithmes nouvellement développés dans UQLAB, la toolbox FERUM [2] a été intégrée à la plate-forme (de façon à pouvoir comparer dans un environnement unique les résultats de fiabilité fournis par nos propres algorithmes à ceux de FERUM). A noter que des codes en langage différent peuvent également être interfacés : c est déjà le cas pour les toolbox DiceKriging et sensitivity implémentées en R. 2.5. Fonctionnalités La première version diffusée de la plateforme UQLAB au premier semestre 2014 contient les fonctionnalités suivantes, regroupées par type de module. 1. Il est à noter que le développement du cœur de l architecture s adresse à un troisième profil, le core developer, qui doit avoir de solides connaissances en informatique (programmation orientée objet, gestion de la mémoire) et calcul haute performance. Dans l immédiat, seule l équipe de développement de l ETH appartient à ce profil.
8 8èmes Journées Fiabilité des Matériaux et des Structures. Module INPUT lois de probabilité : uniform, Gaussian, lognormal, beta, Student, Gamma, Weibull, Gumbel, constant copule : independent, Gaussian, Student distributions tronquées (issues des lois précédentes) transformation isoprobabiliste de Nataf méthodes d échantillonnage : Monte Carlo, Latin Hypercube Sampling, suites de Sobol et Halton Module MODEL fonctions simples sous forme de chaînes de caractères fonctions (vectorisées ou non) MATLAB méta-modèles : chaos polynomial de Legendre et Hermite, classique et creux, méthodes de calcul des coefficients par moindres carrés (régression), LARS, ou projection (sparse grids) ; krigeage ordinaire avec noyau exponentiel, gaussien et de Matern, tendance polynomiale de degré quelconque, ajustement des paramètres par maximum de vraisemblance ou validation croisée, algorithmes d optimisation BFGS, génétique ou hybride. wrapper du package R DiceKriging Module ANALYSIS/Reliability Monte Carlo classique FORM, SORM tirage d importance subset simulation wrapper du package MATLAB FERUM Module ANALYSIS/Sensitivity Méthode de Morris Corrélation entrée/sortie, coefficients SRC Indices de Sobol par simulation de Monte Carlo et par chaos polynomial 3. Application : treillis élastique On considère le treillis élastique représenté sur la Figure 4 [4]. Les incertitudes sont modélisées par dix variables aléatoires d entrée, dont les distributions, les moyennes et les écarts-types sont répertoriés dans le tableau ci-dessous. On s intéresse à la fiabilité en service vis-à-vis de la flèche maximale admissible v max. La fonction de performance s écrit : g(x) = v max M EF (X) 0, v max = 13 cm
Quantification d incertitudes avec UQLab 9 Variable Distribution Moyenne Écart-type E 1, E 2 (MPa) Lognormale 210 000 21 000 A 1 (cm 2 ) Lognormale 20 2 A 2 (cm 2 ) Lognormale 10 1 P 1 P 6 (kn) Gumbel 50 7,5 Figure 4. Treillis élastique modèle éléments finis et modèle probabiliste où M EF (.) est la flèche maximale calculée par éléments finis. La probabilité de défaillance est évaluée par la méthode FORM suivie d un tirage d importance de 10 4 points autour du point de conception. La mise en donnée est résumée sur la Figure 5 et se lit comme suit : initialisation de la plate-forme par la commande uqlab, définition des lois marginales et création du modèle probabiliste myinput, création du modèle mécanique (routine uq_truss), définition du type d analyse (uq_reliability, tirage d importance (IS) avec 10 4 points), lancement de l analyse. Figure 5. Code UQLAB pour (a) l analyse de fiabilité par FORM puis tirages d importance ; (b) l analyse de sensibilité par construction d un chaos polynomial On souhaite maintenant réaliser une analyse de sensibilité (calcul des indices de Sobol ) à partir d une surface de réponse de type chaos polynomial [5]. On définit pour ce faire un méta-modèle à partir d un plan d expérience LHS de 200 points dont les coefficients sont post-traités pour le calcul des indices de Sobol. On souhaite par ailleurs se connecter à un cluster de calcul et lancer en parallèle sur 4 nœuds de calcul l évaluation du plan d expériences. Le code nécessaire pour cette analyse est donné Figure 5-(b), qui peut être directement inséré à la suite du code de la colonne de gauche.
10 8èmes Journées Fiabilité des Matériaux et des Structures. Les paramètres de connection sont contenus dans le fichier credentials.txt, les ingrédients nécessaires à la création du chaos polynomial sont donnés dans l objet MetaOpts. L évaluation proprement dite des coefficients du chaos est réalisée par uq_calculate_metamodel. On définit ensuite une analyse de sensibilité sur le MO- DEL courant utilisé (qui est maintenant PCModel). Comme il s agit d un modèle de type chaos polynomial, la plate-forme fournit directement les indices de Sobol calculés à partir des coefficients. 4. Conclusions La quantification d incertitudes dans la simulation numérique est un challenge majeur pour l ingénierie du XXIème siècle. Si la recherche de la dernière décennie a été très prolifique dans ce domaine, la mise en application des méthodes numériques performantes pour des applications industrielles se heurte encore à différentes barrières, notamment logicielle : packages libres issus de la recherche n offrant qu un type particulier d algorithmes, pas facilement interfaçables ; solutions commerciales fermées et pas toujours au fait des algorithmes les plus modernes. Pour faire la jonction entre enseignement, industrie et recherche, une nouvelle plate-forme baptisée UQLAB est en cours de développement à l ETH Zurich, qui vise à rassembler dans un environnement unique (MATLAB) les meilleures techniques, permettre de les appliquer très rapidement à des problèmes standards et prototyper de nouveaux algorithmes. 5. Bibliographie Andrianov G., Burriel S., Cambier S., Dutfoy A. et al. «Open TURNS, an open source initiative to Treat Uncertainties, Risks N Statistics in a structured industrial approach», Proc. ESREL 2007 Safety and Reliability Conference, Stavenger, Norway, 2007. Bourinet J.-M., Mattrand C., Dubourg V., «A review of recent features and improvements added to FERUM software», Proc. ICOSSAR 09, Int Conf. on Structural Safety and Reliability, Osaka, Japan, 2009. Schuëller, G.I. (Editor), «General-purpose softwares for structural reliability analysis», Structural Safety, vol. 28, n o 1-2, 2006. Sudret B., «Uncertainty propagation and sensitivity analysis in mechanical models Contributions to structural reliability and stochastic spectral methods», Habilitation à diriger des recherches, Université Blaise Pascal, Clermont-Ferrand, France, 2007. Sudret B., «Global sensitivity analysis using polynomial chaos expansions», Reliab. Eng. Sys. Safety, vol. 93, 2008, p. 964 979.