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

Include Impose-prior versions of EKP. (a.k.a infinite-time EKI) #437

Closed
odunbar opened this issue Jan 13, 2025 · 0 comments · Fixed by #444
Closed

Include Impose-prior versions of EKP. (a.k.a infinite-time EKI) #437

odunbar opened this issue Jan 13, 2025 · 0 comments · Fixed by #444

Comments

@odunbar
Copy link
Member

odunbar commented Jan 13, 2025

Issue

This results from discussions 4.4 and 4.5 in https://arxiv.org/pdf/2209.11371
The current methodology for EKI / ETKI is built on the formulation of finite-time transport, which provides a nice fast algorithm but with two restrictions
(1) The solution interpretation is only approximately Bayesian only at T=1, (Good if we don't trust priors and so iterate beyond)
(2) The initial ensemble must be sampled from the prior (Bad if prior is very broad / poorly sampled / model is unstable)

The infinite-time variant on the other hand has other properties
(1) It reaches the Bayesian solution at T = infty (good if we do trust priors and want a proper Bayesian solution)
(2) The initial ensemble and the prior are decoupled

Current set-up

The infinite-time variant, can be set-up with modifications from the finite-time setup. (currently can be done in our package via:)
(1) constructing an extended forward map and data such that

  • G(u) -> [G(u),u]'
  • y -> [y,m]'
  • Gamma -> [Gamma 0; 0 C]

addresses the incorrect minimum as the MLE

(2) use covariance inflation with the current covariance matrix: [Check the exact option]
update_ensemble1(... ,additive_inflation = true, additive_inflation_cov = cov(u,dims=2))

addresses collapse resulting in poor convergence

Particularly with (1) this is quite restrictive.

Possible Solution

  • The user can optionally add a prior in the Inversion and/or TransformInversion object
  • an impose_prior=true flag will be used to extend the state inside the EKI/ETKI update
  • investigate whether inflation should be added internally, else is it better to prompt the user to add the correct covariance inflation to ensure quick convergence

Misc

  • compute_error! will need to include the prior term
  • adaptive scheduler computations may require the prior term
  • and possible index issues for update-groups
@odunbar odunbar changed the title Include Tikhonov-prior versions of EKP. Include Impose-prior versions of EKP. (a.k.a infinite-time EKI) Feb 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant