Nested Sampling
Nested Sampling (NS) describes a class of algorithms used to solve Bayesian inference problems. nautilus
originated from NS, and, as such, it shares similarities with other NS codes such as dynesty
, MultiNest
, and UltraNest
. Here, we describe the key differences and similarities between NS codes and nautilus
.
Algorithm Differences
The primary objectives of NS codes and nautilus
are identical: identify the parts of parameter space with the highest likelihood, sample points from the parameter posterior, and estimate the Bayesian evidence. Additionally, NS codes and nautilus
work similarly during initial parameter space exploration. Both randomly sample the prior space, identify the points with the highest likelihood, the so-called live set, and then estimate a boundary around the live set. Afterward, points are sampled from within the live set boundary, and a new live set with a higher minimum likelihood is identified. This procedure, sampling from within a live set boundary and identifying a new live set, is repeated until a convergence criterion is reached and leads to a live set that rapidly shrinks to the maximum likelihood value.
A key difference between NS codes and nautilus
is how the live set boundary is drawn. In particular, unlike the NS codes mentioned above, nautilus
uses a neural network-based algorithm to determine efficient boundaries. Furthermore, NS codes and nautilus
differ significantly in how the Bayesian posterior and evidence are estimated after this initial exploration phase. In particular, nautilus
uses an Importance Nested Sampling (INS) algorithm, not NS. Another big difference between nautilus
and dynamic NS codes such as dynesty
is how additional posterior samples can be added and the evidence refined after the exploration phase. Dynamic NS codes use separate NS runs that are later combined for that. On the other hand, nautilus
uses the information on the likelihood obtained during the exploration phase to more or less directly sample from the posterior.
General Advice
nautilus
profits from more live points! We recommend running nautilus
with at least 1000 live points. Although the runtime of the algorithm is, in principle, proportional to the number of live points, the increased sampling efficiency with more points more than makes up for that. Often, nautilus
with 3000 live points runs faster than NS codes with 500.