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

convergence criteria #29

Closed
joshspeagle opened this issue Jun 6, 2017 · 3 comments
Closed

convergence criteria #29

joshspeagle opened this issue Jun 6, 2017 · 3 comments
Assignees
Labels
enhancement upgrades and improvements

Comments

@joshspeagle
Copy link
Owner

I need to test whether using the KL divergence between a "baseline" run and a "sampled" (resampled + reweighted) run can be used to determine convergence to the posterior distribution.

@joshspeagle joshspeagle self-assigned this Jun 6, 2017
@joshspeagle joshspeagle added the enhancement upgrades and improvements label Jul 23, 2017
@joshspeagle joshspeagle modified the milestone: dynamic sampling Jul 23, 2017
@joshspeagle
Copy link
Owner Author

Initial tests seem to indicate that the variation in the KL divergence (not necessarily the mean) between the "distribution" formed by a "sampled" run and a "baseline" run seems to behave as I had hoped. This makes some sense in retrospect: we expect there to be some typical divergence, so it's the stability in this divergence that actually matters. I might add some more notes here for (tentative) public posterity depending on how further tests turn out.

@joshspeagle
Copy link
Owner Author

Although resampling complicates the procedure algorithmically, I managed to implement something that works. Essentially, we compute the KL divergence from the perspective of the "first" run (we're computing the KL divergence to this run), which may or may not include resampled positions, and then evaluate terms on the KL divergence one-by-one by position. I split this by unique particle IDs to speed up position checks. In the case where there are multiple positions in the "second" run (we're computing the KL divergence from this run) that match (leading to possible confusion), I choose the term that is closest to zero (which correctly gives zero overall in the case where we compare the same "resampled" run against itself).

@joshspeagle
Copy link
Owner Author

After some testing using a 3-D correlated normal, I ended up setting the default stopping values to 2% fractional variation in the KL divergence and 0.1 standard deviation in lnz (~10%), which gave similar sample sizes to a standard nested sampling run with K=1000 live points under posterior-optimized and evidence-optimized estimation, respectively. I might change this later depending on more testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement upgrades and improvements
Projects
None yet
Development

No branches or pull requests

1 participant