Git Product home page Git Product logo

orthogonal-svgp's Introduction

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.

orthogonal-svgp's People

Contributors

oskarfernlund avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.