Couches de régularisation (AlphaDropout)
Les couches AlphaDropout sont une variante des couches Dropout spécialement conçue pour les réseaux de neurones utilisant la fonction d’activation SELU (Scaled Exponential Linear Unit). L’objectif est de régulariser le réseau tout en conservant les propriétés de normalisation automatique (self-normalizing) des activations SELU.
Le principe consiste à désactiver certains neurones de manière aléatoire, mais au lieu de les mettre à zéro comme dans le Dropout classique, les sorties des neurones désactivés sont transformées pour maintenir la moyenne et la variance des activations. Cela permet au réseau de rester stable et à ses activations de conserver une distribution proche de celle attendue pour les réseaux SELU.
Les couches AlphaDropout sont utilisées dans les réseaux fully connected où la fonction SELU est appliquée, particulièrement lorsque l’on souhaite combiner régularisation et propriétés de self-normalizing.
En résumé, l’AlphaDropout permet de régulariser le réseau tout en maintenant la stabilité des activations, réduisant le surapprentissage et favorisant la convergence dans les réseaux SELU.
Fonctions :
-
AlphaDropout()
La couche AlphaDropout est une forme spéciale de dropout conçue pour fonctionner avec les activations SELU (Scaled Exponential Linear Unit). Elle conserve la moyenne et l'écart type de l'entrée afin de préserver la normalisation automatique des activations, ce qui la rend idéale pour des réseaux entièrement SELU.
Importation :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, AlphaDropout from tensorflow.keras.activations import seluAttributs :
Paramètre Type Description Valeur par défaut ratefloat Fraction des unités à mettre à zéro (ou remplacer par une valeur alpha). Obligatoire seedint ou None Graine aléatoire pour la reproductibilité. NoneExemple de code :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, AlphaDropout from tensorflow.keras.activations import selu model = Sequential() model.add(Dense(64, activation='selu', input_shape=(20,))) model.add(AlphaDropout(rate=0.2)) model.add(Dense(10, activation='softmax')) model.summary()
Explication du code :
importe les composants nécessaires pour construire un réseau de neurones avec la régularisation AlphaDropout.
Création du modèle
`model = Sequential()` crée une architecture de modèle séquentiel.Ajout d'une couche dense avec activation SELU
`model.add(Dense(64, activation='selu', input_shape=(20,)))` ajoute une couche dense de 64 neurones avec l'activation **SELU**, qui favorise l'auto-normalisation.Ajout de la couche AlphaDropout
`model.add(AlphaDropout(rate=0.2))` applique une régularisation qui conserve la moyenne et la variance des activations, essentielle au bon fonctionnement de SELU.Ajout de la couche de sortie
`model.add(Dense(10, activation='softmax'))` ajoute une couche de sortie pour une classification à 10 classes.Résumé
`model.summary()` affiche la structure du modèle.