Open lewisscola opened 4 years ago
Well, Y
is not sorted by values, it is a chronologically ordered list of function outputs. Apparently the optimization process converged pretty quickly, but as it kept running it was probing more and more regions with uncertainty.
The min
approach you used for best2
is the correct way to find current min value. As you can see, there is no fluctuations there. That is also how fx_opt
is computed
Thank you for your reply and help!
I still have a question about the issue above. As you can see from the images above, The true best value Y fluctuates in the first 10 iterations, so why is the true best value Y does not continuously decrease as the iteration increase? I mean why the minimum value of the function is not decreased continuously?(For example, if BO already find a minimum value f1, why the BO will find a minimum value f2, which f2>f1?)
That's how BO works, It explores the fuction. Just because we've hit a local minimum at X1, doesn't mean there isn't anything better elsewhere. You need to probe certain amount of points before you are certain how how the function looks and where the global minimum is.
Thank you very much for your explanation!
Then, I am wondering how should we select the stopping criteria for BO. Could you explain when should we stop the iterations? Is there any quantitative method that can demonstrate stopping criteria?
That is highly case dependent. Sometimes you want to stop when new Ys don't change much, sometimes you have a budget in terms of time or number of calls to the objective.
This issue turns into a 101 on bayes opt. Do consider a proper tutorial, e.g. this one from Peter Frazier, one of the experts in the field.
Thank you for your explanation!
I'm thinking if the acquisition value can demonstrate stopping criteria because the acquisition value will decrease when iteration increases.
Could you tell me how to plot acquisition value change as iteration increases in GpyOpt?
For how to plot acquisition and similar functions, see GPyOpt tutorials. Plotting funciton is used here, for example.
It isn't a good stopping criterion on its own, because acquisition isn't designed to tell you objective minimum - its designed to balance exploration and exploitation. Two points can value the same for different reasons.
Do you mean by using the codemyBopt.plot_acquisition()
?
Is there any way to plot acquisition value vs iterations? like the below image
Thank you very much!
i don't think there is a built-in function for that. your best bet is to do the plotting yourself for that
Could you tell me how to plot it by myself? I try this code, but it doesn't work.
The acquisition function value can be got by myBopt1.acquisition.acquisition_function(x). For more details about the acquisition function, I think you can read the code in GpyOpt/GPyOpt/acquisitions folder.
Thank you so much for your help! @LilyEvansHogwarts
Hi, I have some questions about the true best value in BO. my code is listed as below:
Then I plot the predicted best value of BO (myBopt1.Y[:i]) and the final best value of BO( myBopt1.Y)
My question is why the final best values do not converge as the predicted best values do? Why the final best values fluctuate? What is the relation between myBopt1.fx_opt and myBopt1.Y?