Open souravdey94 opened 2 months ago
in most cases the there are only 3 to 4 important solvents
Is it bad if the suggest arms include more than 3-4 or is this just prior knowledge you want to include? Note: using a SAAS model already encodes the prior the only a few parameters are relevant, so unless you specifically want to avoid generating arms that change many parameters, sparse BO is probably not needed.
Regarding using sparse BO, it looks like optimizing the L0 objective using homotopy does not support parameter constraints. There isn't a fundamental reason by one couldn't though. Some options would be: 1) Use L1_norm instead of L0_norm. This may not lead to the most sparse results, but can be used out of the box. (https://github.com/facebook/Ax/blob/a144287172e74bb5b10376548d0482d5a0ff3507/ax/models/torch/botorch_modular/sebo.py#L241-L265) 2) implement support for parameter constraints in optimize_with_homotopy (https://github.com/facebook/Ax/blob/a144287172e74bb5b10376548d0482d5a0ff3507/ax/models/torch/botorch_modular/sebo.py#L277) 3) Allow setting a fixed parameter value in differentiable relaxation for the L0 norm, and optimize without homotopy. This would require adding another argument that allows one to differentiate what norm to use from how to optimize it, since currently these are coupled.
https://github.com/pytorch/botorch/pull/2588/files extends _optimize_with_homotopy
to include the constraints typically available in optimize_acqf
which I believe addresses suggestion 2. here.
Has it been implemented in Botorch?
https://github.com/pytorch/botorch/pull/2588/files extends
_optimize_with_homotopy
to include the constraints typically available inoptimize_acqf
which I believe addresses suggestion 2. here.
Has it been implemented in Botorch? I am currently using output constraints to learn the composition constraints.
Question
I am trying the predict chemical reaction rates in different solvent combinations. I want to use SEBO because the parameter space can contain upto 30 solvents and in most cases the there are only 3 to 4 important solvents. Since, it is a composition problem, I need to use parameter constraints. But SEBO with parameter constraint is not implemented in Ax. Can you suggest me a work around?
I have added a code snippet of the generation strategy and experiment section.
Please provide any relevant code snippet if applicable.
Code of Conduct