doc:init

Parameter Initialization

Parameters in SCONE have a default initial mean and standard deviation, which are typically defined in the SCONE scenario as follows:

parameter = mean~stdev<min,max>

However, in some cases you may want to use different initial values, for instance when you wish to:

  • initialize the parameters with a previous optimization result
  • use specific values for the control points of a FeedForwardController.

SCONE allows you to do so via a parameter file, which can be specified for initialization as follows:

CmaOptimizer {
    init { file = my_init_file.par }
    ...
}

This will cause parameters defined my_init_file.par to be used as the initial mean and standard deviation for the optimization. Only parameters that are already defined in the scenario are loaded (check the Parameters window to see them), other parameters are ignored.

Files with the .par extension are simple text files that can be edited using any text editor.

SCONE Studio makes it relatively easy to use a .par file from a previous optimization:

  1. Make sure you have a .scone scenario opened in SCONE
  2. Right click on the .par file you wish to use for the optimization
  3. Select Copy to Scenario Folder from the context menu
  4. The file is now copied to a subfolder below your .scone file, with the filename copied to the clipboard
  5. You can add an init { file = … } statement, using Ctrl+V to paste the name of the file that was just copied

Parameters from previously optimizations typically have very low standard deviations once they are converged. It is therefore often useful to increase the standard deviation from a previous optimization to allow for more exploration. This can be done by either multiplying the values in the .par file by a factor:

init { file = my_init_file.par std_factor = 10 }

You can also choose to ignore the standard deviations in the .par file:

init { file = my_init_file.par use_std = false }

You can experiment with different settings to see what works best.

The init statement has several other options, which allow you to:

  • read parameters in such a way that are locked and excluded from the optimization
  • include or exclude parameters with specific names

Click here for more information.