AnotherSamWilson / ParBayesianOptimization

Parallelizable Bayesian Optimization in R
107 stars 18 forks source link

Error "Noise could not be added to find unique parameter set." #15

Closed ZhiyunGong closed 4 years ago

ZhiyunGong commented 4 years ago

Hi, when I tried to run the optimization, I saw this error message after different numbers of iterations with exactly the same code and the process was then stopped immediately. Could you suggest what may be causing this issue? Thanks!

bayes_peak_ei_par <- bayesOpt(FUN = peak_func,
                              bounds = search_bound,
                              # initGrid = init_grid_dt,
                              initPoints = 5,
                              iters.n = 20,
                              acq = "ei",
                              gsPoints = 3,
                              errorHandling = "continue",
                              plotProgress = TRUE)

Running initial scoring function 5 times in 1 thread(s)...  1.03 seconds

Starting Epoch 1 
  1) Fitting Gaussian Process...
  2) Running local optimum search...
     - Convergence Not Found. Trying again with tighter parameters...        0.3 seconds
  3) Running FUN 1 times in 1 thread(s)...  0.22 seconds

Starting Epoch 2 
  1) Fitting Gaussian Process...
  2) Running local optimum search...        0.21 seconds
  3) Running FUN 1 times in 1 thread(s)...  0.2 seconds

Starting Epoch 3 
  1) Fitting Gaussian Process...
  2) Running local optimum search...        0.73 seconds
  3) Running FUN 1 times in 1 thread(s)...  0.19 seconds

Starting Epoch 4 
  1) Fitting Gaussian Process...
  2) Running local optimum search...        0.71 seconds
  3) Running FUN 1 times in 1 thread(s)...  0.25 seconds

Starting Epoch 5 
  1) Fitting Gaussian Process...
  2) Running local optimum search...        0.22 seconds
  3) Running FUN 1 times in 1 thread(s)...  0.18 seconds

Starting Epoch 6 
  1) Fitting Gaussian Process...
  2) Running local optimum search...        0.89 seconds
  3) Running FUN 1 times in 1 thread(s)...  0.21 seconds

Starting Epoch 7 
  1) Fitting Gaussian Process...
  2) Running local optimum search...        0.78 seconds

 Noise could not be added to find unique parameter set. Stopping process and returning results so far. 
AnotherSamWilson commented 4 years ago

When you specify a certain iters.k, the default behavior is to add noise to the parameters retrieved from the global optimum of the acquisition function to get random parameters in the same area. If all of your parameters are integers, and you have already thoroughly explored that area, sometimes there are no unexplored parameters left. That's my guess. Are all of your parameters integers?

ZhiyunGong commented 4 years ago

Yes, that's exactly the case, all my parameters are integers. Thanks a lot!