Skip to content

gp: efficient low-rank inverse update #118

@asher-m

Description

@asher-m

In Gaussian process kriging, it is necessary to compute the inverse of the quantity $k_{XX} + \sigma I$.

As of 4ec65a0, that quantity is computed as a dense inverse every time the conditioning data are updated and stored in the UncertainSCI/gp subpackage for scalar- and vector-valued Gaussian processes respectively as

self.inv = np.linalg.inv(self.k(x) + sigma * np.eye(len(x)))

(here) and

self.inv = np.linalg.inv(self.k(x) + sigma.flatten() * np.eye(len(x) * self.cdim))

(here).

This could be improved by performing a low-rank update of the inverse when new data are added.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions