Skip to content

Classification Model as Output Constraint #725

@jduerholt

Description

@jduerholt

Dear botorch developers,

I have a question regarding output constraints. So far they are used and implemented in the following way:

  • There is a property which should be larger than a user provided threshold.
  • A GP regression model is build to model the property. The output of the regression model is used as input for a sigmoid function that is chosen in a way that it is 1 above the thresshold.
  • The actual optimization target is then multiplied by the output of the sigmoid function and this product forms the actual objective function
  • The combination of regression model and sigmoid can be interpreted as a classification model --> related to logistic regression

Now comes my question:

How to set up a optimization in which a "real" classification model is needed. Imagine achemical experiment in which only certain input combinations lead to a "successful" experiments. Successful in this context means that it is possible to measure the properties that should be optimized. For the failed experiments, no outputs are available, and within the BO loop one wants to propose only experiments that lead to succesful experiments.

I found one paper in this context. They are using an in the loop classifier to judge if a experiment will be succesful or not. I think there should be better solutions using the technique on the output constraints described above. One could for example train directly a classification model using gpytorch and multiply its output with the actual objective.

What are your thoughts on this and have you ever tried something related within botorch?

Best,

Johannes

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions