CommencerCommencer gratuitement

Détection du surapprentissage

Dans cet exercice, nous allons travailler avec un petit sous-ensemble des exemples du jeu de données initial sur les lettres en langue des signes. Un échantillon réduit, associé à un modèle avec beaucoup de paramètres, conduit généralement au surapprentissage. Autrement dit, votre modèle va simplement mémoriser la classe de chaque exemple au lieu d’identifier des caractéristiques qui se généralisent à de nombreux exemples.

Vous allez détecter le surapprentissage en vérifiant si la perte sur l’échantillon de validation est nettement plus élevée que la perte sur l’échantillon d’entraînement et si elle augmente avec des itérations d’entraînement supplémentaires. Avec un petit échantillon et un taux d’apprentissage élevé, le modèle aura du mal à converger vers un optimum. Vous allez donc définir un faible taux d’apprentissage pour l’optimiseur, ce qui facilitera l’identification du surapprentissage.

Notez que keras a été importé depuis tensorflow.

Cet exercice fait partie du cours

Introduction à TensorFlow en Python

Afficher le cours

Instructions

  • Définissez un modèle séquentiel dans keras nommé model.
  • Ajoutez une première couche dense avec 1024 nœuds, une activation relu, et une forme d’entrée (784,).
  • Définissez le taux d’apprentissage à 0,001.
  • Paramétrez l’opération fit() pour parcourir l’échantillon complet 50 fois et utiliser 50 % de l’échantillon à des fins de validation.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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=____)
Modifier et exécuter le code