Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update MICE to use analytical formulae #246

Open
edaub opened this issue Sep 14, 2022 · 0 comments
Open

Update MICE to use analytical formulae #246

edaub opened this issue Sep 14, 2022 · 0 comments

Comments

@edaub
Copy link
Collaborator

edaub commented Sep 14, 2022

Currently, the MICE algorithm uses the old capabilities of GPs and hasn't been adapted for the analytical mean function. This means that the fitting won't work if using a mean function (if just fitting a zero mean it should still be correct).

Updating the algorithm to do MICE naively (i.e. refitting the GP at each step when considering a candidate point) should be straightforward to implement, but will be computationally slow as it requires inverting the covariance matrix for each candidate point. If doing a design with 100 or so candidates (a reasonable number), this can be a significant slowdown.

The old implementation exploits block matrix inversion to improve the fitting performance (this is implemented in the MICEFastGP class). This won't work out of the box on the analytical mean function, as the analytical formulae using the design matrix haven't been updated to exploit the block inversion. Additionally, the inverse of the covariance matrix is never explicitly cached in the current implementation, so an updated version will need to adapt the algorithm to do back-substitution in the solves (or form the inverse explicitly if you can't write the operations using back-substitution).

@edaub edaub added this to Next Release in CPU and GPU development Sep 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

No branches or pull requests

1 participant