User guide
To run Bayesian quadrature multiple ingredients are needed:
- The model, containing the integrand function
f
and the priorp_0
- The sampling process, the algorithm choosing the samples $\{x_i, y_i\}$ used to estimate the integral
- The Bayesian quadrature algorithm, containing both the kernel and the way the posterior of the integral is computed
The model
So far only one model is implemented: the BayesModel
. It takes a MvNormal
prior and a log-likelihood function
, in the future more options for the prior will be available using importance re-weighting! In Bayesian terms, given the data $y$ and latent parameters $\theta$, with given likelihood $p(y|\theta)$ and prior $p_0(\theta)$, we are interested in the evidence $p(y) = \int p(y|\theta)p_0(\theta)d\theta$. One needs to pass p_0::MvNormal
$\equiv p_0$ and loglike(theta) = logpdf(likelihood(theta), y)
$\equiv \log p(y|\theta)$
The sampling process
One need to select the different samples $\{x_i,y_i\}$. Since these samples do not need to belong to a specific distribution, all methods are allowed. The options so far are:
PriorSampling
, the most standard approach, sampling directly fromp_0
The Bayesian quadrature algorithm
This is the algorithm doing the heavy work. It describes the underlying Gaussian Process via a kernel from KernelFunctions.jl. When using a SqExponentialKernel
with a MvNormal
prior, the resulting distribution of the integral can be computed analytically. The options are:
BayesQuad
, this is the vanilla algorithm, which tries to compute the integral exactly.