Table of Contents
Our framework integrates design of experiments (DOE), BO, and surrogate modeling. The goal is to optimize the function of interest, i.e., objective function
The outputs of f,
Initially, a set of initial sampling X_init
is generated from a DOE. These sampling points are passed to f for evaluation. One collects the data
Next, an acquisition function gives the new sampling points (i.e., infill points, X_new
) based on their usefulness for achieving the optimization goal. At this stage, one could choose to visualize the response surfaces using the surrogate model or the infill points locations in the design space. A new set of data would be collected by evaluating f at X_new
and used to train f̂.
This process is repeated until the accuracy of f̂ is satisfactory or the optima location
As a software package, NEXTorch is structured in a similar way to the active learning framework. Initially, users are left to identify the parameters and objectives and frame the optimization problems they work with. The key information required includes the ranges and types (categorical, ordinal, continuous, or mixed) of each parameter. It would also be helpful to know the sensitivity of parameters by performing exploratory data analysis (such as PCA or random forest).
Depending on the availability of the objective function, NEXTorch supports two types of optimization loop:
- automated optimization, where the analytical form of the objective function is known and provide to the software (in the form of a Python object), often in the case of computer simulations
- human-in-the-loop optimization, where the objective function is unknown, often in the case of laboratory experiments.
We call the action of generating data from the objective function an Experiment
, which is also the name of the core class in NEXTorch.
In (1), data are passed through the loop, and experiments are evaluated at the new trials suggested by the acquisition function automatically.
In (2), visualization could help the users decide whether to carry on the experiments or adjust the experimental setup.
The users are left to perform the experiments and supply data at the new trials. NEXTorch reads CSV or Excel files from users and exports the data in the same formats.
The major steps of implementing BO in NEXTorch can be summarized as following:
- Import nextorch and other packages
- Define the objective function and the design space
- Define the initial sampling plan
- Initialize an
Experiment
object - Run optimization trials
- Visualize the model reponses
- Export the optimum
Note
Step 6 can take place after step 3, 4 or each optimization loop in step 5.
NEXTorch is implemented in a modular fashion which makes running each step much easier. We will go through the main modules and functions next.