Spatiotemporal GP exploiting Kronecker Structure #2367
-
I have a multi-task problem where I would like to model two correlated tasks as a function of temporal variables and spatial features (10 and 2 dimensions, respectively). This is loosely related to #1048, #1590, and #1429. Independently, I found the covariance structure that works best for spatial and temporal features. Neither is fit with a single base kernel, but rather a composite kernel with either additive or product structure. I now want to take the Kronecker product of these two (potentially nonstationary) kernel functions. Is this doable? I tried the SKIP method but ran into issues while trying to use more than one base kernel (and did not see multi-task support). Is there a way to do this within the SKIP framework? I first tried this which resulted in
The following works (and is the only way I know of doing this non-independent multitask), but I can't tell if we're exploiting the Kronecker structure in the process.
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
To inspect what solve strategy
For solving, there are two ways the kronecker structure can be exploited by
To combine two kernels via the product, you might want to have a look at |
Beta Was this translation helpful? Give feedback.
To inspect what solve strategy
linear_operator
uses, you can use a debugger and step into the code - I am not aware of any better approach. Your entry point can be thelog_prob()
function inMultivariateNormal
.linear_operator
supports two solve strategies: Modified conjugate gradients (paper) and Cholesky decomposition. It switches from Cholesky to CG based on the size of the LinearOperator. This can be controlled viagpytorch.settings.max_cholesky_size(...)
.For solving, there are two ways the kronecker structure can be exploited by
linear_operator
:KroneckerProductLinearOperator
, it will exploit the Kronecker structure directly and compute the sol…