gpytorch
gpytorch copied to clipboard
Add Functional Kernel Learning
Hi,
Opening this PR for our NeurIPS paper, Function Space Distributions over Kernels (sorry it's not on arxiv yet). Basically, we parameterize stationary kernels with (latent) Gaussian processes and then do MCMC over the latent Gaussian process while optimizing the hypers.
Done so far:
- Integrate kernels (single dimension and products) within gpytorch.kernels.
- Added quadratic mean class and corresponding LogRBF class.
- Example notebooks for single dimension, multiple dimensions, and multi-task.
- Example notebook demonstrating a SVI implementation using Pyro.
Design choices I'm not sure of:
- Added gpytorch.samplers to include support for elliptical slice sampling as well as sampling factories for our models. We could also ask Pyro to add elliptical slice sampling into their library and then use that implementation instead.
- Above LogRBF class - could be written specifically by the user.
- Our specific spectral initialization requires defining models within the kernel class. See here.
Let me know what changes to make,
Wesley