ApproximateGPs.jl
ApproximateGPs.jl copied to clipboard
Support inter-domain inducing points
Stheno.jl is pretty ideal for this -- if you're after a particular integral transform to construct inducing features, you can just add it there, and then you'll get interdomain stuff without extending your API at all.
For example, if you had the programme:
f = @gppp let
f1 = GP(SEKernel())
f2 = GP(0.1 * LinearKernel())
f3 = f1 + f2
end
z = GPPPInput(:f1, randn(5))
x = GPPPInput(:f3, randn(5))
y = rand(f(x, 0.1))
elbo(f(x, 0.1), y, f(z, 1e-6))
will just work. To be clear, this isn't a very good interdomain approximation, but if you introduced some integral transform my_convolution and had the programme
f = @gppp let
f1 = GP(SEKernel())
f2 = GP(0.1 * LinearKernel())
f3 = f1 + f2
f4 = my_convolution(f3)
end
z = GPPPInput(:f4, randn(5))
x = GPPPInput(:f3, randn(5))
y = rand(f(x, 0.1))
elbo(f(x, 0.1), y, f(z, 1e-6))
you would have something sensible.