Couches normalisatrices (LayerNormalization)

Fonctions :

  • LayerNormalization()

    La couche LayerNormalization normalise les activations à l'intérieur de chaque échantillon (plutôt que sur un mini-lot comme BatchNormalization), en calculant la moyenne et la variance sur toutes les caractéristiques d'une couche. Elle est particulièrement efficace pour les modèles séquentiels comme les réseaux récurrents et les transformers.

    Importation :

    from keras.layers import LayerNormalization

    Attributs :

    Paramètre Type Description Valeur par défaut
    axis int ou tuple d’int Axe(s) sur lesquels normaliser (par défaut toutes les caractéristiques sauf batch). -1
    epsilon float Petite valeur pour éviter la division par zéro. 1e-3
    center bool Si True, ajoute un paramètre de biais appris. True
    scale bool Si True, ajoute un paramètre d’échelle appris. True

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Dense, LayerNormalization, Activation
    import numpy as np
    
    # Données simulées : 100 exemples avec 20 caractéristiques
    X = np.random.rand(100, 20)
    y = np.random.randint(0, 2, size=(100, 1))
    
    # Modèle avec LayerNormalization
    model = Sequential()
    model.add(Dense(64, input_shape=(20,)))
    model.add(LayerNormalization())
    model.add(Activation('relu'))
    model.add(Dense(1, activation='sigmoid'))
    
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
    model.summary()

    Explication du code :

    Importation des bibliothèques
    On importe les couches nécessaires depuis Keras.
    Création des données
    Les données contiennent 100 exemples, chacun avec 20 caractéristiques aléatoires, et une cible binaire.
    Définition du modèle
    Une couche dense est suivie d’une normalisation par couche (`LayerNormalization`), puis d’une activation ReLU.
    Compilation
    Le modèle est compilé avec Adam et une fonction de perte binaire, prêt à l’entraînement.