-
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
Comp Rep Transition Point #278
Comp Rep Transition Point #278
Conversation
ed2a23b
to
f2f5370
Compare
@AdrianSosic I guess you shouldnt rebase this branch but the target branch? otherwise i see the last main commits also always in this PR :/ |
041dbd6
to
33ac341
Compare
33ac341
to
49350a3
Compare
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.
This is an incomplete PR, but I am currently trying to figure out how to do these more efficiently. More will come :D
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.
Next round of comments, looking good overall imo
will wait with approval for other PR and rebase |
0dec698
to
7669528
Compare
7669528
to
78e3938
Compare
Completes the surrogate factoring, which extended over #278, #309, #315, #325, #337. ### Most important changes * The transition point from experimental to computational representation has been moved from the recommender to the surrogate. From an architecture/responsibility perspective, this is reasonable since the recommend should not have to bother about algorithmic/computational details. * The desired consequence is that public `Surrogate` methods like `posterior` and `fit` can now operate on dataframes in experimental representation, meaning they can also be exposed directly to the user. * The new posterior methods now all return a general `Posterior` object instead of implicitly assuming Gaussian distributions. This paves the way for arbitrary surrogate extensions, such as Bernoulli/Categorical surrogates, etc. At the moment, this introduces an explicit coupling to botorch, which is fine because botorch remains a core dependency and the only backend used for complex surrogate modeling. In the future, this can be further abstracted by introducing our own `Posterior` class. * The `Surrogate` layout has been refined such that the extracted `SurrogateProtocol`, which now defines the formal interface for all surrogates, imposes minimal requirements to the user. * Scaling has been completely redesigned, offering the possibility to configure input/output scaling down to the level of individual parameters and targets. The configuration is currently class-specific, but can be extended to allow surrogate instance specific rules in the future.
This PR is a first step toward a refactored
Surrogate
layout:exp_rep
-to-comp_rep
transition point into the surrogates, which now become responsible for handling the transformation and can do it in whatever way they need it (which will also simplify scaling later on).exp_rep
) and do not need to worry about transformations.