Note on Bayesian Optimization

Related to Gaussain Process model

Philosophy

Bayesian Optimization applies to black box functions and it employs the active learning philosophy.

Use Case and Limitation

BO is preferred in such cases

  • Objective evaluation is very expensive
  • Global Solution is desired
  • Low accuracy
  • Low dimension

When not to use BO

  • High dimensional problem

https://nbviewer.jupyter.org/github/SheffieldML/GPyOpt/blob/devel/manual/GPyOpt_modular_bayesian_optimization.ipynb

Matlab Package

In matlab bayesian optimization have been well wrapped up in a package.

num = optimizableVariable('n',[1,30],'Type','integer');
dst = optimizableVariable('dst',{'chebychev','euclidean','minkowski'},'Type','categorical');
c = cvpartition(351,'Kfold',5);
fun = @(x)kfoldLoss(fitcknn(X,Y,'CVPartition',c,'NumNeighbors',x.n,...
    'Distance',char(x.dst),'NSMethod','exhaustive'));
results = bayesopt(fun,[num,dst],'Verbose',0,...
    'AcquisitionFunctionName','expected-improvement-plus')

Python Package

https://github.com/fmfn/BayesianOptimization