-
Notifications
You must be signed in to change notification settings - Fork 47
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
Double inversion for transformed minimization targets #460
Comments
I guess the hotfix solution could be to simply (temporarily) invert a third time in |
@Scienfitz, @Alwalid-Abushanab, a hotfix is up under |
I briefly executed your exact code as well as minor variations (changing bounds a bit) of it. The recommendation is consistently equal to p
0 0.0 which is what we expect, right? |
Yes. But I was hoping more on some alternative example / doing some other sanity check. I tested my example above + the original example posted in #459 |
Then let me do some more testing. |
This PR hot-fixes #460 by multiplying the output of the `objective.transform` with -1 if the target is bounded and to be minimized. This PR also introduces a test and a small example for verifying the desired behavior. The solution implemented here is only temporary and will be replaced with a proper mechanism soon.
As described in #459, there is an unintended second inversion of minimization targets when bounds are involved, as they add a corresponding additional transformation to the target, resulting in:
introduced inMIN
mode via acquisition function #340Minimal Example
Sketch of Fix
The problem can be fixed by setting the
descending
argument on the following line toFalse
baybe/baybe/targets/numerical.py
Line 46 in fd78099
However, this would result in an incorrect behavior for targets entering a desirability objective, for which the inversion is needed. Unfortunately, the information whether an single target or a desirability objective is used is unavailable at this point. So we need to find an alternative hotfix until a "proper" solution is implemented (which is around the corner for Pareto)
The text was updated successfully, but these errors were encountered: