RSE-Sheffield / GPy

Gaussian processes framework in python
BSD 3-Clause "New" or "Revised" License
1 stars 0 forks source link

Multiple output LFM kernel #6

Open bobturneruk opened 4 years ago

bobturneruk commented 4 years ago

Check that tests will run against a kernel like this:

RBF X RBF RBF X LFM(1) RBF X LFM(2) RBF X LFM(3) ...
LFM(1) X RBF LFM(1) X LFM(1) LFM(1) X LFM(2) LFM(1) X LFM(3) ...
LFM(2) X RBF LFM(2) X LFM(1) LFM(2) X LFM(2) LFM(2) X LFM(3) ...
LFM(3) X RBF LFM(3) X LFM(1) LFM(3) X LFM(2) LFM(3) X LFM(3) ...
... ... ... ... ...
bobturneruk commented 3 years ago

It is currently possible to build this kernel:

LFM(1) X LFM(1) LFM(1) X LFM(2) LFM(1) X LFM(3) ...
LFM(2) X LFM(1) LFM(2) X LFM(2) LFM(2) X LFM(3) ...
LFM(3) X LFM(1) LFM(3) X LFM(2) LFM(3) X LFM(3) ...
... ... ... ...

and m.optimise() can be run. However, this does not result in any changes to hyperparameter values.

bobturneruk commented 3 years ago

It seems there is no attempt by GPy.models.MultioutputGP to constrain or link parameters across multiple sub-kernels i.e. every sub kernel including LFM(1) should share the parameters of LFM(1) and it appears they do not.