Détection du surapprentissage
Dans cet exercice, nous allons travailler avec un petit sous-ensemble d'exemples provenant du jeu de données original des lettres en langue des signes. Un petit échantillon, combiné à un modèle avec beaucoup de paramètres, mène généralement au surapprentissage. Cela signifie que votre modèle mémorisera simplement la classe de chaque exemple plutôt que d'identifier des caractéristiques qui se généralisent à de nombreux exemples.
Vous détecterez 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 au fil de l'entraînement. Avec un petit échantillon et un taux d'apprentissage élevé, le modèle aura de la difficulté à converger vers un optimum. Vous allez définir un faible taux d'apprentissage pour l'optimiseur, ce qui facilitera l'identification du surapprentissage.
Notez que keras a été importé à partir de tensorflow.
Cette activité fait partie du cours
Introduction à TensorFlow en Python
Instructions de l’exercice
- Définissez un modèle séquentiel dans
kerasnommémodel. - Ajoutez une première couche dense avec 1024 nœuds, une activation
reluet une forme d'entrée de (784,). - Réglez le taux d'apprentissage à 0,001.
- Configurez l'opération
fit()pour parcourir l'échantillon complet 50 fois et utiliser 50 % de l'échantillon pour la validation.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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=____)