Accueil / Factory / Algos ML / LSTM — factory / algos ML / deep learning sur séquences

RÉSEAU LSTM.

Le LSTM (Long Short-Term Memory) est un réseau récurrent doté d'une mémoire qu'il gère lui-même : des portes décident à chaque pas ce qu'il garde, ce qu'il ajoute et ce qu'il oublie. Il lit des séquences longues sans perdre le début. Longtemps la référence en traduction et en reconnaissance vocale, il reste très utilisé sur les séries de capteurs.

SéquencesSéries temporellesDeep learningMaintenance prédictiveNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceSolide sur séries longues, souvent égalé par des méthodes simples
InterprétabilitéPortes et mémoire interne sans signification métier
VitesseLit pas à pas : lent à entraîner sur de longues séries
Facilité de réglageFenêtre, taille, normalisation, epochs : beaucoup de choix
Tolérance aux données brutesValeurs manquantes à combler, données à normaliser
EN 30 SECONDES

Un technicien tient un carnet de bord. À chaque relevé, il décide quoi rayer, quoi noter et quoi retenir pour son diagnostic. Le carnet garde ce qui compte, même s'il date de plusieurs jours.

1. Une mémoire qui traverse la séquence

En plus de l'état caché du RNN, le LSTM transporte une mémoire à long terme (l'état de cellule), modifiée seulement par petites touches. L'information ancienne peut ainsi survivre sur de nombreux pas.

2. Trois portes pilotent cette mémoire

Une porte d'oubli efface ce qui ne sert plus, une porte d'entrée ajoute l'information utile du pas courant, une porte de sortie choisit ce qui est transmis. Chaque porte est un petit réseau qui produit des coefficients entre 0 et 1.

3. On prévoit, puis on compare au réel

Après la fenêtre de 24 heures, une couche de sortie prévoit la température suivante. En maintenance, c'est l'écart entre prévision et mesure réelle qui déclenche l'alerte.

LE CAS MÉTIER

maintenance prédictive · industrie / énergie
EN ENTRÉE

2 000 heures de capteurs d'une machine

Température et vibration relevées toutes les heures. Le modèle apprend le fonctionnement normal sur les 1 200 premières heures, cycle de 24 heures compris.

EN SORTIE

Une alerte quand la machine s'écarte de sa normale

Le LSTM prévoit la température de chaque heure à partir des 24 précédentes. Quand l'écart avec la mesure réelle dépasse le seuil, l'heure est signalée. Le jeu contient des pics anormaux isolés et, à partir de l'heure 1400, un saut de température et une dérive de la vibration avant la panne.

CE QU'ON MESURE

Le seuil fixe le nombre d'alertes

Le seuil est ici le 99e centile des écarts observés pendant l'apprentissage : environ 1 % de fausses alertes attendues en régime normal. On le règle avec l'équipe maintenance selon le coût d'une intervention inutile et celui d'une panne manquée.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Séries de capteurs longues et riches (des milliers de pas), avec plusieurs mesures liées
  • Dépendances lointaines : ce qui s'est passé il y a des dizaines de pas compte encore
  • Détecter des anomalies par écart à une prévision, quand on n'a pas d'exemples de pannes
  • Beaucoup de séries similaires à apprendre ensemble (un modèle pour tout un parc)

NON

  • Une seule série courte (quelques centaines de points) : ARIMA ou lissage exponentiel font aussi bien, plus simplement
  • Besoin d'expliquer la prévision à un comité : un modèle statistique se lit mieux
  • Texte et très longues séquences avec gros volumes : les Transformers font mieux
  • Budget de calcul serré : un GRU donne souvent le même résultat avec moins de paramètres
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour Keras, identiques en R (keras3) et en Python.

Taille de fenêtre

Le nombre de pas passés que le modèle voit (ici 24 heures). Elle doit couvrir au moins un cycle complet du phénomène : une journée, une semaine.

units

La taille de la mémoire. 32 à 128 en général. Plus grande, elle capte plus de motifs mais surapprend plus vite sur peu de données.

Normalisation

Centrer et réduire chaque variable, avec les moyennes et écarts-types de la seule période d'apprentissage. Sans cela, l'entraînement converge mal.

dropout / recurrent_dropout

Éteint au hasard une partie des connexions pendant l'entraînement pour limiter le surapprentissage. 0,1 à 0,3 est un bon point de départ.

LE CODE MINIMAL

jeu d'exemple : capteurs_machine.csv ↓
# Maintenance prédictive : LSTM en R
library(keras3)

capteurs <- read.csv("capteurs_machine.csv")
serie <- as.matrix(capteurs[, c("temperature", "vibration")])
centre <- colMeans(serie[1:1200, ])
echelle <- apply(serie[1:1200, ], 2, sd)
serie <- scale(serie, center = centre, scale = echelle)  # normalisation sur la période d'apprentissage

# Fenêtres de 24 h pour prévoir la température de l'heure suivante
fen <- 24
n <- nrow(serie) - fen
X <- array(0, dim = c(n, fen, 2))
for (i in 1:n) X[i, , ] <- serie[i:(i + fen - 1), ]
y <- serie[(fen + 1):nrow(serie), 1]
coupe <- 1200 - fen  # apprentissage sur les 1 200 premières heures

set_random_seed(42)
modele <- keras_model_sequential(input_shape = c(fen, 2))
modele <- layer_lstm(modele, units = 32)
modele <- layer_dense(modele, units = 1)
compile(modele, optimizer = "adam", loss = "mse")
fit(modele, X[1:coupe, , ], y[1:coupe], epochs = 20, batch_size = 32, validation_split = 0.1, verbose = 0)

# Écart prévision / réalité en degrés, seuil = 99e centile de l'apprentissage
ecarts <- abs(predict(modele, X, verbose = 0)[, 1] - y) * echelle[1]
seuil <- quantile(ecarts[1:coupe], 0.99)
alertes <- which(ecarts > seuil) + fen - 1  # numéros d'heure, en partant de 0
cat("Seuil :", round(seuil, 2), "°C\n")
print(alertes[alertes < 1400])
cat("Alertes après l'heure 1400 :", sum(alertes >= 1400), "\n")

QUESTIONS FRÉQUENTES

Quelle différence entre LSTM et RNN ?

Le RNN simple recalcule entièrement son état à chaque pas et oublie vite le début de la séquence. Le LSTM ajoute une mémoire séparée et des portes qui la modifient progressivement, ce qui lui permet d'apprendre des dépendances sur des dizaines ou des centaines de pas.

LSTM ou ARIMA pour prévoir une série temporelle ?

Sur une seule série de quelques centaines de points, ARIMA ou un lissage exponentiel font souvent aussi bien et s'expliquent mieux. Le LSTM prend l'avantage avec beaucoup de données, plusieurs variables liées, des relations non linéaires ou de nombreuses séries apprises ensemble.

Le LSTM est-il dépassé par les Transformers ?

Sur le texte, oui. Sur les séries temporelles et les données de capteurs, le LSTM reste un choix solide et léger, et des méthodes simples font parfois jeu égal avec les Transformers. Il faut tester sur ses propres données.

LES ALGOS VOISINS

à comparer avant de choisir
plus léger, souvent aussi bon

GRU

Deux portes au lieu de trois et pas de mémoire séparée. Moins de paramètres, entraînement plus rapide.

Voir la fiche →
la référence statistique

ARIMA

Un modèle de série temporelle lisible et rapide. À battre avant de justifier un LSTM.

Voir la fiche →
repérer le changement de régime

Détection de ruptures

Trouve les dates où la moyenne ou la variance d'une série change, comme le saut de l'heure 1400.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →