Monotone Parameterization Toolkit (MParT) Library

A C++ package for computational measure transport, with significant abilities regarding lower triangular transport maps. This package allows for quickly integrating transport maps in scientific code with the objective of performing well on both CPU and GPU compute resources. For testing and training maps in a research setting, there are bindings in Python, Julia, and MATLAB built around the common MParT base, which give nearly the same performance with the flexibility of the user's favorite language.

See software website

MIT Uncertainty Quantification (MUQ) Library

MUQ (MIT Uncertainty Quantification) is a C++/Python library for uncertainty quantification—in particular, for connecting complex models with UQ tools in a way that exposes model structure to the algorithms. MUQ is designed both for use by application scientists and engineers and as a platform for algorithm developers. It currently includes a wide variety of UQ capabilities: advanced Markov chain Monte Carlo algorithms for inference; approximation methods for computationally intensive likelihoods and forward models; adaptive methods (e.g., sparse polynomial approximations) for uncertainty propagation, global sensitivity analysis, and surrogate construction; and many others. MUQ optimizes UQ workflows through the use of directed acyclic graphs for dependency management. The underlying dependency graph enables structure-exploiting algorithms to cache and share information in a relatively transparent fashion. MUQ also operates seamlessly with packages such as FEniCS, libMesh, SUNDIALS, and NLopt.

See software website


TransportMaps is a Python (2.7/3.x) package for the construction of deterministic multi-dimensional couplings, induced by transport maps, between distributions. These couplings can be used for robust, fast, and accurate integration with respect to the complex distributions arising in Bayesian statistical models. They can also be used for density estimation and for sequential inference in state space models (e.g., data assimilation). The transport map method allows for an effective control over the accuracy of the inference, the parallel generation of Monte Carlo samples and quadrature rules, and the design of algorithms that make use of low-dimensional structure.

See software website

Relevant publications
M. Parno, T. Moselhy and Y. M. Marzouk, A multiscale strategy for Bayesian inference using transport maps, SIAM/ASA Journal on Uncertainty Quantification, 4 (2016), pp. 1160–1190.
Y. M. Marzouk, T. Moselhy, M. Parno and A. Spantini, Sampling via Measure Transport: An Introduction, in Handbook of Uncertainty Quantification, Springer International Publishing, Cham, 2016, pp. 1–41.

GPEXP: Experimental Design for Gaussian Process Regression in Python

GPEXP is a software package, written in python2.7, for performing experimental design in the context of GP regression. Experimental design may be performed for a variety of cost function specifications. Currently supported cost functions include those based on integrated variance, conditional entropy, and mutual information. GPEXP may also be used for general purpose GP regression. Currently supported kernels include the isotropic and anisotropic squared exponential kernel, the isotropic Matern kernel, and the Mehler kernel. Additional kernels may be easily specified. GPEXP also includes optimization routines for estimating kernel hyperparameters from data.

View on Github

NOWPAC (Nonlinear Optimization With Path-Augmented Constraints)

NOWPAC is a software package for derivative-free nonlinear constrained local optimization. The code is based on a trust region framework using surrogates of minimum Frobenius norm type for the objective function and the constraints. The code does not require gradient information and is designed to work with only black-box evaluations of the objective function and the constraints. In addition to the optimization procedure, NOWPAC provides a noise detection tool which identifies inaccurate black-box evaluations that might corrupt the optimal result or prevent the optimization procedure from making further progress.

View on Bitbucket

Relevant publications