20.9 Création de réseaux de neurones avec Keras et TensorFlow : évaluation et optimisation des performances du modèle

La création de réseaux neuronaux efficaces est un processus itératif qui implique non seulement la conception de l'architecture, mais également l'évaluation et l'optimisation continues des performances du modèle. Keras, une API de haut niveau pour la création et la formation de modèles d'apprentissage profond, et TensorFlow, sa bibliothèque backend la plus courante, fournissent des outils puissants pour ces tâches. Voyons comment évaluer et optimiser les réseaux de neurones à l'aide de ces outils.

Évaluation des performances du modèle

L'évaluation du modèle est cruciale pour comprendre dans quelle mesure le réseau neuronal apprend et généralise à partir des données. Keras fournit la méthode evaluate pour calculer les métriques de perte et de performances sur un ensemble de données de test. Il est important d'utiliser un ensemble de données que le modèle n'a jamais vu pendant la formation pour obtenir une évaluation impartiale.

perte, précision = model.evaluate(x_test, y_test)
print(f"Test de perte : {perte}")
print(f"Précision du test : {précision}")

De plus, la visualisation des performances du modèle pendant l'entraînement est utile pour détecter des problèmes tels que le surajustement ou le sous-ajustement. Cela peut être fait en traçant des courbes d'apprentissage, qui sont des graphiques de perte et de précision au fil des époques pour les ensembles de formation et de validation.

Optimisation des performances du modèle

Une fois les performances évaluées, plusieurs stratégies peuvent être adoptées pour optimiser le modèle :

  • Réglage des hyperparamètres : le processus de réglage des hyperparamètres du modèle, tels que le taux d'apprentissage, le nombre d'unités dans les couches masquées ou la taille du lot, peut avoir un impact important sur les performances du modèle. Des outils tels que GridSearchCV ou RandomizedSearchCV de Scikit-learn peuvent être intégrés à Keras pour automatiser la recherche des meilleurs hyperparamètres.
  • Régularisation : pour lutter contre le surapprentissage, des techniques de régularisation telles que L1, L2 ou Dropout peuvent être appliquées. Keras facilite l'ajout de ces techniques au modèle via des arguments de couche ou des wrappers de régularisation.
  • Arrêt anticipé : arrêter l'entraînement dès que les performances sur l'ensemble de validation commencent à se détériorer est un moyen efficace d'éviter le surapprentissage. Keras propose un rappel EarlyStopping qui peut être configuré pour surveiller une métrique spécifique et arrêter l'entraînement lorsqu'elle cesse de s'améliorer.
  • Augmentation des données : l'augmentation de l'ensemble de données grâce à des techniques d'augmentation peut améliorer la capacité de généralisation du modèle. Keras possède une classe ImageDataGenerator qui vous permet d'appliquer des transformations telles que des rotations, des changements d'échelle et des retournements aux données d'image.

Mise en œuvre de l'optimisation avec Keras et TensorFlow

Voici un exemple de mise en œuvre de certaines de ces techniques d'optimisation dans Keras et TensorFlow :

# Réglage des hyperparamètres
à partir de keras.wrappers.scikit_learn importer KerasClassifier
à partir de sklearn.model_selection importer GridSearchCV

def create_model (learning_rate = 0,01) :
    modèle = Séquentiel([
        Dense(unités=64, activation='relu', input_shape=(input_shape,)),
        Dense (unités = num_classes, activation = 'softmax')
    ])
    model.compile(optimizer=Adam(learning_rate=learning_rate),
                  perte='categorical_crossentropy',
                  métriques=['précision'])
    modèle de retour

modèle = KerasClassifier (build_fn = create_model, verbeux = 0)
param_grid = {'batch_size' : [32, 64, 128],
              'époques' : [50, 100],
              'taux_d'apprentissage' : [0,01, 0,001, 0,0001]}
grille = GridSearchCV (estimateur = modèle, param_grid = param_grid, n_jobs = -1, cv = 3)
grille_result = grille.fit(x_train, y_train)

# Régularisation et arrêt anticipé
à partir de keras.layers import Dropout
à partir de keras.callbacks importer EarlyStopping

modèle = Séquentiel([
    Dense(64, activation='relu', input_shape=(input_shape,), kernel_regularizer=regularizers.l2(0.01)),
    Abandon (0,5),
    Dense(num_classes, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

early_stopping = EarlyStopping(monitor='val_loss', patience=5)
history = model.fit(x_train, y_train, epochs=100, batch_size=128, validation_split=0.2, callbacks=[early_stopping])

# Augmentation des données
à partir de keras.preprocessing.image importer ImageDataGenerator

datagen = ImageDataGenerator(
    rotation_range=20,
    width_shift_range=0,2,
    hauteur_shift_range=0,2,
    horizontal_flip=Vrai
)
datagen.fit(x_train)

model.fit(datagen.flow(x_train, y_train, batch_size=32), époques=100)

Ce ne sont là que quelques-unes des nombreuses techniques disponibles pour optimiser les réseaux de neurones. Le succès de l'optimisation des performances du modèle dépend deexpérimenter et affiner ces techniques pour le problème spécifique à résoudre.

En résumé, la création de réseaux neuronaux efficaces avec Keras et TensorFlow implique un cycle d'évaluation et d'optimisation constante. Avec les bons outils et techniques, il est possible d'améliorer considérablement les performances des modèles d'apprentissage automatique et d'apprentissage profond.

Répondez maintenant à l’exercice sur le contenu :

Laquelle des techniques suivantes n'est PAS mentionnée dans le texte comme stratégie d'optimisation des performances des réseaux de neurones ?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Image de l'article Création de réseaux de neurones avec Keras et TensorFlow : utilisation des rappels et des modèles d'enregistrement

Page suivante de lebook gratuit :

77Création de réseaux de neurones avec Keras et TensorFlow : utilisation des rappels et des modèles d'enregistrement

0 minutes

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte