BayesianQuadrature¶
- class probnum.quad.BayesianQuadrature(kernel, measure, policy, belief_update, stopping_criterion)¶
Bases:
objectA 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_Quadraturehas_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.ndarrayand return a shape=(n_eval,)np.ndarray.nodes (
Optional[ndarray]) – shape=(n_eval, input_dim) – Optional nodes at which function evaluations are available asfun_evalsfrom start.fun_evals (
Optional[ndarray]) – shape=(n_eval,) – Optional function evaluations atnodesavailable 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.
- Yields
new_integral_belief – Updated belief about the integral.
new_nodes – shape=(n_new_eval, input_dim) – The new location(s) at which
new_fun_evalsare available found during the iteration.new_fun_evals – shape=(n_new_eval,) – The function evaluations at the new locations
new_nodes.new_bq_state – Updated state of the Bayesian quadrature methods.
- Return type
- 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
input_dim (
int) – Input dimension.kernel (
Optional[Kernel]) – The kernel used for the GP model.measure (
Optional[IntegrationMeasure]) – The integration measure.domain (
Union[Tuple[Union[float,Real,floating],Union[float,Real,floating]],Tuple[ndarray,ndarray],None]) – The integration bounds.policy (
str) – The policy choosing nodes at which to evaluate the integrand.max_evals (
Union[int,Integral,integer,None]) – Maximum number of evaluations as stopping criterion.var_tol (
Union[float,Real,floating,None]) – Variance tolerance as stopping criterion.rel_tol (
Union[float,Real,floating,None]) – Relative tolerance as stopping criterion.batch_size (
Union[int,Integral,integer]) – Batch size used in node acquisition.
- Returns
An instance of this class.
- Return type
- Raises
ValueError – If Bayesian Monte Carlo (‘bmc’) is selected as
policyand no random number generator (rng) is given.NotImplementedError – If an unknown
policyis given.
- 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 the solver has converged.
- Return type
has_converged
- integrate(fun=None, nodes=None, fun_evals=None)[source]¶
Integrate the function
fun.funmay be analytically given, or numerically in terms offun_evalsat fixed nodes. This function calls the generatorbq_iteratoruntil 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.ndarrayand return a shape=(n_eval,)np.ndarray.nodes (
Optional[ndarray]) – shape=(n_eval, input_dim) – Optional nodes at which function evaluations are available asfun_evalsfrom start.fun_evals (
Optional[ndarray]) – shape=(n_eval,) – Optional function evaluations atnodesavailable from the start.
- Return type
- 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 evaluations (fun_evals) are given.