-
Notifications
You must be signed in to change notification settings - Fork 80
Using Surrogates for expensive objective functions
beniz edited this page Oct 8, 2014
·
8 revisions
A surrogate is a replacement model of the true original objective function. This surrogate can be learnt by using a machine learning algorithm from a reduced number of points collected from calls to the true objective function.
Surrogates are mostly useful when calling the true objective function is expensive. They provide a way to optimize the function while drastically reducing the overall number of calls.
Libcmaes supports surrogates and provide an easy way of setting them up. In libcmaes, the use of a surrogate requires two pieces:
- a strategy, that defines how and when to train the surrogate model, and when to exploit it. Libcmaes provides a few well-tested strategies from the literature. Experienced users can easily craft custom ones;
- a machine learning algorithm, and libcmaes provides a ranking SVM implementation. Other machine algorithms can be plugged to the framework without much difficulties.
This means that for non-expert users, it is rather straightforward to use surrogate in order to optimize expensive objective functions.