Skip to content

Implementing non-stationary gibbs kernel #372

Open
@Cyberface

Description

@Cyberface

Hi,

I'm new to Julia and Gaussian processes but recently came across a couple of interesting papers about non-stationary spectral mixture kernels [1], [2]. I can see that you have apready implemented a spectral mixture kernel here (As a side note I couldn't figure out how to get that to work)

I'm interested in trying to implement this but starting off small so just try to implement one part of this first which would be the input-dependent lengthscale kernel called the Gibbs kernel [3] which can be more easily see in [1] just before equation 7. (Just found another reference also here [4]).

I just took a screenshot from a talk that describes this so you can clearly see the difference between the typical RBF type kernel and this variable length-scale kernel.

kernel

Basically if you take the length-scale parameter from a Squared-Exponential Kernel and turn this into a function that depends on the input coordinates then you get a non-stationary kernel called the "Gibbs kernel".

The variable length-scale kernel has a learnable function \ell(x) which in [1] they parameterise by another GP.

Can anyone help me implementing this? From reading how KernelFunctions works this looks like it could be done easily using some kind of Transforms?

Thanks in advance for any help!

[1]: Non-Stationary Spectral Kernels
[2]: Neural Non-Stationary Spectral Kernel
[3]: Gibbs 1997
[4]: Nonstationary Covariance Functions for
Gaussian Process Regression (NIPS 2004)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions