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

RÉSEAU GRU.

Le GRU (Gated Recurrent Unit) est un réseau récurrent à portes, plus simple que le LSTM : deux portes au lieu de trois, et pas de mémoire séparée. Il a moins de paramètres, s'entraîne plus vite et donne des résultats comparables dans bien des cas. C'est un bon premier choix pour modéliser une séquence avec peu de données.

SéquencesSéries temporellesDeep learningFinanceNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceSouvent à égalité avec le LSTM, avec moins de paramètres
InterprétabilitéMémoire interne sans signification métier
VitesseEnviron un quart de calcul en moins qu'un LSTM de même taille
Facilité de réglageMoins de paramètres, donc un peu moins de surapprentissage
Tolérance aux données brutesDonnées à normaliser, valeurs manquantes à combler
EN 30 SECONDES

Un analyste de marché met à jour son avis chaque matin. Il décide d'abord quelle part de son avis d'hier il garde, puis le complète avec les nouvelles du jour. Deux réglages suffisent.

1. Une porte de réinitialisation

Elle décide quelle part de l'état précédent sert à interpréter la nouvelle donnée. Proche de 0, le réseau repart presque de zéro pour ce pas.

2. Une porte de mise à jour

Elle dose le mélange entre l'ancien état et un nouvel état candidat. Selon sa valeur, l'ancien état est conservé presque tel quel ou remplacé : c'est ce qui permet de retenir une information sur de nombreux pas.

3. L'état final alimente la prévision

Après les 20 derniers jours de bourse, l'état du GRU passe dans une couche de sortie qui prévoit l'amplitude du mouvement du lendemain.

LE CAS MÉTIER

gestion des risques · trésorerie / finance de marché
EN ENTRÉE

1 500 jours de cours d'un actif

Un cours de clôture quotidien. On en tire l'amplitude du mouvement de chaque jour (la valeur absolue du rendement), qui mesure la nervosité du marché. Les périodes agitées ont tendance à se suivre.

EN SORTIE

Une prévision de l'agitation du lendemain

Le GRU lit les 20 derniers jours et prévoit l'amplitude attendue demain. La trésorerie ajuste ses limites de risque ou ses couvertures quand l'agitation prévue monte. Il ne s'agit pas de prévoir le sens du marché, seulement l'ampleur des mouvements.

CE QU'ON MESURE

Battre une référence simple

La prévision est comparée à la moyenne des amplitudes des 20 derniers jours, sur des jours jamais vus : corrélation avec la réalité et erreur quadratique moyenne (RMSE). Battre cette référence est difficile ; si le GRU n'y parvient pas, la méthode simple ou un GARCH l'emporte.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Séquences de taille moyenne avec peu de données : moins de paramètres à estimer qu'un LSTM
  • Premier essai de réseau récurrent, avant de tester un LSTM
  • Modèle à embarquer ou à réentraîner souvent, où chaque seconde de calcul compte
  • Plusieurs séries liées, dont l'historique récent éclaire la suite

NON

  • Volatilité financière avec besoin d'un modèle reconnu et lisible : GARCH reste la référence
  • Dépendances très longues et beaucoup de données : un LSTM ou un Transformer peut faire mieux
  • Une seule série courte : les modèles statistiques classiques sont plus sûrs
  • Besoin d'expliquer chaque prévision : le GRU ne se lit pas
LES 4 RÉGLAGES QUI COMPTENT

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

units

La taille de l'état caché. 16 à 64 suffisent souvent sur des séries financières ou de capteurs. Commencer petit.

Taille de fenêtre

Le nombre de pas passés lus (ici 20 jours de bourse, environ un mois). Trop courte, elle manque les régimes ; trop longue, elle dilue le signal récent.

Fonction de perte : loss

mse prévoit une moyenne, mae une médiane. Sur une amplitude, toujours positive, une sortie softplus évite les prévisions négatives.

epochs et arrêt précoce

Avec validation_split et un callback EarlyStopping, l'entraînement s'arrête quand l'erreur de validation ne baisse plus. Garder l'ordre du temps : la validation porte sur la fin de la période.

LE CODE MINIMAL

jeu d'exemple : cours_bourse.csv ↓
# Volatilité de marché : GRU en R
library(keras3)

cours <- read.csv("cours_bourse.csv")
rendement <- 100 * diff(log(cours$cloture))  # rendement quotidien en %
amplitude <- abs(rendement)  # ampleur du mouvement, dans un sens ou dans l'autre

# Entrée : amplitudes des 20 derniers jours ; cible : amplitude du lendemain
fen <- 20
n <- length(amplitude) - fen
X <- array(0, dim = c(n, fen, 1))
for (i in 1:n) X[i, , 1] <- amplitude[i:(i + fen - 1)]
y <- amplitude[(fen + 1):length(amplitude)]
coupe <- 1000  # apprentissage sur les 1 000 premières fenêtres, test sur la suite

set_random_seed(42)
modele <- keras_model_sequential(input_shape = c(fen, 1))
modele <- layer_gru(modele, units = 16)
modele <- layer_dense(modele, units = 1, activation = "softplus")
compile(modele, optimizer = "adam", loss = "mse")
fit(modele, X[1:coupe, , , drop = FALSE], y[1:coupe], epochs = 30, batch_size = 32, validation_split = 0.1, verbose = 0)

# Référence à battre : la moyenne des amplitudes des 20 derniers jours
test <- (coupe + 1):n
prevision <- predict(modele, X[test, , , drop = FALSE], verbose = 0)[, 1]
reference <- rowMeans(X[test, , 1])
cat("Corrélation GRU / référence :", round(cor(prevision, y[test]), 3), "/", round(cor(reference, y[test]), 3), "\n")
cat("RMSE GRU / référence :", round(sqrt(mean((prevision - y[test])^2)), 3), "/", round(sqrt(mean((reference - y[test])^2)), 3), "\n")

QUESTIONS FRÉQUENTES

Quelle différence entre GRU et LSTM ?

Le LSTM a trois portes et deux états : une mémoire à long terme et un état caché. Le GRU fusionne les deux en un seul état et n'a que deux portes. À taille égale, il a environ un quart de paramètres en moins. En pratique, aucun des deux ne gagne systématiquement : il faut tester.

Quand choisir un GRU plutôt qu'un LSTM ?

Quand les données sont peu nombreuses, que le temps de calcul compte ou pour un premier essai. Le GRU converge souvent plus vite. Si le LSTM fait nettement mieux en validation sur vos données, on le garde.

Peut-on prévoir la bourse avec un GRU ?

Le sens du marché est quasiment imprévisible, avec un GRU comme avec toute autre méthode. En revanche, l'ampleur des mouvements est en partie prévisible, parce que les périodes agitées se suivent. C'est ce que fait le cas de cette fiche.

LES ALGOS VOISINS

à comparer avant de choisir
le grand frère

LSTM

Trois portes et une mémoire séparée. Un peu plus de capacité sur les dépendances très longues, plus de paramètres.

Voir la fiche →
la référence en volatilité

GARCH

Le modèle statistique standard pour prévoir la volatilité quand les périodes agitées se suivent. Lisible et très répandu en gestion des risques.

Voir la fiche →
la version sans portes

RNN

Le réseau récurrent de base. Plus simple, mais il oublie vite le début des séquences.

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 →