-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
CMA-ES inconsistencies #1475
Comments
Hello Filip, thanks for taking the time to look into the code.
I see your point, that we should be able to provide and use initial parameter; the issue I saw is that CMAES really kicks off if we start with some "reasonable" parameter; but "reasonable" highly depends on the task, and I agree that the parameter has to be tailored down for each task.
Good point, we should introduce two new methods to control the step size damping and the cumulation constant.
Right, I think we would have to define some general strategy to define optimizer wide bounds. I will look into each point, in the next days and open a PR, unless someone likes to pick this up, in which case I'm happy to share the work. |
Thank you for such a swift reply. The first and the second point should be quite straightforward. The third point could be a bit tricky. One way might be to project and optimize the variables in some kind of bounded space (e.g., evaluate I am tagging the father of the algorithm - @nikohansen, maybe he has some guidelines for this (he usually does). 🙂 |
Agreed, the For any periodic transformation, the initial value for |
@zoq Are you working on this ? If not I would like to take a look. Thanks |
Please feel free to work on this one. |
I opened mlpack/ensmallen#70; since the optimization framework is now part of ensmallen, we can continue any discussion and implementation there. 👍 |
Hi everyone, first of all, thank you for the huge amount of work you have done on this project.
After a brief pass through the CMA-ES implementation, I found a few inconsistencies with the documentation.
The documentation of the
Optimize
function states that the last parameter (iterate
) is also used as the starting point of the algorithm. However, this parameter seems to be basically ignored and the starting point is generated randomly here.When the algorithm does not converge, it suggests to use a smaller step size here, yet there is no way to change the step size.
The
lowerBound
andupperBound
variables don't seem to be true bounds for the variables. As far as I understand the code, those are only used to deduce the initialsigma
value and the random starting point.Have a nice day!
The text was updated successfully, but these errors were encountered: