OILMMModel#
- class gpjax.models.OILMMModel(num_outputs, num_latent_gps, kernel, key, mean_function=None)[source]#
Bases:
ModuleOrthogonal Instantaneous Linear Mixing Model.
OILMM decomposes multi-output GP inference into M independent single-output GP problems by using an orthogonal mixing matrix. This achieves O(n^3 m) complexity instead of O(n^3 m^3).
The generative model is:
x_i ~ GP(0, K(t,t')) for i=1..M (latent GPs) f(t) = H x(t) (mixing) y | f ~ N(f(t), Sigma) (noise: Sigma = sigma^2 I + H D H^T)
The orthogonality constraint (U^T U = I) ensures the projected noise is diagonal:
Sigma_T = T Sigma T^T = sigma^2 S^(-1) + Denabling independent inference for each latent GP.
- Parameters:
num_outputs (int)
num_latent_gps (int)
kernel (AbstractKernel | list[AbstractKernel])
key (Array)
mean_function (tp.Any)
- mixing_matrix#
OrthogonalMixingMatrix containing H, T, noise params
- condition_on_observations(dataset)[source]#
Condition on observations to create posterior.
This implements the core OILMM inference algorithm: 1. Project observations: y_latent = T @ y 2. Condition M independent GPs on projected data 3. Return OILMMPosterior wrapping the M posteriors
- Parameters:
dataset (Dataset) – Training data with X [N, D] and y [N, P]
- Returns:
OILMMPosterior containing M independent posteriors
- Return type: