-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for generic surrogate framework #57
Comments
I am moving forward on this front, questions on implementation details will be posted here. My current understanding is that all variants are using a pre-selection scheme. Does it make sense to also support a simpler scheme where calls to the surrogates and the objective functions are simply alternated every \hat{n} steps. This has some consequences on the code architecture. I am following the pre-selection scheme from page 112 of http://hal.archives-ouvertes.fr/docs/00/82/38/82/PDF/Thesis.pdf and steps 5 & 6 from Figure 4.8-D:
I have more questions, but let's solve one issue at a time! |
…strategy and Ranking SVM are included, ref #57
This is the first ready-to-run surrogate support for the libcmaes. See the features, results and what come next below. I am considering that this ticket is for the main surrogate structural support, so depending on activity for remarks and comments over the next few days, I will close it and open new tickets for more detailed features. What is implemented now:
What comes next:
ResultsMain testing tools:
To reproduce:
Note: noisyness of test error in surrogate exploitation is due to the use of testing against 3 new samples at every iteration. |
…d by ranks provided by the surrogate instead of proper objective function values, ref #57
First version of the documentation is available here: https://github.com/beniz/libcmaes/wiki/Using-Surrogates-for-expensive-objective-functions |
…surrogate lifelength. Automatic control still underoptimal, ref #57
…s + direct access to solution object from within the existing surrogate strategies, ref #57
Main fixes to algorithms and default values, better performances and novel tiny program added for assessing performances on a range of functions for comparison with literature. Results have been assessed once, but I'll publish a final dataset of results here for identifying and informing about remaining weaknesses and for comparison with literature. |
Theoretical fix. The selection sampling was using an identical Mersenne twister for two independent normal distributions, a consequence of C++ copying the initial twister (http://stackoverflow.com/questions/22987429/avoid-same-random-numbers-with-same-generator-random-c-11). At the moment there's no discernible effect on the results. |
Results for ACM surrogates and comparison from https://www.lri.fr/~ilya/phd.html pages 95-96 (see image below) are below. For comparison all experiments uses the exact same parameters than the literature above.
All results are reproducible with:
Change (I am investigating the problem for schwefel14 in 4-D) |
Schwefel14 in 4-D triggers ConditionCov, then tolX. When these stopping criteria are deactivated, sigma becomes nan at some point and yields the failure observed on all runs in 4-D. |
Got rid of the call to rand() in rankingsvm which is not thread-safe and definitely deprecated, see http://cpp.indi.frih.net/blog/2014/12/the-bell-has-tolled-for-rand/ Also, re-closing this issue. My understanding is that the oddity with schwefel14 in 4-D is a numerical error, but I will definitely reopen if I need to reconsider this. |
If I understand the experimental setup correctly, you should get the same results on |
Here is what I get when modifying the ftarget value as suggested:
|
Looks alright: what I meant was that the target |
…strategy and Ranking SVM are included, ref CMA-ES#57
…d by ranks provided by the surrogate instead of proper objective function values, ref CMA-ES#57
…surrogate lifelength. Automatic control still underoptimal, ref CMA-ES#57
…s + direct access to solution object from within the existing surrogate strategies, ref CMA-ES#57
…alues + rank available in candidate object, ref CMA-ES#57, CMA-ES#106
A surrogate (machine) learning model replaces some of the calls to the true objective function by learning from past calls, and delivering an approximate ranking of objective function values.
The text was updated successfully, but these errors were encountered: