set_regularization_params_ocr_class_mlp
— Setzen der Regularisierungsparameter eines OCR-Klassifikators.
set_regularization_params_ocr_class_mlp( : : OCRHandle, GenParamName, GenParamValue : )
set_regularization_params_ocr_class_mlp
setzt die
Regularisierungsparameter des OCR-Klassifikators, der in
OCRHandle
übergeben wurde. Der zu setzende
Regularisierungsparameter wird mit GenParamName
spezifiziert. Sein Wert wird mit GenParamValue
spezifiziert.
Wie bei create_class_mlp
beschrieben, kann es wünschenswert
sein, den OCR-Klassifikator (d.h. das MLP des Klassifikators) zu
regularisieren, um einen glatteren Übergang der Konfidenzen zwischen
zwei Klassen zu erzwingen und um eine Überanpassung des
OCR-Klassifikators an die Trainingsdaten zu verhindern. Um dies zu
erreichen, kann ein Strafterm für große MLP-Gewichte (die den
Hauptgrund für scharfe Übergänge zwischen Klassen darstellen) zum
Training des MLPs in trainf_ocr_class_mlp
hinzugefügt
werden. Hierzu muss GenParamName
auf'weight_prior' und GenParamValue
auf einen Wert
> 0 gesetzt werden. Weiterhin können die Regularisierungsparameter
automatisch bestimmt werden. Die Details hierzu können bei
set_regularization_params_class_mlp
nachgelesen werden.
Falls die Regularisierungsparameter automatisch bestimmt werden
sollen, wird dringend empfohlen, die Ratschläge bei
set_regularization_params_class_mlp
genau zu beachten, wie
die Parameter NumHidden
des MLPs und
'num_outer_iterations' zu wählen sind und welche
Auswirkungen die automatische Bestimmung der
Regularisierungsparameter auf den Speicherverbrauch und die Laufzeit
des Trainings des OCR-Klassifikators hat.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
OCRHandle
(input_control, Zustand wird modifiziert) ocr_mlp →
(handle)
Handle des OCR-Klassifikators.
GenParamName
(input_control) string →
(string)
Name des zu setzenden Regularisierungsparameters.
Defaultwert: 'weight_prior'
Werteliste: 'num_inner_iterations' , 'num_outer_iterations' , 'weight_prior'
GenParamValue
(input_control) number(-array) →
(real / integer)
Wert des Regularisierungsparameters.
Defaultwert: 1.0
Wertevorschläge: 0.01, 0.1, 1.0, 10.0, 100.0, 0, 1, 2, 3, 5, 10, 15, 20
* This example shows how to determine the regularization parameters * automatically without examining the convergence of the * regularization parameters. * Create the OCR classifier. read_ocr_trainf_names ('ocr.trf', CharacterNames, CharacterCount) create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames, \ 40, 'none', |CharacterNames|, 42, OCRHandle) * Set up the automatic determination of the regularization * parameters. set_regularization_params_ocr_class_mlp (OCRHandle, 'weight_prior', \ [0.01,0.01,0.01,0.01]) set_regularization_params_ocr_class_mlp (OCRHandle, \ 'num_outer_iterations', 10) * Train the classifier. trainf_ocr_class_mlp (OCRHandle, 'ocr.trf', 100, 1, 0.01, Error, \ ErrorLog) * Read out the estimate of the number of well-determined * parameters. get_regularization_params_ocr_class_mlp (OCRHandle, \ 'fraction_well_determined_params', \ FractionParams) * If FractionParams differs substantially from 1, consider reducing * NumHidden appropriately and consider performing a preprocessing that * reduces the number of input variables to the net, i.e., canonical * variates or principal components. write_ocr_class_mlp (OCRHandle, 'ocr.omc') * This example shows how to determine the regularization parameters * automatically while examining the convergence of the * regularization parameters. * Create the OCR classifier. read_ocr_trainf_names ('ocr.trf', CharacterNames, CharacterCount) create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames, \ 40, 'none', |CharacterNames|, 42, OCRHandle) * Set up the automatic determination of the regularization * parameters. set_regularization_params_ocr_class_mlp (OCRHandle, 'weight_prior', \ [0.01,0.01,0.01,0.01]) set_regularization_params_ocr_class_mlp (OCRHandle, \ 'num_outer_iterations', 1) for OuterIt := 1 to 10 by 1 * Train the classifier. trainf_ocr_class_mlp (OCRHandle, 'ocr.trf', 100, 1, 0.01, Error, \ ErrorLog) * Read out the regularization parameters get_regularization_params_ocr_class_mlp (OCRHandle, \ 'weight_prior', \ WeightPrior) * Inspect the regularization parameters manually for * convergence and exit the loop manually if they have * converged. * [...] endfor * Read out the estimate of the number of well-determined * parameters. get_regularization_params_ocr_class_mlp (OCRHandle, \ 'fraction_well_determined_params', \ FractionParams) * If FractionParams differs substantially from 1, consider reducing * NumHidden appropriately and consider performing a preprocessing that * reduces the number of input variables to the net, i.e., canonical * variates or principal components. write_ocr_class_mlp (OCRHandle, 'ocr.omc')
Sind die Parameterwerte korrekt, dann liefert
set_regularization_params_ocr_class_mlp
den Wert 2 (H_MSG_TRUE).
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
get_regularization_params_ocr_class_mlp
,
trainf_ocr_class_mlp
OCR/OCV