Aan de slagGa gratis aan de slag

Overfitting detecteren

In deze oefening werken we met een kleine subset van de voorbeelden uit de oorspronkelijke gegevensset met letters in gebarentaal. Een kleine steekproef, in combinatie met een model met veel parameters, leidt meestal tot overfitting. Dat betekent dat je model simpelweg de klasse van elk voorbeeld uit het hoofd leert, in plaats van kenmerken te vinden die generaliseren naar veel voorbeelden.

Je gaat overfitting opsporen door te controleren of het verlies op de validatiesteekproef aanzienlijk hoger is dan het verlies op de trainingssteekproef en of het toeneemt bij verder trainen. Met een kleine steekproef en een hoge learning rate zal het model moeite hebben om naar een optimum te convergeren. Je stelt daarom een lage learning rate in voor de optimizer, zodat het makkelijker is om overfitting te herkennen.

Let op: keras is geïmporteerd vanuit tensorflow.

Deze oefening maakt deel uit van de cursus

Introductie tot TensorFlow in Python

Cursus bekijken

Oefeninstructies

  • Definieer een sequentieel model in keras met de naam model.
  • Voeg een eerste dense-laag toe met 1024 nodes, een relu-activatie en een input shape van (784,).
  • Stel de learning rate in op 0,001.
  • Laat de fit()-operatie 50 keer over de volledige steekproef itereren en gebruik 50% van de steekproef voor validatiedoeleinden.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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=____)
Code bewerken en uitvoeren