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 physics-informed Kolmogorov-Arnold networks (PIKANs):
NeuralUQ for Biomechanical constitutive models with experimental data (inferring model parameters from known model and data; inferring functions from pre-trained GAN and data):
NeuralUQ for learning and discovering multiple solutions:
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}
}
NeuralUQ was developed by Zongren Zou and Xuhui Meng under the supervision of Professor George Em Karniadakis at Brown University between 2022 and 2024, with helpful discussion and invaluable support from Dr. Apostolos F Psaros and Professor Ling Guo. The project is currently maintained by Zongren Zou at California Institute of Technology and Xuhui Meng at Huazhong University of Science and Technology.