-
Notifications
You must be signed in to change notification settings - Fork 352
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
[Experimental] Enable multiobjective within optimizers #775
Conversation
...good luck, that one is super scary... |
|
||
|
||
# pylint: disable=redefined-outer-name,unsubscriptable-object,unused-variable,unused-import,reimported,import-outside-toplevel | ||
def test_doc_multiobjective() -> None: |
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.
@teytaud below is an example of how that could work
# TODO the following is probably not good at all: | ||
# -> +inf if no point is strictly better (but lower if it is) | ||
if (stored_losses <= losses).all(): | ||
distance_to_pareto = min(distance_to_pareto, min(losses - stored_losses)) |
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.
@teytaud any thought on this?
# TODO the following is probably not good at all:
# -> +inf if no point is strictly better (but lower if it is)
if (self._upper_bounds > -float("inf")).all() and (losses > self._upper_bounds).all(): | ||
return float('inf') # Avoid uniformly worst points |
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.
@teytaud I've added this case to auto-bound:
if one point is uniformly bad compared to previous ones, do not include it
that makes the example work way better. Is it a problem though?
remotely, and aggregate locally. This is what happens in the "minimize" method of optimizers. | ||
""" | ||
|
||
def __init__(self, upper_bounds: tp.Optional[tp.ArrayLike] = None, auto_bound: int = 15) -> None: |
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.
the auto-bound number should probably depend on the dimension :s
Todo:
|
Types of changes
Motivation and Context / Related issue
How Has This Been Tested (if it applies)
Checklist