Comments (8)
MVaR is not differentiable, so gradient issues not terribly surprising.
To get unblocked on this, a recommended alternative is to use MARS (https://proceedings.mlr.press/v162/daulton22a.html) which is way faster and differentiable than directly optimizing MVaR with qNEHVI. You can use MARS by instead setting
risk_measure = RiskMeasure( risk_measure="MARS", options={"n_w": 16, "alpha": 0.8}, )
and
modelbridge = Models.BOTORCH_MODULAR(
experiment=exp,
data=exp.fetch_data(),
surrogate=Surrogate(botorch_model_class=SingleTaskGP),
botorch_acqf_class=qLogNoisyExpectedImprovement,
)
```.
from ax.
Thanks, @sdaulton , that unblocked me indeed! Can I ask why your code uses qLogNoisyExpectedImprovement and not its hypervolume counterpart?
@saitcakmak glad it reproduced, thanks for responding with the fix so quickly
from ax.
Hi @apaleyes. The code you shared runs fine for me, on Ax 0.3.6. I don't think there were any changes to this part of the code recently, so I don't know why you'd be getting an error due to gradients.
Can you try again with the latest versions of Ax & BoTorch? If you get the error again, sharing the full stack trace could be helpful to identify where the error is coming from.
from ax.
Oh, I copy pasted the code and didn't realize that it was using expectation rather than MVaR. I can reproduce the issue after updating that
from ax.
Ok, the issue is that the MVaR implementation in BoTorch is not differentiable. The code has a warning on this but it is easy to miss when you get an error: https://github.com/pytorch/botorch/blob/main/botorch/acquisition/multi_objective/multi_output_risk_measures.py#L498-L505
We do have a version of it with approximate gradients but looks like that change was never upstreamed to BoTorch.
from ax.
Glad that unblocked you! MARS optimizes MVaR by optimizing the VaR of random Chebyshev scalarizations. Since it scalarizes the problem, it uses a single-objective acquisition function.
from ax.
Related Issues (20)
- [CODING QUESTION] Data to attach is empty HOT 2
- [CODING QUESTION] 'Data' object has no attribute 'is_ok' HOT 3
- how to use Banit Optimization of AX if i want to set multiple objects? HOT 4
- SyntheticRunner: @property decorator missing for def run_metadata_report_keys() HOT 2
- How to add json_encoder_registry in RegistryBundle to save to JSON file
- Deserialization using RegistryBundle not working as expected HOT 5
- Question regards how to enforce one set of user choice default values during the Sobol initial trial generation. HOT 5
- Typeguard requirement is for old version HOT 5
- how to get plots(slice, contour) from 'ax_client_snapshot.json'? HOT 3
- Remove deprecated `FixedNoiseGP` from examples
- API docs still show usage of minimize=True and objective_name="branin" despite deprecation warning HOT 1
- evaluate_acquisition_function does not work correctly HOT 4
- FullyBayesianMOO memory usage HOT 5
- Example (tutorial) for ST_MTGP_NEHVI HOT 2
- Out of Memory crash issue HOT 6
- "Hyperparameter Optimization via Raytune" link in website is broken. HOT 2
- Using `evaluate_acquisition_function` on `AxClient` causes subsequent optimziation errors HOT 2
- Question : modifications of compute_posterior_pareto_frontier HOT 2
- Tracking of auxiliary metrics HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ax.