Overfitting erkennen
In dieser Übung arbeiten wir mit einem kleinen Teil der Beispiele aus dem ursprünglichen Datensatz mit Buchstaben der Gebärdensprache. Eine kleine Stichprobe in Kombination mit einem stark parametrisierten Modell führt in der Regel zu Overfitting. Das bedeutet, dass dein Modell sich nur die Klasse jedes einzelnen Beispiels merkt, statt Merkmale zu identifizieren, die auf viele Beispiele verallgemeinern.
Du erkennst Overfitting, indem du prüfst, ob der Validierungsverlust deutlich höher ist als der Trainingsverlust und ob er mit weiterem Training zunimmt. Bei einer kleinen Stichprobe und einer hohen Lernrate fällt es dem Modell schwer, zu einem Optimum zu konvergieren. Du setzt eine niedrige Lernrate für den Optimierer, was es einfacher macht, Overfitting zu erkennen.
Beachte, dass keras aus tensorflow importiert wurde.
Diese Übung ist Teil des Kurses
Einführung in TensorFlow mit Python
Anleitung zur Übung
- Definiere in
kerasein sequenzielles Modell mit dem Namenmodel. - Füge eine erste dichte Schicht mit 1024 Knoten, einer
relu-Aktivierung und einer Input-Form von (784,) hinzu. - Setze die Lernrate auf 0,001.
- Lege fest, dass
fit()50-mal über die vollständige Stichprobe iteriert und 50 % der Stichprobe für die Validierung verwendet.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Define sequential model
____
# Define the first layer
____
# Add activation function to classifier
model.add(keras.layers.Dense(4, activation='softmax'))
# Finish the model compilation
model.compile(optimizer=keras.optimizers.Adam(lr=____),
loss='categorical_crossentropy', metrics=['accuracy'])
# Complete the model fit operation
model.fit(sign_language_features, sign_language_labels, epochs=____, validation_split=____)