josejimenezluna / pyGPGO

Bayesian optimization for Python
http://pygpgo.readthedocs.io
MIT License
241 stars 61 forks source link

Add support or documentation for noisy vs. noiseless objective functions #13

Closed jamesdj closed 5 years ago

jamesdj commented 5 years ago

Other Bayesian optimization libraries I have used allow users to specify whether evaluation of the objective function is exact or noisy. These two scenarios should be treated differently in the optimization. I haven't seen anything in pyGPGO's documentation about this distinction. If it is not supported, it would be useful to add support for it, and in the meantime make clear which of the two noise scenarios is supported. If both are supported and the option is just not documented, it would help to add documentation.

josejimenezluna commented 5 years ago

Hello @jamesdj

Target noise information is encoded in the covariance function of the surrogate model, namely the sigmaf parameter. You can either fix them a priori or adopt another strategy, as seen in this notebook:

https://github.com/hawk31/pyGPGO/blob/master/tutorials/hyperparam.ipynb

jamesdj commented 5 years ago

Thanks for the quick response. That's very helpful. Maybe many of your users are familiar enough with Bayesian optimization to know that this has to do with the covariance function of the surrogate model. However, I imagine you will have other users like me who don't immediately make that connection. If you had e.g. a quick start section that touched on this issue along with some other basic considerations, and maybe linked to your example notebooks, that could help. One could learn the necessary background from the paper you reference, which is good, but it may not be best to rely entirely on that. This is already the best library I have tried in terms of different methods supported and ease of use. A little more documentation would make it easier to use and accessible to more people.

josejimenezluna commented 5 years ago

I will try and make the tutorials a bit more visible :+1: