User guide

To run Bayesian quadrature multiple ingredients are needed:

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 from p_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.