You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For an in-depth look at the different batch notions in BoTorch, take a look at
51
-
the [Batching in BoTorch](#batching) section.
52
+
the [Batching in BoTorch](batching) section.
52
53
53
54
54
55
## Optimizing Acquisition Functions
55
56
56
-
While BoTorch tries to align as closely as possible with PyTorch when possible, optimization of acquisition functions requires a somewhat different approach. We now describe this discrepancy and explain in detail why we made this design decision.
57
+
While BoTorch tries to align as closely as possible with PyTorch when possible,
58
+
optimization of acquisition functions requires a somewhat different approach.
59
+
We now describe this discrepancy and explain in detail why we made this design
60
+
decision.
57
61
58
62
In PyTorch, modules typically map (batches of) data to an output, where the
59
63
mapping is parameterized by the parameters of the modules (often the weights
@@ -80,20 +84,20 @@ optimizing a model with these algorithms is by extracting the module's
80
84
parameters (e.g. using `parameters()`), and writing a manual optimization loop
81
85
that calls `step()` on a torch `Optimizer` object.
82
86
83
-
Optimizing acquisition functions is different since the problem
84
-
dimensionality is often much smaller. Indeed, optimizing over $q$ design points in a
87
+
Optimizing acquisition functions is different since the problem dimensionality
88
+
is often much smaller. Indeed, optimizing over $q$ design points in a
85
89
$d$-dimensional feature space results in $qd$ scalar parameters to optimize
86
90
over. Both $q$ and $d$ are often quite small, and hence so is the dimensionality
87
91
of the problem.
88
92
Moreover, the optimization problem can be cast as a deterministic one (either
89
93
because an analytic acquisition function is used, or because the
90
94
reparameterization trick is employed to render the Monte-Carlo-based evaluation
91
95
of the acquisition function deterministic in terms of the input tensor $X$).
92
-
As a result, optimization algorithms that are typically inadmissible for problems
93
-
such as training Neural Networks become promising alternatives to standard
94
-
first-order methods. In particular, this includes quasi-second order methods
95
-
(such as L-BFGS or SLSQP) that approximate local curvature of the acquisition
96
-
function by using past gradient information.
96
+
As a result, optimization algorithms that are typically inadmissible for
97
+
problems such as training Neural Networks become promising alternatives to
98
+
standard first-order methods. In particular, this includes quasi-second order
99
+
methods (such as L-BFGS or SLSQP) that approximate local curvature of the
100
+
acquisition function by using past gradient information.
97
101
These methods are currently not well supported in the `torch.optim` package,
98
102
which is why BoTorch provides a custom interface that wraps the optimizers from
research built on top of [PyTorch](https://pytorch.org/), and is part of the
9
+
PyTorch ecosystem.
8
10
9
-
Bayesian optimization (BayesOpt) is an established technique for sequential
11
+
Bayesian Optimization (BayesOpt) is an established technique for sequential
10
12
optimization of costly-to-evaluate black-box functions. It can be applied to a
11
13
wide variety of problems, including hyperparameter optimization for machine
12
14
learning algorithms, A/B testing, as well as many scientific and engineering
@@ -15,19 +17,21 @@ problems.
15
17
BoTorch is best used in tandem with [Ax](https://ax.dev), Facebook's open-source
16
18
adaptive experimentation platform, which provides an easy-to-use interface for
17
19
defining, managing and running sequential experiments, while handling
18
-
(meta-)data management, transformations, and systems integration. Users who just want an easy-to-use suite for Bayesian optimization [should start with Ax](https://ax.dev/docs/bayesopt).
20
+
(meta-)data management, transformations, and systems integration. Users who just
21
+
want an easy-to-use suite for Bayesian Optimization
22
+
[should start with Ax](https://ax.dev/docs/bayesopt).
19
23
20
24
21
25
## Why BoTorch?
22
26
23
27
### Improved Developer Efficiency
24
28
25
29
BoTorch provides a modular and easily extensible interface for composing
26
-
Bayesian optimization primitives, including probabilistic models, acquisition
30
+
Bayesian Optimization primitives, including probabilistic models, acquisition
27
31
functions, and optimizers.
28
32
29
33
It significantly improves developer efficiency by utilizing quasi-Monte-Carlo
30
-
acquisition functions (by ways of the "re-parameterization trick"
34
+
acquisition functions (by way of the "re-parameterization trick"
31
35
[^AutoEncVarBayes], [^ReparamAcq]), which makes it straightforward to implement
32
36
new ideas without having to impose restrictive assumptions about the underlying
33
37
model. Specifically, it avoids pen and paper math to derive analytic expressions
0 commit comments