Couches de régularisation (Dropout)

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, Dropout

    Attributs :

    Paramètre Type Description Valeur par défaut
    rate float Fraction des neurones à désactiver (entre 0 et 1). Obligatoire
    noise_shape tuple ou None Forme du masque de dropout à appliquer. Permet de désactiver des neurones suivant une forme spécifique. None
    seed int ou None Graine pour la génération aléatoire du dropout (pour reproductibilité). None

    Exemple 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.