-
Notifications
You must be signed in to change notification settings - Fork 400
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add docs describing constraints on a high level (#730)
Summary: First stab at addressing #729 Pull Request resolved: #730 Reviewed By: ldworkin Differential Revision: D29428625 Pulled By: Balandat fbshipit-source-id: bc75064556ee5b361ab2d5aa24bd903a6ced6619
- Loading branch information
1 parent
835fd0c
commit 01c4707
Showing
2 changed files
with
47 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
id: constraints | ||
title: Constraints | ||
--- | ||
|
||
BoTorch supports two distinct types of constraints: Parameter constraints | ||
and outcome constraints. | ||
|
||
|
||
### Parameter Constraints | ||
|
||
Parameter constraints are constraints on the input space that restrict the | ||
values of the generated candidates. That is, rather than just living inside | ||
a bounding box defined by the `bounds` argument to `optimize_acqf` (or its | ||
derivates), candidate points may be further constrained by linear (in)equality | ||
constraints, specified by the `inequality_constraints` and `equality_constraints` | ||
arguments to `optimize_acqf`. | ||
|
||
Parameter constraints are used e.g. when certain configurations are infeasible | ||
to implement, or would result in excessive costs. These constraints do not affect | ||
the model directly, only indirectly in the sense that all newly generated and | ||
later observed points will satisfy these constraints. In particular, you may | ||
have a model that is fit on points that do not satisfy a certain set of parameter | ||
constraints, but still generate candidates subject to those constraints. | ||
|
||
|
||
### Outcome Constraints | ||
|
||
In the context of Bayesian Optimization, outcome constraints usually mean | ||
constraints on some (black-box) outcome that needs to be modeled, just like | ||
the objective function is modeled by a surrogate model. Various approaches | ||
for handling these types of constraints have been proposed, a popular one that | ||
is also adopted by BoTorch (and available in the form of `ConstrainedMCObjective`) | ||
is to use variant of expected improvement in which the improvement in the objective | ||
is weighted by the probability of feasibility under the (modeled) outcome | ||
constraint ([^Gardner2014], [^Letham2017]). | ||
|
||
See the [Closed-Loop Optimization](../tutorials/closed_loop_botorch_only) | ||
tutorial for an example of using outcome constraints in BoTorch. | ||
|
||
|
||
|
||
[^Gardner2014]: J.R. Gardner, M. J. Kusner, Z. E. Xu, K. Q. Weinberger and | ||
J. P. Cunningham. Bayesian Optimization with Inequality Constraints. ICML 2014. | ||
|
||
[^Letham2017]: B. Letham, B. Karrer, G. Ottoni and E. Bakshy. Constrained Bayesian optimization with noisy experiments. Bayesian Analysis 14(2), 2019. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters