Konfiguration des Modells

Vorschau

Die Konfiguration des Modells ist Maßgeblich für den Lernerfolg des neuronalen Netzwerks. In Abhängigkeit der verfügbaren Daten und den zu bestimmenden Kategorien muss eine Anpassung der Einstellungen erfolgen. Die Konfiguration befindet sich in der Datei model.json im Ordner model der engine, in unserem Beispiel mit dem Namen e1.

Die Datei hat folgenden Aufbau:

{
„categories“: 3,
„epochs“: 500,
„hidden_layers“: 3,
„hidden_layer_nodes“: 25,
„learning_rate“: 0.003
}

Die Datei ist im JSON-Format geschrieben, wobei in geschweiften Klammern die Feldbezeichungen und zugehörigen Werte definiert werden. Die Feldbezeichungen sind in Gänsefüßchen gefasst und die entsprechenden Kennwerte durch einen Doppelpunkt getrennt. Zeilenweise folgt dann die Benennung der Einstellungen. Nur die Zahlen dürfen geändert werden.

Als erstes wird die Anzahl der Kategorien (categories) definiert. Im Beispiel des letzten Kapitels sind die Getränke Cola, Limo und Saft als Kategorie benannt worden, entsprechend wird hier eine drei eingetragen. Sind mehr Kategorien definiert ist entsprechend der Wert anzupassen.

Als nächstes werden die Epochen (epochs) eingestellt. Die Epochen sind die Anzahl wie häufig die Datensätze dem neuronalen Netzwerk „gezeigt“ werden, um den Trainingserfolg zu verbessern. Die Werte liegen hier gewöhnlich zwischen 500 und 1000, je höher der Wert desto länger dauert das Training.

Danach wird die Größe des neuronalen Netzwerks bestimmt. Je mehr Kategorien und Daten vorliegen, um so mehr Schichten und Knoten sollte das Netzwerk haben. Bei drei Kategorien und 150 Messdaten reichen bereits drei Schichten (hidden_layers) und 25 Knoten (hidden_layer_nodes) für gute Ergebnisse. Es gibt hier keine Vorgaben, am besten ist es einfach auszuprobieren.

Die Lernrate (learning_rate) regelt die Geschwindigkeit mit der das neuronale Netzwerk trainiert werden soll. Ein Wert von 0.003 ist zumeist ausreichend. Werte zwischen null und eins können gesetzt werden.

Nachdem die model.json angepasst wurde und die Trainingsdaten model.csv im Ordner abgelegt werden, erfolgt die automatisierte Erstellung des Modells. Der Sever startet die Routine einmal pro Minute, ein wenig Wartezeit sollte man also mitbringen. Um die Routine erneut zu starten reicht es den Ordner model.tsf zu löschen, es erfolgt dann die erneute Erstellung des Modells. Wenn alles geklappt hat wird die Datei model.log erzeugt, welche Details zum erstellten Modell enthält.

The following configuration is used to create the model:
{
„categories“: 3,
„epochs“: 500,
„hidden_layers“: 3,
„hidden_layer_nodes“: 25,
„learning_rate“: 0.003
}

[BUSY] Start to train the model. This may take a while.

Epoch 1/500

1/1 [==============================] – ETA: 0s – loss: 0.7089 – accuracy: 0.3051
1/1 [==============================] – 0s 276us/step – loss: 0.7089 – accuracy: 0.3051
.
.
.

Epoch 499/500

1/1 [==============================] – ETA: 0s – loss: 0.0637 – accuracy: 0.9576
1/1 [==============================] – 0s 186us/step – loss: 0.0637 – accuracy: 0.9576

Epoch 500/500

1/1 [==============================] – ETA: 0s – loss: 0.0635 – accuracy: 0.9576
1/1 [==============================] – 0s 210us/step – loss: 0.0635 – accuracy: 0.9576

Model: „sequential“
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 5) 25
_________________________________________________________________
dense_1 (Dense) (None, 25) 150
_________________________________________________________________
dense_2 (Dense) (None, 25) 650
_________________________________________________________________
dense_3 (Dense) (None, 25) 650
_________________________________________________________________
dense_4 (Dense) (None, 3) 78
=================================================================
Total params: 1,553
Trainable params: 1,553
Non-trainable params: 0
_________________________________________________________________

[SUCCESS] Model successfully created. Achieved accuracy: 0.9576271176338196

Zu Beginn der Datei wird erneut die Konfigurationsdaten des Netzwerks zusammengefasst. Im Anschluss erfolgt dann die Dokumentation der Epochen. Hier kann nachverfolgt werden mit welcher Geschwindigkeit sich die Güte des Modells durch das Training verbessert.

Danach erfolgt eine Zusammenfassung der Geometrie des Modells. Dabei werden die Ebenen und Knoten des Netzwerks explizit aufgeführt. Am Ende der Zusammenfassung befindet sich die abschließend erreichte Güte des Modells. In unserem Fall 0.958.

Ein Training kann immer mal zu unerwarteten Verhalten in der Diagnose führen. Wie beim Lernen bei Menschen kann es dazu kommen, dass ein Sachverhalt falsch verstanden wurde. Sinn macht es dann das Training zu wiederholen oder die Beispiele anzupassen. Genau gleich verhält es sich beim Training künstlicher neuronaler Netze. Wichtig ist nach einem durchgeführten Training das Netzwerk zu testen, wie das funktioniert wird später noch genauer erklärt.

Zurück zu: Machine Learning Diagnostik > 020 Training des neuronalen Netzwerks