Acquisition functions

In Bayesian optimization, a so-called acquisition funciton is used instead of the uncertainty based utility measures of active learning. In modAL, Bayesian optimization algorithms are implemented in the modAL.models.BayesianOptimizer class. Currently, there are three available acquisition functions: probability of improvement, expected improvement and upper confidence bound.

Probability of improvement

The probability of improvement is defined by

\[PI(x) = \psi\Big( \frac{\mu(x) - f(x^+) - \xi}{\sigma(x)} \Big),\]

where \(\mu(x)\) and \(\sigma(x)\) are the mean and variance of the regressor at \(x\), \(f\) is the function to be optimized with estimated maximum at \(x^+\), \(\xi\) is a parameter controlling the degree of exploration and \(\psi(z)\) denotes the cumulative distribution function of a standard Gaussian distribution.

../../_images/bo-PI.png

If you would like to use it with a BayesianOptimizer``, you should pass modAL.acquisition.max_PI as the query strategy upon initialization.

Expected improvement

The expected improvement is defined by

\[\begin{split}\begin{align*} EI(x) = & (\mu(x) - f(x^+) - \xi) \psi\Big( \frac{\mu(x) - f(x^+) - \xi}{\sigma(x)} \Big) \\ & + \sigma(x) \phi\Big( \frac{\mu(x) - f(x^+) - \xi}{\sigma(x)} \Big), \end{align*}\end{split}\]

where \(\mu(x)\) and \(\sigma(x)\) are the mean and variance of the regressor at \(x\), \(f\) is the function to be optimized with estimated maximum at \(x^+\), \(\xi\) is a parameter controlling the degree of exploration and \(\psi(z)\), \(\phi(z)\) denotes the cumulative distribution function and density function of a standard Gaussian distribution.

../../_images/bo-EI.png

If you would like to use it with a BayesianOptimizer, you should pass modAL.acquisition.max_EI as the query strategy upon initialization.

Upper confidence bound

The upper confidence bound is defined by

\[UCB(x) = \mu(x) + \beta \sigma(x),\]

where \(\mu(x)\) and \(\sigma(x)\) are the mean and variance of the regressor and \(\beta\) is a parameter controlling the degree of exploration.

../../_images/bo-UCB.png

If you would like to use it with a BayesianOptimizer, you should pass modAL.acquisition.max_UCB as the query strategy upon initialization.