<root>
  <key>TrainRegression-ann</key>
  <exec>otbcli_TrainRegression</exec>
  <longname>TrainRegression (ann)</longname>
  <group>Learning</group>
  <description>Train a classifier from multiple images to perform regression.</description>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputImageList">ParameterMultipleInput</parameter_type>
    <key>io.il</key>
    <name>Input Image List</name>
    <description>A list of input images. First (n-1) bands should contain the predictor. The last band should contain the output value to predict.</description>
    <datatype />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputFilename">ParameterFile</parameter_type>
    <key>io.csv</key>
    <name>Input CSV file</name>
    <description>Input CSV file containing the predictors, and the output values in last column. Only used when no input image is given</description>
    <isFolder />
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputFilename">ParameterFile</parameter_type>
    <key>io.imstat</key>
    <name>Input XML image statistics file</name>
    <description>Input XML file containing the mean and the standard deviation of the input images.</description>
    <isFolder />
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_OutputFilename">OutputFile</parameter_type>
    <key>io.out</key>
    <name>Output regression model</name>
    <description>Output file containing the model estimated (.txt format).</description>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>io.mse</key>
    <name>Mean Square Error</name>
    <description>Mean square error computed with the validation predictors</description>
    <minValue />
    <maxValue />
    <default>0.0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>sample.mt</key>
    <name>Maximum training predictors</name>
    <description>Maximum number of training predictors (default = 1000) (no limit = -1).</description>
    <minValue />
    <maxValue />
    <default>1000</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>sample.mv</key>
    <name>Maximum validation predictors</name>
    <description>Maximum number of validation predictors (default = 1000) (no limit = -1).</description>
    <minValue />
    <maxValue />
    <default>1000</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>sample.vtr</key>
    <name>Training and validation sample ratio</name>
    <description>Ratio between training and validation samples (0.0 = all training, 1.0 = all validation) (default = 0.5).</description>
    <minValue />
    <maxValue />
    <default>0.5</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>classifier</key>
    <name>Classifier to use for the training</name>
    <description>Choice of the classifier to use for the training.</description>
    <options>
      <choices>
        <choice>ann</choice>
        </choices>
    </options>
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>classifier.ann.t</key>
    <name>Train Method Type</name>
    <description>Type of training method for the multilayer perceptron (MLP) neural network.</description>
    <options>
      <choices>
        <choice>reg</choice>
        <choice>back</choice>
      </choices>
    </options>
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_StringList">ParameterString</parameter_type>
    <key>classifier.ann.sizes</key>
    <name>Number of neurons in each intermediate layer</name>
    <description>The number of neurons in each intermediate layer (excluding input and output layers).</description>
    <default />
    <multiline />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>classifier.ann.f</key>
    <name>Neuron activation function type</name>
    <description>Neuron activation function.</description>
    <options>
      <choices>
        <choice>ident</choice>
        <choice>sig</choice>
        <choice>gau</choice>
      </choices>
    </options>
    <default>1</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.ann.a</key>
    <name>Alpha parameter of the activation function</name>
    <description>Alpha parameter of the activation function (used only with sigmoid and gaussian functions).</description>
    <minValue />
    <maxValue />
    <default>1</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.ann.b</key>
    <name>Beta parameter of the activation function</name>
    <description>Beta parameter of the activation function (used only with sigmoid and gaussian functions).</description>
    <minValue />
    <maxValue />
    <default>1</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.ann.bpdw</key>
    <name>Strength of the weight gradient term in the BACKPROP method</name>
    <description>Strength of the weight gradient term in the BACKPROP method. The recommended value is about 0.1.</description>
    <minValue />
    <maxValue />
    <default>0.1</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.ann.bpms</key>
    <name>Strength of the momentum term (the difference between weights on the 2 previous iterations)</name>
    <description>Strength of the momentum term (the difference between weights on the 2 previous iterations). This parameter provides some inertia to smooth the random fluctuations of the weights. It can vary from 0 (the feature is disabled) to 1 and beyond. The value 0.1 or so is good enough.</description>
    <minValue />
    <maxValue />
    <default>0.1</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.ann.rdw</key>
    <name>Initial value Delta_0 of update-values Delta_{ij} in RPROP method</name>
    <description>Initial value Delta_0 of update-values Delta_{ij} in RPROP method (default = 0.1).</description>
    <minValue />
    <maxValue />
    <default>0.1</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.ann.rdwm</key>
    <name>Update-values lower limit Delta_{min} in RPROP method</name>
    <description>Update-values lower limit Delta_{min} in RPROP method. It must be positive (default = 1e-7).</description>
    <minValue />
    <maxValue />
    <default>1e-07</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>classifier.ann.term</key>
    <name>Termination criteria</name>
    <description>Termination criteria.</description>
    <options>
      <choices>
        <choice>iter</choice>
        <choice>eps</choice>
        <choice>all</choice>
      </choices>
    </options>
    <default>2</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.ann.eps</key>
    <name>Epsilon value used in the Termination criteria</name>
    <description>Epsilon value used in the Termination criteria.</description>
    <minValue />
    <maxValue />
    <default>0.01</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>classifier.ann.iter</key>
    <name>Maximum number of iterations used in the Termination criteria</name>
    <description>Maximum number of iterations used in the Termination criteria.</description>
    <minValue />
    <maxValue />
    <default>1000</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>rand</key>
    <name>set user defined seed</name>
    <description>Set specific seed. with integer value.</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>True</optional>
  </parameter>
</root>
