Markovflow is a research toolbox dedicated to Markovian Gaussian processes.
Markovflow uses the mathematical building blocks from GPflow [vdWDJ+20] and marries these with the powerful linear algebra routine for banded matrices provided by banded_matrices. This combination leads to a framework that can be used for:
researching Markovian Gaussian process models (e.g., [AEA+20, DAB+19, WSA21]), and
building, training, evaluating and deploying Gaussian processes in a modern way, making use of the tools developed by the deep learning community.
We have provided multiple Tutorials showing the basic functionality of the toolbox, and have a comprehensive API Reference.
As a quick teaser, here’s a snippet that demonstrates how to perform classic GP regression for a simple one-dimensional dataset:
# Create a GPR model kernel = Matern32(lengthscale=8.0, variance=1.0) observation_covariance = tf.constant([[0.0001]], dtype=FLOAT_TYPE) input_data = (tf.constant(time_points), tf.constant(norm_observations)) gpr = GaussianProcessRegression(input_data=input_data, kernel=kernel, chol_obs_covariance=tf.linalg.cholesky(observation_covariance)) # Compile and fit opt = tf.optimizers.Adam() for _ in range(100): opt.minimize(gpr.loss, gpr.trainable_variables) print(gpr.log_likelihood())
To install Markovflow using the latest release from PyPI, run
$ pip install markovflow
The library supports Python 3.7 onwards, and uses semantic versioning.
In a check-out of the develop branch of the Markovflow GitHub repository, run
$ pip install -e .
Markovflow is an open source project. We welcome contributions. To submit a pull request, file a bug report, or make a feature request, see the contribution guidelines.
We have a public Slack workspace. Please use this invite link if you’d like to join, whether to ask short informal questions or to be involved in the discussion and future development of Markovflow.
Vincent Adam, Stefanos Eleftheriadis, Artem Artemev, Nicolas Durrande, and James Hensman. Doubly sparse variational gaussian processes. In International Conference on Artificial Intelligence and Statistics, 2874–2884. PMLR, 2020.
Nicolas Durrande, Vincent Adam, Lucas Bordeaux, Stefanos Eleftheriadis, and James Hensman. Banded matrix operators for gaussian markov models in the automatic differentiation era. In The 22nd International Conference on Artificial Intelligence and Statistics, 2780–2789. PMLR, 2019.
Mark van der Wilk, Vincent Dutordoir, ST John, Artem Artemev, Vincent Adam, and James Hensman. A framework for interdomain and multioutput Gaussian processes. arXiv preprint arXiv:2003.01115, 2020.
William Wilkinson, Arno Solin, and Vincent Adam. Sparse algorithms for markovian gaussian processes. In International Conference on Artificial Intelligence and Statistics, 1747–1755. PMLR, 2021.