tfp.experimental.bayesopt.acquisition.GaussianProcessMaxValueEntropySearch
Stay organized with collections
Save and categorize content based on your preferences.
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
Args |
predictive_distribution
|
tfd.Distribution -like, the distribution over
observations at a set of index points.
|
observations
|
Float Tensor of observations. Shape has the form
[b1, ..., bB, e] , where e is the number of index points (such that
the event shape of predictive_distribution is [e] ) and
[b1, ..., bB] is broadcastable with the batch shape of
predictive_distribution .
|
seed
|
PRNG seed; see tfp.random.sanitize_seed for details.
|
num_max_value_samples
|
The number of samples to use for the max-value
distribution.
|
Attributes |
is_parallel
|
Python bool indicating whether the acquisition function is parallel.
Parallel (batched) acquisition functions evaluate batches of points rather
than single points.
|
num_max_value_samples
|
|
observations
|
Float Tensor of observations.
|
predictive_distribution
|
The distribution over observations at a set of index points.
|
seed
|
PRNG seed.
|
Methods
__call__
View source
__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 ).
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-11-21 UTC.
[null,null,["Last updated 2023-11-21 UTC."],[],[],null,["# tfp.experimental.bayesopt.acquisition.GaussianProcessMaxValueEntropySearch\n\n\u003cbr /\u003e\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [View source on GitHub](https://github.com/tensorflow/probability/blob/v0.23.0/tensorflow_probability/python/experimental/bayesopt/acquisition/max_value_entropy_search.py#L31-L144) |\n\nMax-value entropy search acquisition function.\n\nInherits From: [`AcquisitionFunction`](../../../../tfp/experimental/bayesopt/acquisition/AcquisitionFunction) \n\n tfp.experimental.bayesopt.acquisition.GaussianProcessMaxValueEntropySearch(\n predictive_distribution, observations, seed=None, num_max_value_samples=100\n )\n\nComputes the sequential max-value entropy search acquisition function.\n\nRequires that `predictive_distribution` has a `.mean`, `stddev` method.\n\n#### Examples\n\nBuild and evaluate a Gausian Process Maximum Value Entropy Search acquisition\nfunction. \n\n import numpy as np\n import tensorflow_probability as tfp\n\n tfd = tfp.distributions\n tfpk = tfp.math.psd_kernels\n tfp_acq = tfp.experimental.bayesopt.acquisition\n\n # Sample 10 20-dimensional index points and associated observations.\n index_points = np.random.uniform(size=[10, 20])\n observations = np.random.uniform(size=[10])\n\n # Build a Gaussian Process regression model.\n dist = tfd.GaussianProcessRegressionModel(\n kernel=tfpk.MaternFiveHalves(),\n observation_index_points=index_points,\n observations=observations)\n\n # Define a GP max value entropy search acquisition function.\n gp_mes = tfp_acq.GaussianProcessMaxValueEntropySearch(\n predictive_distribution=dist,\n observations=observations,\n num_max_value_samples=200)\n\n # Evaluate the acquisition function at a set of predictive index points.\n pred_index_points = np.random.uniform(size=[6, 20])\n acq_fn_vals = gp_mes(pred_index_points)\n\n#### References\n\n\\[1\\] Z. Wang, S. Jegelka. Max-value Entropy Search for Efficient Bayesian\nOptimization. \u003chttps://arxiv.org/abs/1703.01968\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ---- ||\n|---------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `predictive_distribution` | `tfd.Distribution`-like, the distribution over observations at a set of index points. |\n| `observations` | `Float` `Tensor` of observations. Shape has the form `[b1, ..., bB, e]`, where `e` is the number of index points (such that the event shape of `predictive_distribution` is `[e]`) and `[b1, ..., bB]` is broadcastable with the batch shape of `predictive_distribution`. |\n| `seed` | PRNG seed; see tfp.random.sanitize_seed for details. |\n| `num_max_value_samples` | The number of samples to use for the max-value distribution. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Attributes ---------- ||\n|---------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `is_parallel` | Python `bool` indicating whether the acquisition function is parallel. \u003cbr /\u003e Parallel (batched) acquisition functions evaluate batches of points rather than single points. |\n| `num_max_value_samples` | \u003cbr /\u003e \u003cbr /\u003e |\n| `observations` | Float `Tensor` of observations. |\n| `predictive_distribution` | The distribution over observations at a set of index points. |\n| `seed` | PRNG seed. |\n\n\u003cbr /\u003e\n\nMethods\n-------\n\n### `__call__`\n\n[View source](https://github.com/tensorflow/probability/blob/v0.23.0/tensorflow_probability/python/experimental/bayesopt/acquisition/max_value_entropy_search.py#L122-L144) \n\n __call__(\n **kwargs\n )\n\nComputes the max-value entropy search acquisition function.\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Args ||\n|------------|-----------------------------------------------------------------------------------------|\n| `**kwargs` | Keyword args passed on to the `mean` and `stddev` methods of `predictive_distribution`. |\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n| Returns ||\n|---|---|\n| Acquisition function values at index points implied by `predictive_distribution` (or overridden in `**kwargs`). ||\n\n\u003cbr /\u003e"]]