ppgaluzio / MOBOpt

Multi-objective Bayesian optimization
MIT License
81 stars 23 forks source link

lbfgs failed to converge (status=2) #13

Closed Dwood0403 closed 3 years ago

Dwood0403 commented 3 years ago

Thank you so much for this code. It has proven really useful. However, I'm running into convergence issues whenever I call the objective functions. What do you suggest would be the best way to correct this in your package? I don't think it's an issue with a complex objective function and I can't figure out how to increase the number of iterations in the package.

Increase the number of iterations (max_iter) or scale the data as shown in: https://scikit-learn.org/stable/modules/preprocessing.html _check_optimize_result("lbfgs", opt_res) ~\Anaconda3\envs\mobopt\lib\site-packages\sklearn\gaussian_process\_gpr.py:494: ConvergenceWarning: lbfgs failed to converge (status=2): ABNORMAL_TERMINATION_IN_LNSRCH.

Thanks again

ppgaluzio commented 3 years ago

This has been an issue with some objectives, and it is related to the GP from sklearn. It was suggested by the reviewers of our work to change the GP library from sklearn to a more robust one. It is definitely something that I intend to do, I just haven't had much time to work on this project lately. From my experience though, I have used the optimizer with many different objectives and this warning does not impact the final result. I do believe it is related to the fact that in an optimizer setting you will have many points probed from the objective that are very close together, and that may be the cause of this warning. An alternative would be to increase the value of alpha in the GP, this could help. But I am not sure, I would have to run some tests.

Dwood0403 commented 3 years ago

Thanks for your response