EnsembleKalmanProcesses.jl icon indicating copy to clipboard operation
EnsembleKalmanProcesses.jl copied to clipboard

Feature/multilevel

Open ArneBouillon opened this issue 1 year ago • 0 comments

Purpose

Add multilevel Monte Carlo simulation to EKI.

This technique uses a hierarchy of accuracy levels to the forward model. Most EKI particles will use coarse, cheap models, while only a few need to simulate the full-resolution model.

To-do

This PR is a proof of concept. I have attempted an implementation that is as non-intrusive as possible, but there are many ways to implement our MLMC algorithm, so I can adapt to feedback by the maintainers. This draft PR serves to gauge whether EKP.jl is interested in multilevel particle methods, while at the same time showing that implementing this is feasible. The implementation is not documented yet; if the maintainers decide that MLMC is desirable, I will of course add documentation.

MLMC, as proposed in the paper linked above, also applies to other particle methods such as EKS. This proof of concept is purposefully limited to EKI.

Content

  • A LevelScheduler object assigns levels to each particle in the ensemble. When evaluating the forward model in a particle, the corresponding level determines the minimum accuracy for the forward-model evaluation.
  • The random noise used throughout EKI needs to be correlated for specific particles in the ensemble (see paper). This is also dictated by the LevelScheduler.

Summary

I would like to contribute an implementation of the MLMC approach to simulation particle methods, which is detailed in our recent paper. This draft PR

  • asks whether EKP.jl is interested in this feature, and
  • provides a proof-of-concept implementation to demonstrate the feasibility of MLMC within the existing codebase.

ArneBouillon avatar May 17 '24 09:05 ArneBouillon