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

Unscented accelerator #332

Merged
merged 1 commit into from
Oct 13, 2023
Merged

Unscented accelerator #332

merged 1 commit into from
Oct 13, 2023

Conversation

odunbar
Copy link
Collaborator

@odunbar odunbar commented Oct 10, 2023

Purpose

Closes #333

Content

  • Adds the accelerator method to Unscented. This implementation moves the sigma points (as it is the "ensemble") and then saves the reconstructed the mean and covariance from the new sigma point locations. Note one additional subtlety, the saved "u_mean" and "uu_cov" are not just the mean and cov of the sigma points, and so are back calculated
  • Adds unit tests & removed some unnecessary ensemble members / iterations in the accelerator test
  • renames the ambiguous update_state! to accelerate!

Unit test output

Accelerator: DefaultAccelerator Process: Inversion
┌ Info: Convergence:
│   cost_initial = 48.24023862169107
└   cost_final = 4.489933318021739
Accelerator: NesterovAccelerator Process: Inversion
┌ Info: Convergence:
│   cost_initial = 48.24023862169107
└   cost_final = 5.6012259995349245
Accelerator: DefaultAccelerator Process: TransformInversion
┌ Info: Convergence:
│   cost_initial = 48.24023862169107
└   cost_final = 4.434232345531697
Accelerator: NesterovAccelerator Process: TransformInversion
┌ Info: Convergence:
│   cost_initial = 48.24023862169107
└   cost_final = 4.955048376140534
Accelerator: DefaultAccelerator Process: Unscented
┌ Info: Convergence:
│   cost_initial = 53.28933708166123
└   cost_final = 5.84078511368908
Accelerator: NesterovAccelerator Process: Unscented
┌ Info: Convergence:
│   cost_initial = 53.28933708166123
└   cost_final = 6.29489453592627
Accelerator: DefaultAccelerator Process: Sampler
┌ Info: Convergence:
│   cost_initial = 48.24023862169107
└   cost_final = 14.943442588378828
Accelerator: NesterovAccelerator Process: Sampler
┌ Warning: Acceleration is experimental for Sampler processes and may affect convergence.
└ @ EnsembleKalmanProcesses ~/work/EnsembleKalmanProcesses.jl/EnsembleKalmanProcesses.jl/src/EnsembleKalmanProcess.jl:220
┌ Info: Convergence:
│   cost_initial = 48.24023862169107
└   cost_final = 15.733653014250967

  • I have read and checked the items on the review checklist.

@odunbar odunbar force-pushed the orad/uki-mom branch 4 times, most recently from 02b5c03 to 9c5acb3 Compare October 12, 2023 19:52
format

remove verbose

make EKS run with stable timestepper

reduce long-term release as it causes breaking tests

runtest deepcopy schedulers bugfix

unwrap prediction step when saving u_mean, uu_cov

unscented

remove empty method

src/UnscentedKalmanInversion.jl

rm print statement

change func name to accelerate

removed FT for disambiguation

back to 1.6 tests

move Unscented update into accelerators
Copy link
Contributor

@eviatarbach eviatarbach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@odunbar
Copy link
Collaborator Author

odunbar commented Oct 13, 2023

bors r+

@bors
Copy link
Contributor

bors bot commented Oct 13, 2023

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot merged commit 52d14d0 into main Oct 13, 2023
13 checks passed
@bors bors bot deleted the orad/uki-mom branch October 13, 2023 20:08
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 this pull request may close these issues.

Implementation of UKI acceleration based on sigma point movement
2 participants