Monte Carlo Samplers
MC-based acquisition functions rely on the reparameterization trick, which transforms some set of ϵ from some base distribution into a target distribution. For example, when drawing posterior samples from a Gaussian process, the classical parameterization is μ(x)+L(x)ϵ, where ϵ are i.i.d standard normal, μ is the mean of the posterior, and L(x) is a root decomposition of the covariance matrix such that L(x)L(x)T=Σ(x).
Exactly how base samples are generated when using the reparameterization trick can have substantial effects on the convergence of gradients estimated from these samples. Because of this, BoTorch implements a generic module capable of flexible sampling from any type of probabilistic model.
A MCSampler
is a Module
that provides base samples from a Posterior
object.
These samplers may then in turn be used in conjunction with MC-based acquisition
functions. BoTorch includes two types of MC samplers for sampling isotropic
normal deviates: a vanilla, normal sampler (IIDNormalSampler
) and randomized
quasi-Monte Carlo sampler (SobolQMCNormalSampler
).
For most use cases, we recommend using SobolQMCNormalSampler
, as it tends to
produce more accurate (i.e. lower variance) gradient estimates with much fewer
samples relative to the IIDNormalSampler
. To experiment with alternative
sampling procedures, please see the source code for SobolQMCNormalSampler
as
an example.