-
Notifications
You must be signed in to change notification settings - Fork 312
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
Optimization of analytic functions #935
Comments
Yeah this is something that has come up in our own research also (cc @dme65, @qingfeng10). On the BoTorch end, we have the Unfortunately, we currently don't have a way to easily expose this on the top level Ax API. Ultimately, the correct solution is a refactor of our Modelbridge & Model APIs, and BoTorch interface that will make specifying such analytic functions (to be used both as objectives and as constraints) in Ax possible. But this is a rather comprehensive refactor that will take some thinking (and more coding). There are probably some hacky ways to make things work in the meantime - maybe @dme65 has an example for this? |
@dme65 any thoughts for a workaround? |
I think it will realistically be a bit before we can release a good |
In Section S.3.B of:
they performed a multi-objective optimization with one objective as a black box and another objective (cost) that is analytically calculated, but that I think was also represented as a black box. A quick search led me to:
where they rederived a few multi-objective acquisition functions to consider one black box objective and one analytic objective.
This topic is related to #745, except that the analytic objective is actually an objective to be optimized rather than a non-linear constraint on the input parameters. This idea of mixed analytical and black box functions is pretty common in the physical sciences, where one seeks a tradeoff between increasing (often several) difficult-to-model performance metrics and lowering monetary cost. Monetary cost as part of a multi-objective optimization is something that's been on my mind, and now I am realizing some of the difficulties of efficiently implementing it.
I've considered a few things:
Any thoughts/suggestions?
The text was updated successfully, but these errors were encountered: