All Projects → AaltoML → boundary-gp

AaltoML / boundary-gp

Licence: Apache-2.0 license
Know Your Boundaries: Constraining Gaussian Processes by Variational Harmonic Features

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language
matlab
3953 projects

Projects that are alternatives of or similar to boundary-gp

Good Papers
I try my best to keep updated cutting-edge knowledge in Machine Learning/Deep Learning and Natural Language Processing. These are my notes on some good papers
Stars: ✭ 248 (+1080.95%)
Mutual labels:  gaussian-processes, variational-inference
Gpstuff
GPstuff - Gaussian process models for Bayesian analysis
Stars: ✭ 106 (+404.76%)
Mutual labels:  gaussian-processes, variational-inference
Gp Infer Net
Scalable Training of Inference Networks for Gaussian-Process Models, ICML 2019
Stars: ✭ 37 (+76.19%)
Mutual labels:  gaussian-processes, variational-inference
Bcpd
Bayesian Coherent Point Drift (BCPD/BCPD++); Source Code Available
Stars: ✭ 116 (+452.38%)
Mutual labels:  gaussian-processes, variational-inference
Gpflow
Gaussian processes in TensorFlow
Stars: ✭ 1,547 (+7266.67%)
Mutual labels:  gaussian-processes, variational-inference
Vbmc
Variational Bayesian Monte Carlo (VBMC) algorithm for posterior and model inference in MATLAB
Stars: ✭ 123 (+485.71%)
Mutual labels:  gaussian-processes, variational-inference
Safe learning
Safe reinforcement learning with stability guarantees
Stars: ✭ 140 (+566.67%)
Mutual labels:  gaussian-processes
Gpytorch
A highly efficient and modular implementation of Gaussian Processes in PyTorch
Stars: ✭ 2,622 (+12385.71%)
Mutual labels:  gaussian-processes
Pysot
Surrogate Optimization Toolbox for Python
Stars: ✭ 136 (+547.62%)
Mutual labels:  gaussian-processes
Aboleth
A bare-bones TensorFlow framework for Bayesian deep learning and Gaussian process approximation
Stars: ✭ 127 (+504.76%)
Mutual labels:  gaussian-processes
GPflow-Slim
customized GPflow with simple Tensorflow API
Stars: ✭ 17 (-19.05%)
Mutual labels:  gaussian-processes
Bayesian Optimization
Python code for bayesian optimization using Gaussian processes
Stars: ✭ 245 (+1066.67%)
Mutual labels:  gaussian-processes
Dynaml
Scala Library/REPL for Machine Learning Research
Stars: ✭ 195 (+828.57%)
Mutual labels:  gaussian-processes
Miscellaneous R Code
Code that might be useful to others for learning/demonstration purposes, specifically along the lines of modeling and various algorithms. Now almost entirely superseded by the models-by-example repo.
Stars: ✭ 146 (+595.24%)
Mutual labels:  gaussian-processes
Keras Gp
Keras + Gaussian Processes: Learning scalable deep and recurrent kernels.
Stars: ✭ 218 (+938.1%)
Mutual labels:  gaussian-processes
Survival Analysis Using Deep Learning
This repository contains morden baysian statistics and deep learning based research articles , software for survival analysis
Stars: ✭ 139 (+561.9%)
Mutual labels:  gaussian-processes
Cornell Moe
A Python library for the state-of-the-art Bayesian optimization algorithms, with the core implemented in C++.
Stars: ✭ 198 (+842.86%)
Mutual labels:  gaussian-processes
Gpmp2
Gaussian Process Motion Planner 2
Stars: ✭ 161 (+666.67%)
Mutual labels:  gaussian-processes
Stheno.jl
Probabilistic Programming with Gaussian processes in Julia
Stars: ✭ 233 (+1009.52%)
Mutual labels:  gaussian-processes
Btb
A simple, extensible library for developing AutoML systems
Stars: ✭ 159 (+657.14%)
Mutual labels:  gaussian-processes

Know Your Boundaries: Constraining Gaussian Processes by Variational Harmonic Features

Arno Solin · Manon Kok

Codes for the paper:

  • Arno Solin and Manon Kok (2019). Know your boundaries: Constraining Gaussian processes by variational harmonic features. In Proceedings of the 22nd International Conference on Artificial Intelligence and Statistics (AISTATS). Naha, Okinawa, Japan. [arXiv] [poster]

Banana classification example with hard decision boundary The effect of increasing the number of inducing features for the banana classification dataset with a hard decision boundary. In each pane, the coloured points represent training data and the decision boundaries are black lines. The outermost line is the pre-defined hard decision boundary.

Summary

We consider constraining GPs to arbitrarily-shaped domains with boundary conditions. We solve a Fourier-like generalised harmonic feature representation of the GP prior in the domain of interest, which both constrains the GP and attains a low-rank representation that is used for speeding up inference. The method scales as O(nm^2) in prediction and O(m^3) in hyperparameter learning for regression, where n is the number of data points and m the number of features. Furthermore, we make use of the variational approach to allow the method to deal with non-Gaussian likelihoods. This repository contains the Matlab codes for constructing the basis functions in arbitrarily-shaped domains, code for simulating constrained GP random draws, and code for solving GP regression. We also provide code in Python for for constructing the basis functions in arbitrarily-shaped domains and doing variational inference for non-Gaussian likelihoods.

Matlab

The Matlab methods are implemented in a rather standalone fashion. The codes have been tested in Mathworks Matlab R2018b with a rich set of standard Mathworks toolboxes installed.

There are some examples in the experiments directory that give some intuition how to run the methods.

Python

We provide an overlapping (but not equal) implementation of the methods in Python. The constructions of the domain basis functions is considerably slower in Python than in Matlab. This is due to lazy coding, so the Python implementation should be seen as proof-of-concept. The variational inference for non-Gaussian likelihood requires GPflow to be installed. We also leverage matrix operations which are from VFF.

There are some examples in the experiments directory that give some intuition how to run the methods.

Install

The boundary GP Python codes for non-Gaussian likelihoods relies heavily on GPflow. After installing GPflow, clone this repo and add the DGP directory to your PYTHONPATH. For example, to make sure you can run the Jupiter notebook examples, consider doing this:

export PYTHONPATH="${PYTHONPATH}:/path/to/codes/python"

License

Copyright 2018-2019 Manon Kok and Arno Solin

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].