| Operatoren |
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:
Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.Handle des OCR-Klassifikators.
Name des zu setzenden Regularisierungsparameters.
Defaultwert: 'weight_prior'
Werteliste: 'num_inner_iterations', 'num_outer_iterations', 'weight_prior'
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')
clear_ocr_class_mlp (OCRHandle)
* 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')
clear_ocr_class_mlp (OCRHandle)
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
| Operatoren |