BayesianQuadrature

class probnum.quad.BayesianQuadrature(kernel, measure, policy, belief_update, stopping_criterion)

Bases: object

A base class for Bayesian quadrature.

Bayesian quadrature solves integrals of the form

\[F = \int_\Omega f(x) d \mu(x).\]
Parameters
  • kernel (Kernel) – The kernel used for the GP model.

  • measure (IntegrationMeasure) – The integration measure.

  • policy (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.

Methods Summary

bq_iterator([fun, nodes, fun_evals, ...])

Generator that implements the iteration of the BQ method.

from_problem(input_dim[, kernel, measure, ...])

Alternative way to initialize Bayesian_Quadrature

has_converged(bq_state)

Checks if the BQ method has converged.

integrate([fun, nodes, fun_evals])

Integrate the function fun.

Methods Documentation

bq_iterator(fun=None, nodes=None, fun_evals=None, integral_belief=None, bq_state=None)[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
  • 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.

  • integral_belief (Optional[Normal]) – Current belief about the integral.

  • bq_state (Optional[BQState]) – State of the Bayesian quadrature methods. Contains all necessary information about the problem and the computation.

Return type

Tuple[Normal, ndarray, ndarray, BQState]

Returns

  • integral_belief – Updated belief about the integral.

  • new_nodesshape=(n_new_eval, input_dim) – The new location(s) at which new_fun_evals are available found during the iteration.

  • new_fun_evalsshape=(n_new_eval,) – The function evaluations at the new locations new_nodes.

  • bq_state – Updated state of the Bayesian quadrature methods.

classmethod from_problem(input_dim, kernel=None, measure=None, domain=None, policy='bmc', max_evals=None, var_tol=None, rel_tol=None, batch_size=1, rng=None)[source]

Alternative way to initialize Bayesian_Quadrature

Parameters
Return type

BayesianQuadrature

has_converged(bq_state)[source]

Checks if the BQ method has converged.

Parameters

bq_state (BQState) – State of the Bayesian quadrature methods. Contains all necessary information about the problem and the computation.

Returns

Whether or not the solver has converged.

Return type

has_converged

integrate(fun=None, nodes=None, fun_evals=None)[source]

Integrate the function fun.

fun may be analytically given, or numerically in terms of fun_evals at fixed nodes. This function calls the generator bq_iterator until the first stopping criterion is met.

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.

Return type

Tuple[Normal, BQState]

Returns

  • integral_belief – Posterior belief about the integral.

  • bq_state – Final state of the Bayesian quadrature method.