Couches de régularisation (GaussianDropout)

Les couches Gaussian Dropout sont une variante des couches Dropout utilisées pour régulariser les réseaux de neurones et réduire le surapprentissage. L’objectif est d’améliorer la généralisation du réseau en introduisant du bruit pendant l’entraînement.

Le principe consiste à multiplier les sorties des neurones par des valeurs aléatoires tirées d’une distribution normale (gaussienne) centrée sur 1, avec une variance spécifiée. Contrairement au Dropout classique qui désactive certains neurones, le Gaussian Dropout conserve tous les neurones mais ajoute un bruit aléatoire qui force le réseau à apprendre des représentations plus robustes.

Les couches Gaussian Dropout sont utilisées dans les réseaux fully connected et convolutionnels lorsque l’on souhaite une régularisation plus douce et continue, particulièrement utile dans les réseaux profonds.

En résumé, le Gaussian Dropout permet de régulariser le réseau en introduisant un bruit gaussien sur les neurones pendant l’entraînement, réduisant le surapprentissage et améliorant la généralisation.

Fonctions :

  • GaussianDropout()

    La couche GaussianDropout applique une régularisation de type dropout, mais au lieu de mettre certains neurones à zéro, elle les multiplie par un bruit aléatoire gaussien centré sur 1. Elle est utile pour régulariser les modèles tout en conservant une approximation différentiable du dropout classique.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, GaussianDropout

    Attributs :

    Paramètre Type Description Valeur par défaut
    rate float Taux de dropout, défini comme la probabilité de garder un neurone (bruit ~ N(1, rate / (1 - rate))). Obligatoire
    seed int ou None Graine pour le générateur de bruit gaussien (pour reproductibilité). None

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, GaussianDropout
    
    model = Sequential()
    model.add(Dense(64, activation='relu', input_shape=(20,)))
    model.add(GaussianDropout(rate=0.2))  # Bruit gaussien avec équivalent 20% de dropout
    model.add(Dense(10, activation='softmax'))
    
    model.summary()
    Résultat du code

    Explication du code :

    importe les composants nécessaires pour construire un modèle de réseau de neurones avec régularisation gaussienne.

    Création du modèle
    `model = Sequential()` crée un modèle séquentiel Keras.
    Ajout d'une couche Dense
    `model.add(Dense(64, activation='relu', input_shape=(20,)))` crée une couche dense de 64 neurones avec une entrée de 20 variables et une activation ReLU.
    Ajout de la couche GaussianDropout
    `model.add(GaussianDropout(rate=0.2))` applique une régularisation multiplicative avec du bruit gaussien centré sur 1, avec une variance calculée à partir du taux donné (ici 20%).
    Ajout de la couche de sortie
    `model.add(Dense(10, activation='softmax'))` ajoute une couche de sortie à 10 neurones pour une tâche de classification multi-classes.
    Résumé
    `model.summary()` affiche un résumé du modèle et de ses couches.

⚠️ Ce contenu est réservé aux membres Premium

Abonnez-vous pour débloquer cette page et accéder à tous nos contenus exclusifs.

Souscrire maintenant