kazewong / flowMC

Normalizing-flow enhanced sampling package for probabilistic inference in Jax
https://flowmc.readthedocs.io/en/main/
MIT License
188 stars 23 forks source link

Global-local auto tune algorithm #121

Open kazewong opened 1 year ago

kazewong commented 1 year ago

Currently one of the biggest obstacles to a smoother user experience is the absence of auto-tuning capability, so the user has to spend quite a lot of time tuning the configuration parameters such as the number of loops and the number of local/global steps.

There is no good rules of thumb and good metric to inform the users on how to tune the algorithm more than increase the number of chains or run it longer.

There are two steps toward a better user experience,

  1. Give metrics to inform the user the quality of the run, such as monitoring local R_hat vs global R_hat. The user can then tune the configuration parameters
  2. Lay down auto tune strategy that take cares of the tuning automatically.
kazewong commented 10 months ago

It seems the global acceptance rate do increase somewhat monotonically over time, which could be a great metric to track the quality of the run.

It could be useful to just set the target global acceptance rate and set an earlier stopping criteria for this