what is the kappa variable (BayesianOptimization)

1.1k Views Asked by At

I read some posts and tutorials about BayesianOptimization and I never saw explanation about kappa variable.

  • What is the kappa variable ?
  • How can it help us ?
  • How this values can influence the BayesianOptimization process ?
1

There are 1 best solutions below

0
On BEST ANSWER

The kappa parameter, along with xi, is used to control how much the Bayesian optimization acquisition function balances exploration and exploitation.

Higher kappa values mean more exploration and less exploitation and vice versa for low values. Exploration pushes the search towards unexplored regions and exploitation focuses on results in the vicinity of the current best results by penalizing for higher variance values.

It may be beneficial to begin with default kappa values at the start of optimization and then lower values if you reduce the search space.

In scikit-optimize, kappa is only used if the acquisition function acq_func is set to “LCB” and xi is used when acq_func is “EI” or “PI” where LCB is Lower Confidence Bound, EI is Expected Improvement and PI is Probability of Improvement.

Similarly for the BayesianOptimization package:

 acq: {'ucb', 'ei', 'poi'}
            The acquisition method used.
                * 'ucb' stands for the Upper Confidence Bounds method
                * 'ei' is the Expected Improvement method
                * 'poi' is the Probability Of Improvement criterion.

Mathematical details on acquisition functions

Note, the BayesianOptimization package and scikit-optimize use different default kappa values: 2.576 and 1.96 respectively.

There is a decent exploration vs exploitation example in the scikit-optimize docs.

There is a similar BayesianOptimization exploration vs exploitation example notebook.

FWIW I've used both packages and gotten OK results. I find the scikit-optimize plotting functions to be useful when fine tuning the parameter search space.