| Operatoren |
train_dl_classifier_batch — Ausführen eines Trainingsschrittes eines Deep Learning-basierten Klassifikators auf Basis eines Batches von Bildern.
train_dl_classifier_batch(BatchImages : : DLClassifierHandle, BatchLabels : DLClassifierTrainResultHandle)
train_dl_classifier_batch führt einen Trainingsschritt für den Deep Learning-basierten Klassifikator in DLClassifierHandle aus, welcher zuvor mit read_dl_classifier eingelesen wurde. Bevor der Trainingsschritt ausgeführt werden kann, müssen die Klassen mittels set_dl_classifier_param gesetzt werden. Zudem empfiehlt es sich, für die Optimierung wichtige Hyperparameter wie die Lernrate und das Momentum mit set_dl_classifier_param zu setzen. Der Trainingsschritt für das Neuronale Netzwerk basiert auf den Daten eines einzelnen Batches aus dem Trainings-Datensatz, d.h. den Bilder BatchImages und zugehörigen Label BatchLabels. Dabei muss die Anzahl der Bilder des Batches mit der zuvor gesetzten Batchgröße übereinstimmen. Man beachte außerdem, dass die Bilder in BatchImages je nach gewähltem Netzwerk gewisse Voraussetzungen an beispielsweise der Bildgröße oder dem Grauwertbereich erfüllen muss. Für detailliertere Informationen siehe read_dl_classifier. Die Label in BatchImages können als Tupel von Klassennamen oder als Tupel von Indizes (von 0 startend) übergeben werden. Dabei geben die Indizes die jeweiligen Positionen der Label in dem Tupel der Klassen an, welches zuvor mit set_dl_classifier_param über 'classes' gesetzt wurde. Informationen über die Resultate des Trainingsschrittes wie der Wert der Zielfunktion werden in DLClassifierTrainResultHandle gespeichert und können mit get_dl_classifier_train_result abgefragt werden.
Man beachte, dass eine Epoche in der Regel aus mehreren Batches besteht und für ein erfolgreiches Training das Iterieren über mehrere Epochen notwendig ist. Daher muss der Operator train_dl_classifier_batch mehrere Male mit unterschiedlichen Batches ausgeführt werden. Für einer detaillierte Erklärung siehe Deep Learning / Klassifikation.
Während des Trainingschrittes wird der Wert der Zielfunktion, der von dem Neuronalen Netzwerk auf Basis der Batch-Daten erreicht wird, mit einem nichtlinearen Optimierungsalgorithmus minimiert. Als Algorithmus wird ein stochastisches Gradientenabstiegsverfahren (SGD) verwendet. Dabei werden im Trainingsschritt die Gewichte des vorhergehenden Trainingsschrittes wie folgt auf aktualisiert:
Bei obiger Formel stehen für die Lernrate, für das Momentum und für das Klassifikationsergebnis des Deep Learning-basierten Klassifikators, welches von den Netzwerk Gewichten und dem Eingabe-Batch abhängt. Die Variable wird verwendet um die Wirkung des Momentums einfließen zu lassen. Als Zielfunktion wird der Multinomial Logistic Loss in Kombination mit einem quadratischen Regularisierungsterm verwendet:
Dabei kodiert der Vektor das Label des -ten Bildes des Batches welches -viele Bilder beinhaltet. Der Term ist als Vektor zu verstehen, der in jedem Eintrag den Logarithmus der Einträge von enthält. Der Regularisierungsterm besteht aus der gewichteten -Norm, die alle Gewichte außer Bias-Terme einbezieht. Der Einfluss der Regularisierung kann über gesteuert werden. In der obigen Formel steht für den Hyperparameter 'weight_prior' und kann mit set_dl_classifier_param gesetzt werden.
Das Konzept der Deep Learning-basierten Klassifikation ist in der Einleitung zu Kapitel Deep Learning / Klassifikation beschrieben.
Der Operator train_dl_classifier_batch basiert auf Algorithmen, die in manchen Fällen nicht deterministisch sind. Daher können Ergebnisse von mehreren Aufrufen von train_dl_classifier_batch trotz gleicher Eingabewerte leicht voneinander abweichen.
Um diesen Operator ausführen zu können, wird cuDNN benötigt. Für weitere Details wird auf den Installation Guide, Abschnitt Requirements for Deep Learning, verwiesen.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Bilder zusammengefasst in einem Batch.
Handle des Deep Learning-basierten Klassifikators.
Label der Bilder in dem Batch
Defaultwert: []
Werteliste: []
Handle der Trainingsresultate des Deep Learning-basierten Klassifikators.
Sind die Parameterwerte korrekt, dann liefert get_dl_classifier_train_result den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
read_dl_classifier, set_dl_classifier_param, get_dl_classifier_param
get_dl_classifier_train_result, apply_dl_classifier, clear_dl_classifier_train_result, clear_dl_classifier
train_class_mlp, train_class_svm
Deep Learning Training
| Operatoren |