Main Concepts
Last updated
Last updated
An Experiment consists of a set of parameters that you are searching over and the associated metric/metrics that you are optimizing. Defining the Experiment is crucial to the success of your optimization problem. The following subsections list out the key components to consider when creating an Experiment: the parameters, the metrics, and the observation budget.
Parameters are a crucial part of every SigOpt experiment, defining the domain to be searched. SigOpt supports double, integer, and categorical parameter types.
Defining a meaningful domain is an important step towards a successful application. Sometimes, our users have more knowledge about how parameters relate and how they relate to the optimization problem. Leveraging that knowledge can help to improve performance and obtain better results.
Therefore, in addition to parameter types, SigOpt provides several features and recommendations that can help to construct a domain for a specific problem.
Grid Values - optimize over a specific set of numerical values.
Logarithmic Parameter Transformation - search a parameter on a logarithmic scale.
- define the distribution of a parameter.
- restrict the parameter space in with linear inequality constraints.
Refer to the for more information on how to specify the parameter space in an Experiment.
SigOpt Experiments can optimize any real-valued objective function. It is important to understand which metric or metrics to optimize. Moreover, it can also be helpful to even when they are not being optimized. SigOpt provides several features and recommendations that can help with dealing with multiple metrics.
- find the Pareto optimal tradeoff between two competing objective metrics.
- restrict the solutions to a subset of the Pareto frontier.
- pose auxiliary metrics as constraints.
- search for diverse solutions in more than two metrics.
The number of Observations you plan to create for this experiment is another key to success. For users who are severely limited by the available compute resources and the long evaluation time, a smaller parameter space could lead to a "faster" optimization process. Additionally, providing information such as Prior could also help with making the optimization more efficient.
Users can also go beyond the observation budget if they feel that there is more improvement to be gained from additional evaluations.
A Suggestion is a representation of the parameters that SigOpt has suggested. It contains a list of parameters and their respective suggested values. The user can request a new suggestion from SigOpt at any time.
An Observation represents the observed data from a single trial (or evaluation) in your Experiment.
Receive a Suggestion from SigOpt
Evaluate your metrics
Report an Observation to SigOpt
Here is what the full optimization loop may look like for a SigOpt experiment.
For more information on how to specify the metric space in an Experiment, refer to the page.
Since SigOpt takes the observation budget into consideration when making suggestions, we highly recommend users to be close to the observation budget they set when creating the experiment. While it is the user's discretion to set an appropriate observation budget, SigOpt has some general on how to set the observation budget.
When the metric has been evaluated (for the suggested parameter values), the user can report an .
The optimization loop is the backbone of using SigOpt. After , run through these three simple steps, in a loop:
The following Bash script uses the package for processing JSON.