class_docstr: Max-value entropy search acquisition function.
  
  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.
  
  ```python
  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
class_docstr_tok: ["Max-value","entropy","search","acquisition","function",".","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",".","``","`","python","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"]
docstr: 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`).
docstr_tok: ["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","`",")","."]
code: def __call__(self, **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`).
      """
      mean = self.predictive_distribution.mean(**kwargs)
      stddev = self.predictive_distribution.stddev(**kwargs)
  
      # Finally compute the approximation to the conditional mutual information
      # between our new location and the best value I({x, y} ; y* | D)
  
      norm = normal_lib.Normal(
          dtype_util.as_numpy_dtype(self.predictive_distribution.dtype)(
              0.0
          ),
          1.0,
      )
  
      z = (self._precomputed_samples[..., tf.newaxis] - mean) / stddev
      return tf.reduce_mean(
          0.5 * z * inverse_mills_ratio(z) - norm.log_cdf(z), axis=0
      )
  
file_path: probability/tensorflow_probability/python/experimental/bayesopt/acquisition/max_value_entropy_search.py
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import gumbel
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.experimental.bayesopt.acquisition import acquisition_function
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.math import root_search
  from tensorflow_probability.python.math import special
  from tensorflow_probability.python.mcmc import sample_halton_sequence_lib
label_desc: Use image node_id 4 for calling the GaussianProcessMaxValueEntropySearch obj's underlying member method code with example usage: obj.__call__() and returns: tf