View source on GitHub |
Max-value entropy search acquisition function.
Inherits From: AcquisitionFunction
tfp.experimental.bayesopt.acquisition.GaussianProcessMaxValueEntropySearch(
predictive_distribution, observations, seed=None, num_max_value_samples=100
)
Computes the sequential max-value entropy search acquisition function.
Requires that predictive_distribution
has a .mean
, stddev
method.
Examples
Build and evaluate a Gausian Process Maximum Value Entropy Search acquisition function.
import numpy as np
import tensorflow_probability as tfp
tfd = tfp.distributions
tfpk = tfp.math.psd_kernels
tfp_acq = tfp.experimental.bayesopt.acquisition
# Sample 10 20-dimensional index points and associated observations.
index_points = np.random.uniform(size=[10, 20])
observations = np.random.uniform(size=[10])
# Build a Gaussian Process regression model.
dist = tfd.GaussianProcessRegressionModel(
kernel=tfpk.MaternFiveHalves(),
observation_index_points=index_points,
observations=observations)
# Define a GP max value entropy search acquisition function.
gp_mes = tfp_acq.GaussianProcessMaxValueEntropySearch(
predictive_distribution=dist,
observations=observations,
num_max_value_samples=200)
# Evaluate the acquisition function at a set of predictive index points.
pred_index_points = np.random.uniform(size=[6, 20])
acq_fn_vals = gp_mes(pred_index_points)
References
[1] Z. Wang, S. Jegelka. Max-value Entropy Search for Efficient Bayesian Optimization. https://arxiv.org/abs/1703.01968
Methods
__call__
__call__(
**kwargs
)
Computes the max-value entropy search acquisition function.
Args | |
---|---|
**kwargs
|
Keyword args passed on to the mean and stddev methods of
predictive_distribution .
|
Returns | |
---|---|
Acquisition function values at index points implied by
predictive_distribution (or overridden in **kwargs ).
|