RuntimeWarning: Optimization failed in gen_candidates_scipy
/ New set of initial conditions / OptimizationWarning failed within scipy.optimize.minimize
#2470
-
Hello together, I am currently running different optimization problems within botorch. When running an optimization loop I often come accross the following warnings: anaconda3\envs\TL_GP\lib\site-packages\botorch\optim\optimize.py:367: RuntimeWarning: Optimization failed in C:\ProgramData\anaconda3\envs\TL_GP\lib\site-packages\botorch\optim\optimize.py:367: RuntimeWarning: Optimization failed in As far as I can tell these warnings arise, when in the optimize_acqf method, when feasible candidates cannot be computed based on the set of initial conditions in the multi-start optimization. But I am not really familiar with what exactly is going on under the hood. Here is some sample code with the provided VehicleSafety problem in botorch, where I encounter these warnings.
The optimization works nevertheless and reaches good results. I know that running into numerical problems is common when fitting a surrogate model, especially in more demanding optimization settings with mulitple objectives. Many thanks in advance for any help or comments! |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
Great :)
I don't see anything wrong with your code. Fundamentally, acquisition function optimization is a non-convex problem; we're using L-BFGS-B under the hood to solve this. Depending on how non-convex the problem is the line search in that method can fail. If the overall performance is good this is nothing to be too concerned about. I'm not sure about the reference point you're using and how much data you have where the observations exceed that reference point, if this is selected very aggressively then backing off there could help make the problem more numerical well-behaved.
Indeed. One would have to go pretty deep and invest quite a bit of time to understand what exactly is going on in your specific case.
Yeah, this is a good question. Increasing |
Beta Was this translation helpful? Give feedback.
module.train()
andmodule.eval()
are not really things you need to worry about when using botorch (only when you want to change things deep in the botorch stack itself). As you know they are concepts from pytorch, which in gpytor…