Couches récurrentes (LSTM)

Fonctions :

  • LSTM()

    LSTM (Long Short-Term Memory) est une couche de réseau de neurones récurrent avancée conçue pour mieux capturer les dépendances à long terme dans les données séquentielles. Elle utilise des portes (input, forget, output) pour contrôler le flux d'information et limiter le problème du gradient qui disparaît, ce qui la rend particulièrement efficace pour les séries temporelles, le traitement du langage naturel et d’autres séquences.

    Importation :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import LSTM, Dense
    import numpy as np

    Attributs :

    Paramètre Type Description Valeur par défaut
    units int Nombre de neurones dans la couche LSTM, définissant la taille de la sortie.
    activation str / callable Fonction d'activation pour la cellule, généralement 'tanh'. 'tanh'
    recurrent_activation str / callable Fonction d'activation pour les portes récurrentes, généralement 'sigmoid'. 'sigmoid'
    return_sequences bool Si True, retourne la sortie à chaque pas de temps (séquence complète). False
    return_state bool Si True, retourne également les états cachés et de la cellule. False
    go_backwards bool Si True, traite la séquence en ordre inverse. False
    stateful bool Si True, conserve l’état entre les lots d’entraînement. False

    Exemple de code :

    from tensorflow.keras.models import Sequential
    from tensorflow.keras.layers import LSTM, Dense
    import numpy as np
    
    # Données simulées : 50 séquences, chaque séquence de longueur 20, avec 5 features par pas de temps
    X = np.random.rand(50, 20, 5)
    y = np.random.randint(0, 3, size=(50, 1))
    
    # Modèle simple avec LSTM
    model = Sequential()
    model.add(LSTM(32, activation='tanh', input_shape=(20, 5)))
    model.add(Dense(3, activation='softmax'))
    
    model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
    model.summary()

    Explication du code :

    Importation des bibliothèques
    On importe les couches `LSTM` et `Dense` ainsi que `Sequential` de Keras pour construire le modèle.
    Création des données
    Les données simulées représentent 50 séquences. Chaque séquence contient 20 pas de temps, et chaque pas possède 5 caractéristiques.
    Définition du modèle
    La couche `LSTM` contient 32 neurones et traite les séquences d’entrée. La couche dense finale à 3 neurones avec activation softmax sert à la classification multi-classes.
    Compilation
    Le modèle est compilé avec la fonction de perte catégorielle creuse (`sparse_categorical_crossentropy`) et l’optimiseur Adam.