-
Notifications
You must be signed in to change notification settings - Fork 415
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
Support different noise levels for different outputs in test functions #2136
Conversation
…date forward method so that it will work for multiobjective
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.
Thanks a lot for getting started on this!
Overall this looks great, a couple of minor inline comments. Could you please also update the docstrings to explain how the new list arg works?
The other thing that needs updating are the functions in https://github.com/pytorch/botorch/blob/main/botorch/test_functions/synthetic.py - this should largely be a search and replace exercise. There are also constrained problems (subclassing also from ConstrainedBaseTestProblem
) that would currently not be handled by these changes - if you feel up for it you can think through what a good setup / interface for that could look like. But that's also something that you (or someone else) could do in a follow-up PR.
@Balandat has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
…e, and add length check of noise_std if specified as a list in MultiObjectiveTestProblem
…h noise_std raises InputDataError
Thank you for the helpful feedback! I've implemented almost all of your suggestions (updating type hints to more readable format, updating docstrings, changing to A question regarding this remark: For the |
Thanks for the updates.
Yes, I think that makes a lot of sense. The constrained problems at the end of synthetic.py technically do have multiple outputs, but this is exposed through the
|
…owing for separate constraint noise from objective noise, and for separate constraint noise for each objective
…on, and add test function instances within each test that specify constraint noise
Thanks for the suggestions. I liked the approach that you described I gave the base class a |
@Balandat has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
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.
Very nice, thanks for whipping this into shape so quickly.
FYI there is a some internal code that we will have to update based on these changes, so while this is pretty much ready to go in of itself (modulo the minor changes I suggested), it may be a few days until we can actually merge this in so as to not break anything downstream.
Thanks a lot for your contribution!
…synthetic.py Co-authored-by: Max Balandat <Balandat@users.noreply.github.com>
…ConstrainedHartmann problems, and change assertRaises to assertRaisesRegex in tests
@Balandat has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
Summary: Supports the changes to BoTorch's `BaseTestProblem` from pytorch/botorch#2136 that allow for multiple noise levels for different outcomes. Reviewed By: sdaulton Differential Revision: D51839441
…2049) Summary: Supports the changes to BoTorch's `BaseTestProblem` from pytorch/botorch#2136 that allow for multiple noise levels for different outcomes. Reviewed By: sdaulton Differential Revision: D51839441
Summary: Pull Request resolved: #2049 Supports the changes to BoTorch's `BaseTestProblem` from pytorch/botorch#2136 that allow for multiple noise levels for different outcomes. Reviewed By: sdaulton Differential Revision: D51839441 fbshipit-source-id: 4922e66c64749c807c56e7e1cd0955c0a85b291d
Adds support for different noise levels for different objectives in a multiobjective test function
Closes #2135
Modifies
BaseTestProblem
class to allow fornoise_std
to be a list of floats, where the length should be the number of objectives in aMultiObjectiveTestProblem
. This way each component of the objective function can be subject to a separate noise level.