20.6. Création de réseaux de neurones avec Keras et TensorFlow : application de techniques de régularisation et de normalisation

Lors de la création de réseaux neuronaux à l'aide de Keras et TensorFlow, les data scientists et les développeurs de machine learning sont confrontés à des défis courants tels que le surapprentissage, où le modèle apprend des modèles spécifiques à partir de l'ensemble de données d'entraînement mais ne parvient pas à les généraliser à des données invisibles. Pour lutter contre cela, les techniques de régularisation et de normalisation sont essentielles. Dans ce chapitre, nous explorerons comment ces techniques peuvent être appliquées pour améliorer la généralisation des modèles de réseaux neuronaux.

Comprendre le surapprentissage et le sous-apprentissage

Avant de nous plonger dans les techniques de régularisation et de normalisation, il est important de comprendre ce que sont le surapprentissage et le sous-apprentissage. Le surajustement se produit lorsqu'un modèle est si complexe qu'il apprend non seulement des fonctionnalités utiles à partir des données d'entraînement, mais également du bruit ou des fluctuations aléatoires. D'un autre côté, le sous-ajustement se produit lorsque le modèle est trop simple pour capturer la structure sous-jacente des données.

Régularisation

La régularisation est une technique permettant d'éviter le surajustement en ajoutant une pénalité à la fonction de coût du modèle. L'objectif est de limiter la complexité du modèle en l'obligeant à apprendre uniquement les modèles les plus importants dans les données. Il existe différents types de régularisation, tels que L1 (Lasso), L2 (Ridge) et Elastic Net, qui combinent L1 et L2.

  • Régularisation L1 : ajoute la valeur absolue des poids en guise de pénalité à la fonction de coût. Cela peut conduire à des pondérations de valeur nulle, ce qui donne lieu à un modèle plus clairsemé.
  • Régularisation L2 : ajoute le carré des poids comme pénalité à la fonction de coût. Cela tend à répartir la pénalité sur tous les poids, ce qui donne lieu à des poids plus petits, mais rarement nuls.

Dans Keras, la régularisation peut être facilement ajoutée aux couches de réseau neuronal à l'aide des arguments kernel_regularizer, bias_regularizer et activity_regularizer. Par exemple :

depuis keras.regularizers importer l2 model.add(Dense(units=64, kernel_regularizer=l2(0.01)))

Abandon

Le dropout est une technique de régularisation dans laquelle, pendant l'entraînement, des unités aléatoires sont ignorées (ou "désactivées") à chaque passage avant et arrière. Cela permet d'éviter que des unités/neurones spécifiques ne s'ajustent trop à l'entraînement. Dans Keras, Dropout est ajouté en tant que calque :

à partir de keras.layers import Dropout model.add (Abandon (taux = 0,5))

Normalisation par lots

La normalisation par lots est une technique permettant de normaliser les activations des couches internes d'un réseau neuronal. Cela permet de stabiliser le processus d'apprentissage et de réduire le nombre d'époques de formation nécessaires pour former des réseaux approfondis. Dans Keras, la normalisation par lots peut être appliquée à l'aide de la couche BatchNormalization :

à partir de keras.layers, importez BatchNormalization model.add (BatchNormalization ())

Appliquer la régularisation et la normalisation dans la pratique

Lors de la création d'un modèle de réseau neuronal, il est courant de combiner plusieurs techniques de régularisation et de normalisation pour obtenir les meilleures performances. Un exemple de la façon dont cela peut être fait dans Keras est présenté ci-dessous :

à partir de keras.models, importation séquentielle à partir de keras.layers, importez Dense, Dropout, BatchNormalization depuis keras.regularizers importer l1_l2 # Initialisation du modèle modèle = Séquentiel() # Ajout de la première couche dense avec régularisation L1 et L2 model.add(Dense(64, activation='relu', input_shape=(input_shape,), kernel_regularizer=l1_l2(l1=0.01, l2=0.01))) model.add (BatchNormalization ()) # Ajout d'un abandon pour une régularisation supplémentaire modèle.ajouter (Abandon (0.5)) # Ajout de la couche de sortie model.add(Dense(num_classes, activation='softmax')) # Compilation du modèle model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Cet exemple montre un modèle qui utilise la régularisation L1 et L2 dans la première couche dense, suivie d'une normalisation par lots et par abandon. La couche de sortie utilise la fonction d'activation softmax, adaptée aux problèmes de classification multi-classes.

Considérations finales

Lors de l'application de la régularisation et de la normalisation, il est important de surveiller à la fois les performances du modèle sur l'ensemble d'entraînement et sur l'ensemble de validation. Cela vous aidera à identifier si le modèle commence à être surajusté ou sous-ajusté et vous permettra d'ajuster les techniques de régularisation et de normalisation selon vos besoins. De plus, il est recommandé d'expérimenter différentes configurations et hyperparamètres pour trouver la combinaison idéale pour votre cas spécifique.

En résumé, créer des réseaux de neurones efficaces avec Keras et TensorFlow implique nIl ne s'agit pas seulement de sélectionner l'architecture et les hyperparamètres appropriés, mais également d'appliquer soigneusement des techniques de régularisation et de normalisation pour garantir que le modèle se généralise bien aux nouvelles données.

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

Laquelle des affirmations suivantes concernant les techniques de régularisation et de normalisation dans les réseaux de neurones est vraie, selon le texte ?

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 fonctions d'activation et des initialiseurs de poids

Page suivante de lebook gratuit :

74Création de réseaux de neurones avec Keras et TensorFlow : utilisation des fonctions d'activation et des initialiseurs de poids

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