joshspeagle / dynesty

Dynamic Nested Sampling package for computing Bayesian posteriors and evidences
https://dynesty.readthedocs.io/
MIT License
346 stars 76 forks source link

Specify lower bound of `L_max` #430

Closed dilpath closed 1 year ago

dilpath commented 1 year ago

pyPESTO is a tool for optimization and sampling, which interfaces dynesty. If a user is using dynesty via pyPESTO then, in most cases, with a few lines of code, they can also perform optimization.

This means that it's common for users to already have a good idea of what L_max might be. Is it useful/possible to supply this to dynesty, as either the parameters (MLE) or as a lower bound for the L_max itself?

I see that the dynesty samplers take a live_points argument; however, I'm not sure if it's appropriate to supply a guess for the MLE here.

segasai commented 1 year ago

I am not sure I see what problem specifically that would solve, so I'm not enthusiastic in the outset.

If you want to sample a tiny volume around the maximum you can always specify the prior be around it.

dilpath commented 1 year ago

Thanks, the point is not to sample around the maximum; rather: can knowledge of the MLE help the sampler? If so, how can we provide this to the sampler?

segasai commented 1 year ago

In the way the current sampler is written, there is no way to use that information . I.e. all the decisions for the sampler are based on the current set of live-points. It is certainly possible to provide the MLE point as one of the initial set, but that will break the assumptions of the sampler (that points are sampled from the prior). I was considering in the past the possibility of using all the likelihood evaluation locations (i.e. even rejected points to decide on ellipsoidal bounds), but I never implemented it.

dilpath commented 1 year ago

Ah, from optimization at least, there would be many points in addition to the MLE that could be supplied.

Anyway, thanks for your answer!