oskarfernlund / orthogonal-SVGP

Orthogonal sparse variational Gaussian processes (SVGP's) in TensorFlow.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

image

Orthogonal sparse variational Gaussian processes (SVGP's) in TensorFlow.

Orthogonal methods [1,2] extend standard SVGP approaches [3] by splitting the inducing points learned by the model into two orthogonal sets with structured covariance. The resulting approximate posterior can be decomposed into several independent (orthogonal) Gaussian processes and both training and prediction involves reduced complexity matrix operations as compared with standard SVGP. This project implements an orthogonal SVGP framework using GPflow/TensorFlow and explores whether orthogonal methods are indeed able to provide high quality posterior approximations with fewer inducing points than standard SVGP methods and/or at reduced computational cost.

Dependencies

This project relies heavily on GPflow, as well as NumPy, Matplotlib, Jupyter, TensorFlow and TensorFlow Probability. Note that TensorFlow Probability releases are tightly coupled to TensorFlow; please ensure that the TensorFlow and TensorFlow Probability versions you have installed are compatible. You may wish to manually install an older version of TensorFlow Probability to address compatibility issues. Properly installing TensorFlow depends on your operating system and hardware, but a sample environment.yml file containing complete project dependencies may be found in the env/ directory which can be used to set up the environment with Anaconda for M1 Mac users.

$ cd env/
$ conda env create -f environment.yml

Contributors & Acknowledgements

All source code was written by Oskar Fernlund at Imperial College London in support of his 2022 Master's thesis. Implementation of the orthogonal framework depends heavily on GPflow and roughly follows its model API. For a complete list of GPflow contributors, see GPflow's GitHub page. Many thanks to Mark van der Wilk and Anish Dhir for all their insightful feedback and support.

License

Use and distribution of the source code is covered by the Apache-2.0 license.

About

Orthogonal sparse variational Gaussian processes (SVGP's) in TensorFlow.

License:Apache License 2.0


Languages

Language:Jupyter Notebook 93.4%Language:Python 6.6%