-
Notifications
You must be signed in to change notification settings - Fork 0
As/emulate sample with nn hmc #2
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
base: main
Are you sure you want to change the base?
Conversation
Does the example produce a posterior eestimate? What is it? |
Epic! What do the bimodal results mean (parameters 1 and 5). Noise or something meaningful? |
I think it's just noise. More sampling might suffice to get rid of it (or perhaps a better neural network surrogate). I don't expect this to be the "end" of the story, but rather a starting point for further work |
How expensive is it? Can we experiment changing the prior/regularization distribution? |
It runs in a few minutes. It's easy to change |
Note that these are the marginal distributions as given by the neural network (we aren't see the higher order joint pdf structures with these figures |
For reference I think these are the names of the parameters: julia> eki.inverse_problem[1].free_parameters.names
(:CᵂwΔ, :Cᵂu★, :Cʰⁱc, :Cʰⁱu, :Cʰⁱe, :CʰⁱD, :Cˢ, :Cˡᵒc, :Cˡᵒu, :Cˡᵒe, :CˡᵒD, :CRi⁰, :CRiᵟ, :Cᵘⁿc, :Cᵘⁿu, :Cᵘⁿe, :CᵘⁿD, :Cᶜc, :Cᶜu, :Cᶜe, :CᶜD, :Cᵉc, :Cˢᵖ) or
|
Couple thoughts: parameters 1 and 2 probably don't matter much. Parameter 10 (has to do with diffusivity of TKE for low Ri) seems sketch, since the prior is up against the upper bound. I'm surprised that parameters 8-9 are not more well constrained, I think they are crucial (along with 11) for shear mixing (together they determined the model's critical Ri). It's nice to see constraint on parameter 18, which controls tracer mixing during convection. |
Adds an emulate-sample example using a neural network and hamiltonian monte-carlo. Enzyme is used for autodiff. The example runs in about 2 minutes on a local laptop. This is done as a separate directory and is meant as a discussion point rather than user-friendly "emulate sample" framework (which would better go in the CalibrateEmulateSample package)