Couches de régularisation (Dropout)
Les couches Dropout sont des couches de régularisation utilisées dans les réseaux de neurones pour réduire le surapprentissage (overfitting). L’objectif est de rendre le réseau plus robuste en empêchant certains neurones de devenir trop dépendants des autres.
Le principe consiste à désactiver aléatoirement un pourcentage de neurones pendant l’entraînement. Chaque neurone ignoré ne participe ni aux calculs ni à la propagation du gradient, ce qui force le réseau à apprendre des représentations plus générales et à mieux se généraliser aux données nouvelles. Pendant l’inférence, tous les neurones sont utilisés, mais leurs sorties sont généralement mises à l’échelle pour compenser le dropout appliqué à l’entraînement.
Les couches Dropout sont utilisées dans tous les types de réseaux de neurones, en particulier dans les réseaux fully connected et convolutionnels, lorsque le risque de surapprentissage est élevé.
En résumé, le Dropout permet de régulariser le réseau de neurones en réduisant le surapprentissage et en améliorant la généralisation sur des données non vues.
Fonctions :
-
Dropout()
La couche Dropout est une technique de régularisation utilisée dans les réseaux de neurones pour réduire le surapprentissage (overfitting). Pendant l'entraînement, elle "éteint" aléatoirement un pourcentage de neurones, ce qui force le réseau à ne pas dépendre trop fortement de certains neurones.
Importation :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, DropoutAttributs :
Paramètre Type Description Valeur par défaut ratefloat Fraction des neurones à désactiver (entre 0 et 1). Obligatoire noise_shapetuple ou None Forme du masque de dropout à appliquer. Permet de désactiver des neurones suivant une forme spécifique. Noneseedint ou None Graine pour la génération aléatoire du dropout (pour reproductibilité). NoneExemple de code :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Dropout model = Sequential() model.add(Dense(64, activation='relu', input_shape=(20,))) model.add(Dropout(rate=0.3)) # Désactive 30% des neurones pendant l'entraînement model.add(Dense(10, activation='softmax')) model.summary()
Explication du code :
importe les modules nécessaires de Keras pour construire un modèle et ajouter des couches Dense et Dropout.
Création du modèle
`model = Sequential()` initialise un modèle séquentiel.Ajout d'une couche Dense
`model.add(Dense(64, activation='relu', input_shape=(20,)))` ajoute une couche entièrement connectée avec 64 neurones et fonction d'activation ReLU.Ajout d'une couche Dropout
`model.add(Dropout(rate=0.3))` ajoute une couche Dropout qui désactive aléatoirement 30 % des neurones de la couche précédente pendant l'entraînement, ce qui aide à prévenir le surapprentissage.Ajout de la couche de sortie
`model.add(Dense(10, activation='softmax'))` ajoute une couche de sortie pour classification avec 10 classes.Résumé
`model.summary()` affiche la structure du réseau et le nombre de paramètres.