Couches de pooling (MaxPooling1D)

Les couches MaxPooling1D sont des couches de pooling utilisées dans les réseaux de neurones pour réduire la dimensionnalité des données séquentielles et extraire les caractéristiques les plus importantes. L’objectif est de simplifier les représentations tout en conservant les motifs saillants détectés par les couches de convolution précédentes.

Le principe consiste à diviser la séquence en segments de taille fixe (fenêtre de pooling) et à ne retenir que la valeur maximale de chaque segment. Cette opération permet de réduire la taille de la séquence, de diminuer le coût computationnel et de rendre le réseau plus robuste aux variations locales.

Les couches MaxPooling1D sont utilisées dans les réseaux Conv1D appliqués à des séries temporelles, du texte ou des signaux audio, et sont souvent suivies de couches fully connected ou d’autres couches de convolution.

En résumé, les couches MaxPooling1D permettent de réduire la dimensionnalité des données séquentielles tout en conservant les motifs les plus significatifs détectés par le réseau.

Fonctions :

  • MaxPooling1D()

    MaxPooling1D est une couche de réduction de dimension qui extrait la valeur maximale sur une fenêtre glissante unidimensionnelle. Elle est souvent utilisée après une couche de convolution 1D pour réduire la taille des données tout en conservant les informations les plus importantes.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Conv1D, MaxPooling1D, Flatten, Dense
    import numpy as np

    Attributs :

    Paramètre Type Description Valeur par défaut
    pool_size int Taille de la fenêtre de pooling. 2
    strides int Pas de déplacement de la fenêtre de pooling. None (équivalent à pool_size)
    padding str 'valid' (sans remplissage) ou 'same' (conserve la longueur). 'valid'
    data_format str 'channels_last' (par défaut) ou 'channels_first'. 'channels_last'

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import Conv1D, MaxPooling1D, Flatten, Dense
    import numpy as np
    
    # Données simulées : 100 séquences de longueur 50 avec 1 feature
    X = np.random.rand(100, 50, 1)
    y = np.random.randint(0, 2, size=(100,))
    
    # Modèle simple avec MaxPooling1D
    model = Sequential()
    model.add(Conv1D(filters=32, kernel_size=3, activation='relu', input_shape=(50, 1)))
    model.add(MaxPooling1D(pool_size=2))
    model.add(Flatten())
    model.add(Dense(1, activation='sigmoid'))
    
    model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
    model.summary()
    Résultat du code

    Explication du code :

    Importation des bibliothèques
    Les fonctions nécessaires sont importées depuis TensorFlow Keras : `Conv1D`, `MaxPooling1D`, `Flatten` et `Dense`.
    Création des données
    On simule un ensemble de 100 séquences, chacune de longueur 50 avec 1 seule feature. La sortie est binaire (0 ou 1).
    Définition du modèle
    Une couche `Conv1D` extrait des motifs dans les séquences, suivie d’une couche `MaxPooling1D` qui réduit la longueur des séquences en prenant le maximum sur chaque fenêtre de taille 2. Ensuite, `Flatten` transforme les données en vecteur pour la couche finale `Dense`.
    Compilation
    Le modèle est compilé pour un problème de classification binaire avec l’optimiseur `adam`.

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

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

Souscrire maintenant