BayesianQuadrature¶
- class probnum.quad.solvers.BayesianQuadrature(kernel, measure, policy, belief_update, stopping_criterion, initial_design)¶
Bases:
object
The Bayesian quadrature method.
Bayesian quadrature solves integrals of the form
\[F = \int_\Omega f(x) d \mu(x).\]- Parameters
kernel (Kernel) – The kernel used for the Gaussian process model.
measure (IntegrationMeasure) – The integration measure.
policy (Optional[Policy]) – The policy choosing nodes at which to evaluate the integrand.
belief_update (BQBeliefUpdate) – The inference method.
stopping_criterion (BQStoppingCriterion) – The criterion that determines convergence.
initial_design (Optional[InitialDesign]) – The initial design chooses a set of nodes once, before the acquisition loop with the policy runs.
- Raises
ValueError – If
initial_design
is given butpolicy
is not given.
See also
bayesquad
:Computes the integral using an acquisition policy.
bayesquad_from_data
:Computes the integral \(F\) using a given dataset of nodes and function evaluations.
Methods Summary
bq_iterator
(bq_state, info, fun, rng)Generator that implements the iteration of the BQ method.
from_problem
(input_dim[, kernel, measure, ...])Creates an instance of this class from a problem description.
integrate
(fun, nodes, fun_evals[, rng])Integrates a given function.
Methods Documentation
- bq_iterator(bq_state, info, fun, rng)[source]¶
Generator that implements the iteration of the BQ method.
This function exposes the state of the BQ method one step at a time while running the loop.
- Parameters
bq_state (BQState) – State of the Bayesian quadrature methods. Contains the information about the problem and the BQ belief.
info (BQIterInfo) – The state of the iteration.
fun (Optional[Callable]) – Function to be integrated. It needs to accept a shape=(n_eval, input_dim)
np.ndarray
and return a shape=(n_eval,)np.ndarray
.rng (Optional[Generator]) – The random number generator used for random methods.
- Yields
new_integral_belief – Updated belief about the integral.
new_bq_state – The updated state of the Bayesian quadrature belief.
new_info – The updated state of the iteration.
- Return type
- classmethod from_problem(input_dim, kernel=None, measure=None, domain=None, policy='bmc', initial_design=None, options=None)[source]¶
Creates an instance of this class from a problem description.
- Parameters
input_dim (IntLike) – The input dimension.
kernel (Optional[CovarianceFunction]) – The kernel used for the GP model. Defaults to the
ExpQuad
kernel.measure (Optional[IntegrationMeasure]) – The integration measure. Defaults to the Lebesgue measure on the
domain
.domain (Optional[DomainLike]) – The integration bounds. Obsolete if
measure
is given.policy (Optional[str]) – The policy choosing nodes at which to evaluate the integrand. Choose
None
if you want to integrate from a fixed dataset.initial_design (Optional[str]) – The initial design chooses a set of nodes once, before the acquisition loop with the policy runs.
A dictionary with the following optional solver settings
- scale_estimationOptional[str]
Estimation method to use to compute the scale parameter. Defaults to ‘mle’.
- max_evalsOptional[IntLike]
Maximum number of evaluations as stopping criterion.
- var_tolOptional[FloatLike]
Variance tolerance as stopping criterion.
- rel_tolOptional[FloatLike]
Relative tolerance as stopping criterion.
- jitterOptional[FloatLike]
Non-negative jitter to numerically stabilise kernel matrix inversion. Defaults to 1e-8.
- batch_sizeOptional[IntLike]
Batch size used in node acquisition. Defaults to 1.
- n_initial_design_nodesOptional[IntLike]
The number of nodes created by the initial design. Defaults to
input_dim * 5
if an initial design is given.- n_candidatesOptional[IntLike]
The number of candidate nodes used by the policies that maximize an acquisition function by drawing random candidates. Defaults to 1e2. Applicable to policies ‘us_rand’, ‘mi_rand’ and ‘ivr_rand’.
- n_restartsOptional[IntLike]
The number of restarts that the acquisition optimizer performs in order to find the maximizer. Defaults to 10. Applicable to policies ‘us’, ‘mi’ and ‘ivr’.
- Returns
An instance of this class.
- Return type
- Raises
NotImplementedError – If an unknown
policy
or an unknowninitial_design
is given.ValueError – If neither
domain
normeasure
is given.
See also
bayesquad
:For details on options for
policy
andinitial_design
.
- integrate(fun, nodes, fun_evals, rng=None)[source]¶
Integrates a given function.
The function may be given as a function handle
fun
and/or numerically in terms offun_evals
at fixed nodesnodes
.If a policy is defined this method calls the generator
bq_iterator
until the first stopping criterion is met. The initial design is evaluated in a batch prior to runningbq_iterator
.If no policy is defined this method immediately stops after processing the given
nodes
.- Parameters
fun (Optional[Callable]) – Function to be integrated. It needs to accept a shape=(n_eval, input_dim)
np.ndarray
and return a shape=(n_eval,)np.ndarray
.nodes (Optional[ndarray]) – shape=(n_eval, input_dim) – Optional nodes at which function evaluations are available as
fun_evals
from start.fun_evals (Optional[ndarray]) – shape=(n_eval,) – Optional function evaluations at
nodes
available from the start.rng (Optional[Generator]) – The random number generator used for random methods.
- Returns
integral_belief – Posterior belief about the integral.
bq_state – Final state of the Bayesian quadrature method.
- Raises
ValueError – If neither the integrand function
fun
nor integrand evaluationsfun_evals
are given.ValueError – If dimension of
nodes
orfun_evals
is incorrect, or if their shapes do not match.ValueError – If
rng
is not given butpolicy
orinitial_design
requires it.ValueError – If a policy is available but
fun
is not given.ValueError – If no policy is available and no
nodes
are given.
- Warns
UserWarning – When no policy is given and
fun
is ignored.- Return type
Notes
The initial design is evaluated prior to running the
bq_iterator
and hence may not obey the stopping criterion. For example, if stopping is induced via a maximum number of evaluations (max_evals
) smaller than the batch size of the initial design, the initial design will be evaluated nevertheless.