Scientific machine learning (SciML) has emerged recently as an effective and powerful tool for data fusion, solving ordinary/partial differential equations (ODEs, PDEs), and learning operator mappings in various scientific and engineering disciplines. Physics-informed neural networks (PINNs) and deep operator networks (DeepONets) are two such models for solving ODEs/PDEs and learning operator mappings, respectively. Quantifying predictive uncertainties is crucial for risk-sensitive applications as well as for efficient and economical design. NeuralUQ is a Python library for uncertainty quantification in various SciML algorithms. In NeuralUQ, each UQ method is decomposed into a surrogate and an inference method for posterior estimation. NeuralUQ has included various surrogates and inference methods, i.e.,
- Surrogates
- Bayesian Neural Networks (BNNs)
- Deterministic Neural Networks, e.g., fully-connected neural networks (FNNs)
- Deep Generative Models, e.g., Generative Adversarial Nets (GANs)
- Inference Methods
- Sampling methods
- Hamiltonian Monte Carlo (HMC)
- Langevin Dynamics (LD)
- No-U-Turn (NUTS)
- Metropolis-adjusted Langevin algorithm (MALA)
- Variational Methods
- Mean-field Variational Inference (MFVI)
- Monte Carlo Dropout (MCD)
- Ensemble Methods
- Deep ensembles (DEns)
- Snapshot ensemble (SEns)
- Laplace approximation (LA)
- Sampling methods
Users can refer to this paper for the design and description, as well as the examples, of the NeuralUQ library:
Users can refer to the following papers for more details on the algorithms:
- A comprehensive review on uncertainty quantification in scientific machine learning
- UQ for physics-informed neural networks
- UQ for DeepONets
NeuralUQ requires the following dependencies to be installed:
- Python 3.7.0
- Tensorflow 2.9.1
- TensorFlow Probability 0.17.0
Then install with python
:
$ python setup.py install
For developers, you could clone the folder to your local machine via
$ git clone https://github.com/Crunch-UQ4MI/neuraluq.git
NeuralUQ for uncertainty quantification in general neural differential equations and operators:
- NeuralUQ: A comprehensive library for uncertainty quantification in neural differential equations and operators
- Uncertainty quantification in scientific machine learning: Methods, metrics, and comparisons
- Uncertainty quantification for noisy inputs-outputs in physics-informed neural networks and neural operators
NeuralUQ for physical model misspecification and uncertainty:
NeuralUQ for Biomechanical constitutive models with experimental data (inferring model parameters from known model and data; inferring functions from pre-trained GAN and data):
Extensions of NeuralUQ:
@article{zou2024neuraluq,
title={NeuralUQ: A Comprehensive Library for Uncertainty Quantification in Neural Differential Equations and Operators},
author={Zou, Zongren and Meng, Xuhui and Psaros, Apostolos F and Karniadakis, George E},
journal={SIAM Review},
volume={66},
number={1},
pages={161--190},
year={2024},
publisher={SIAM}
}