-
Notifications
You must be signed in to change notification settings - Fork 17
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
Implement Stochastic Update #230
Comments
Proposed Solution: |
@costachris Thank you for the great effort! Yes, in my implementation, |
Yeah looks good, Implementing this within each process If you wanted to be slick, you could instead change the function update_ensemble!(ekp, ..., stoch_flag, contraction_flag)
new_ensemble = update_ensemble!(ekp, ... , get_process(ekp))
new_ensemble = stoch_flag ? stochastic_update!(new_ensemble, ...) : new_ensemble
new_ensemble = contraction_flag ? contract!(new_ensemble, ...) : new_ensemble
end or something, but I understand if this is too much out of scope! |
I am concerned about enforcing |
@Zhengyu-Huang is there a way around this or does this implementation have to be used without batching? Is the only reason |
To summarize our meeting,
Optional: add the option in the additive inflation, to add a scaled prior covariance (i.e. where |
Aim: Add functionality to perform stochastic updates (in parameter space) with contraction. Update option should be available across all
$$u_{n+1} = a*u_n + xi_{n} \qquad (1)$$
EnsembleKalmanProcesses
and take the from:Stochastic Ensemble Kalman Update
The stochastic modification changes the prediction step in the following manner (Huang et al. 2022 eqn. 41)
where$m$ is the ensemble average and $\Delta \tau$ is a hyperparameter lying in the range $(0, 1)$ . The RHS of equation 2 is equivalent to adding random noise directly, and equates to $xi_{n}$ in eqn. 1. The forward map $G$ must be computed after the prediction step (eqn. 2) before the analysis step (updating covariance estimate Cov(G, G), Cov(u, G), etc.)
The text was updated successfully, but these errors were encountered: