bayesian-optimization / BayesianOptimization

A Python implementation of global optimization with gaussian processes.
https://bayesian-optimization.github.io/BayesianOptimization/index.html
MIT License
7.81k stars 1.53k forks source link

Different algorithms for maximizing the acquisition function #256

Closed osullivryan closed 1 year ago

osullivryan commented 3 years ago

Hello BayesianOptimization team,

Have you any thoughts on an additional option for different optimization routines when calling acq_max?

My thought was something like this:

def acq_max(ac, gp, y_max, bounds, random_state, n_warmup=10000, n_iter=10, optimization_routine="L-BFGS-B"):

    :optimization_routine str optional(default="L-BFGS-B"): The algorithm used for finding the maximum of the acquisition function
        Possible options are:
            "L-BFGS-B"
            "Nelder-Mead"
           ...
           "differential-evolution"
           "basinhopping"

Then later on in the function have a case depending on the argument's value. My thought is options like differential-evolution won't need the random restarts, and might perform better.

I can work on this, just wanted to shoot it past you all.

Ryan

fmfn commented 3 years ago

Hi @osullivryan , yes that sounds like a great idea. Given how time constraint I've been these days I won't be able to work on this feature anytime soon, but PRs are more than appreciated =)