Zacznij terazZacznij za darmo

Wykrywanie przeuczenia

W tym ćwiczeniu będziemy pracować z małym podzbiorem przykładów z oryginalnego zbioru danych z literami języka migowego. Mała próbka w połączeniu z mocno sparametryzowanym modelem zazwyczaj prowadzi do przeuczenia (ang. overfitting). Oznacza to, że model po prostu zapamiętuje klasę każdego przykładu, zamiast uczyć się cech, które można uogólnić na wiele przykładów.

Przeuczenie wykryjesz, sprawdzając, czy strata na zbiorze walidacyjnym jest wyraźnie wyższa niż strata na zbiorze treningowym i czy rośnie wraz z kolejnymi epokami. Przy małej próbce i wysokim współczynniku uczenia modelowi trudno jest zbiec do optimum. Dlatego ustawisz niski współczynnik uczenia dla optymalizatora – ułatwi to identyfikację przeuczenia.

Zauważ, że keras został zaimportowany z tensorflow.

To ćwiczenie jest częścią kursu

Wprowadzenie do TensorFlow w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj model sekwencyjny w keras o nazwie model.
  • Dodaj pierwszą warstwę gęstą z 1024 węzłami, aktywacją relu i kształtem wejściowym (784,).
  • Ustaw współczynnik uczenia na 0,001.
  • Skonfiguruj operację fit() tak, aby wykonała 50 iteracji po pełnej próbce i wykorzystała 50% próbki do celów walidacyjnych.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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=____)
Edytuj i uruchom kod