Couches de convolution (Conv1D)
Les couches Conv1D sont des couches de convolution utilisées pour traiter des données séquentielles ou unidimensionnelles, comme des séries temporelles, des séquences textuelles ou des signaux audio. L’objectif est d’extraire des motifs locaux et récurrents dans la séquence pour enrichir les représentations apprises par le réseau.
Chaque neurone applique un filtre (ou kernel) qui glisse le long de la séquence, produisant une carte d’activation qui capture des caractéristiques locales. Plusieurs filtres peuvent être utilisés pour extraire différents motifs simultanément. La taille du filtre et le stride déterminent la granularité et la portée des motifs détectés.
Les couches Conv1D sont utilisées dans les réseaux de neurones convolutionnels appliqués à des tâches de classification, régression ou détection d’anomalies sur des données séquentielles. Elles sont souvent suivies de couches d’activation, de pooling ou de normalisation.
En résumé, les couches Conv1D permettent d’extraire automatiquement des motifs locaux dans des données séquentielles, facilitant l’apprentissage de représentations riches et pertinentes pour le réseau.
Fonctions :
-
Conv1D()
La couche Conv1D effectue une convolution 1D, souvent utilisée pour traiter des données séquentielles (comme des séries temporelles ou des séquences de texte encodées). Elle applique un filtre (ou noyau) qui glisse le long d’un axe spatial unique (typiquement le temps ou la position).
Importation :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv1D, Flatten, Dense import numpy as npAttributs :
Paramètre Type Description Valeur par défaut filtersint Nombre de filtres de sortie (dimensions de sortie). Obligatoire kernel_sizeint Taille du noyau de convolution. Obligatoire stridesint Longueur du pas de la convolution. 1paddingstr 'valid'(sans remplissage) ou'same'(avec remplissage pour garder la taille).'valid'activationstr ou fonction Fonction d'activation appliquée à la sortie. Noneinput_shapetuple Taille des entrées attendues (sauf batch size), typiquement (longueur_sequence, nb_features).Doit être défini dans la première couche Exemple de code :
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv1D, Flatten, Dense import numpy as np # Données fictives : 100 échantillons, séquences de 10 pas, 1 caractéristique par pas X = np.random.rand(100, 10, 1) y = np.random.randint(0, 2, size=(100,)) model = Sequential() model.add(Conv1D(filters=32, kernel_size=3, activation='relu', input_shape=(10, 1))) model.add(Flatten()) model.add(Dense(1, activation='sigmoid')) model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) model.summary()
Explication du code :
Importation des bibliothèques
La bibliothèque Keras est utilisée pour créer un modèle séquentiel contenant une couche de convolution 1D. NumPy permet de générer des données d'exemple.Création des données
Les données d'entrée simulées représentent 100 séquences, chacune composée de 10 pas de temps et d'une seule caractéristique. Les étiquettes associées sont binaires.Définition du modèle
Le modèle est constitué d’une couche `Conv1D` qui applique 32 filtres sur les séquences avec une taille de noyau de 3. La sortie est ensuite aplatie pour être transmise à une couche dense finale avec activation sigmoïde pour la classification binaire.Compilation et résumé
Le modèle est compilé avec l’optimiseur Adam et la fonction de perte binaire. Le résumé permet de visualiser la structure du modèle.