-
Notifications
You must be signed in to change notification settings - Fork 120
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
Implementation of Active CMAES #367
Conversation
It's just the (Vanilla) CMAES tests that are failing. I'm fine tuning the parameters used in the tests. |
#include <ensmallen_bits/function.hpp> | ||
|
||
#ifndef NOT_EMPTY_TRANSFORMATION | ||
#define NOT_EMPTY_TRANSFORMATION |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure what this define is for
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for pointing this out! Now that I look at it, I don't think this define is required. The ACTIVE_CMAES_CMAES_IMPL_HPP
define should be enough. I'll make changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm looking at this once more and I realize that if the define is removed and the user uses both Vanilla and Active CMAES, there will be double inclusion (which is why I added the include guard in the first place). The ACTIVE_CMAES_CMAES_IMPL_HPP
define is indeed not enough.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It sounds like in that case that either NotEmptyTransfornation
should be moved to its own file and included by both versions, or if the functionality differs here then perhaps it just needs a new name. I think I have understood the problem, let me know if not.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, I'll move NotEmptyTransfornation
to its own file.
@@ -20,31 +20,82 @@ | |||
|
|||
#include <ensmallen_bits/function.hpp> | |||
|
|||
#ifndef NOT_EMPTY_TRANSFORMATION | |||
#define NOT_EMPTY_TRANSFORMATION |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not sure what this define is for
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll be sure to update this too.
@mlpack-jenkins test this please |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No more comments from my side, thanks for the contribution.
If we use |
Yes, but the default is |
Do you see any problem with using |
We could even provide another constructor for thee empty transformation. |
Looking at it again, if we keep the constructor, it's backward compatible, since I can still use the "old" constructor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Second approval provided automatically after 24 hours. 👍
Yes, that's why it was marked as deprecated instead of being removed altogether. We could make |
I think both interface are fine, the old interface is closer to what we provide for the other optimizers, so I like to keep it, the new one offers the ability to support more transformations so I like to keep it as well. |
Alright. We should probably modify Vanilla CMA-ES as well then (the element types should be changed as well for consistency). |
Makes sense, I'll resolve the failing test and merge this PR. |
Thanks for the great contribution. |
This pull request is an initial implementation of Active CMAES, which is part of my Google Summer of Code (GSoC) project. Tests have not been added yet, but they will be included soon.