Accueil / Factory / Algos ML / Dropout — factory / algos ML / régularisation des réseaux de neurones

TECHNIQUE DU DROPOUT.

Une technique de régularisation : à chaque étape d'entraînement, une part des neurones est éteinte au hasard. Le réseau ne peut plus compter sur quelques neurones qui auraient appris l'historique par cœur, il doit répartir ce qu'il apprend. Le résultat est un modèle qui tient mieux sur des données jamais vues.

Deep learningRégularisationSurapprentissageGénéralisationNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceRéduit nettement l'écart entre entraînement et test
InterprétabilitéLe principe s'explique en une phrase
VitesseAucun coût en prédiction, entraînement un peu plus long
Facilité de réglageUn seul réglage : le taux, souvent entre 0,2 et 0,5
Tolérance aux données brutesNe corrige ni les données bruitées ni les fuites
EN 30 SECONDES

Une équipe où, chaque jour, la moitié des membres est absente au hasard. Personne ne peut devenir le seul à savoir faire une tâche : les compétences se répartissent, et l'équipe tient même un jour de grève.

1. À chaque lot, on tire au sort

Pendant l'entraînement, chaque neurone d'une couche est éteint avec une probabilité fixée, par exemple 50 %. Ce ne sont pas les mêmes d'un lot à l'autre.

2. Le réseau apprend sans béquille

Un neurone ne peut pas compter sur la présence d'un voisin précis. Les motifs appris doivent être robustes, pas des coïncidences de l'historique.

3. Tout le monde revient en prédiction

En production, tous les neurones sont actifs. Keras compense en augmentant les signaux pendant l'entraînement, pour que les deux phases restent à la même échelle.

4. Un vote implicite

Chaque tirage entraîne un sous-réseau différent. Le réseau complet se comporte comme une moyenne de ces milliers de sous-réseaux, à la manière d'un ensemble de modèles.

LE CAS MÉTIER

marketing · ciblage de campagne / e-commerce / retail
EN ENTRÉE

8 000 clients exposés ou non à une campagne

Groupe (ciblé ou témoin), âge, ancienneté, panier moyen, visites récentes, et l'achat observé. Le signal est faible : un réseau de 2 × 256 neurones a largement de quoi apprendre le bruit par cœur.

EN SORTIE

Un score d'achat qui tient sur de nouveaux clients

Le même réseau est entraîné sans dropout, puis avec 50 % de dropout. On compare les deux sur des clients jamais vus avant de s'en servir pour choisir qui cibler.

CE QU'ON MESURE

L'écart entre entraînement et test

Un réseau qui récite a une AUC élevée sur les données d'entraînement et nettement plus basse sur le test. Le dropout doit réduire cet écart. Si l'AUC de test ne progresse pas, un modèle plus simple suffit.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Réseau de grande taille face à une base de taille moyenne
  • Écart qui se creuse entre la perte d'entraînement et celle de validation
  • Couches denses de fin de réseau, en vision comme sur données tabulaires
  • Estimer l'incertitude d'une prédiction en gardant le dropout actif (Monte Carlo dropout)

NON

  • Réseau déjà petit qui n'apprend pas assez : le dropout aggrave le sous-apprentissage
  • Couches de convolution suivies de batch normalization : les deux se combinent mal, garder la batch normalization
  • Réseaux récurrents (LSTM) : utiliser le dropout récurrent prévu à cet effet, pas une couche Dropout classique
  • Modèles classiques (arbres, régressions) : utiliser leur propre régularisation
LES 3 RÉGLAGES QUI COMPTENT

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

rate

La part de neurones éteints. 0,5 sur de grandes couches denses, 0,1 à 0,3 près de l'entrée ou sur des couches plus petites. Au-delà de 0,5, le réseau peine à apprendre.

Emplacement

Après les couches denses cachées, jamais sur la couche de sortie. En vision, on le réserve souvent aux dernières couches.

Durée d'entraînement

Avec du dropout, le réseau apprend plus lentement : il faut plus de passes. On garde l'arrêt anticipé sur la perte de validation (early stopping).

LE CODE MINIMAL

jeu d'exemple : campagne_marketing.csv ↓
# Achat après campagne : dropout en R (keras3)
library(keras3)

campagne <- read.csv("campagne_marketing.csv")
X <- scale(model.matrix(~ groupe + age + anciennete_mois + panier_moyen + visites_30j, data = campagne)[, -1])
y <- campagne$achat
set.seed(42)
idx <- sample(nrow(X), round(0.7 * nrow(X)))

reseau <- function(taux) {
  set_random_seed(42)
  modele <- keras_model_sequential(input_shape = ncol(X))
  modele <- layer_dense(modele, units = 256, activation = "relu")
  modele <- layer_dropout(modele, rate = taux)       # éteint au hasard cette part des neurones
  modele <- layer_dense(modele, units = 256, activation = "relu")
  modele <- layer_dropout(modele, rate = taux)
  modele <- layer_dense(modele, units = 1, activation = "sigmoid")
  compile(modele, optimizer = "adam", loss = "binary_crossentropy", metrics = list(metric_auc(name = "auc")))
  fit(modele, X[idx, ], y[idx], epochs = 60, batch_size = 64, verbose = 0)
  # Évaluation après entraînement : le dropout est coupé en prédiction
  c(entrainement = evaluate(modele, X[idx, ], y[idx], verbose = 0)[["auc"]],
    test = evaluate(modele, X[-idx, ], y[-idx], verbose = 0)[["auc"]])
}
print(round(rbind(sans_dropout = reseau(0), dropout_50 = reseau(0.5)), 3))

QUESTIONS FRÉQUENTES

Qu'est-ce que le surapprentissage d'un réseau de neurones ?

C'est quand le réseau apprend l'historique par cœur, bruit compris. Ses performances sont excellentes sur les données d'entraînement et décevantes sur de nouvelles données. On le repère à l'écart qui se creuse entre la perte d'entraînement et celle de validation.

Le dropout est-il actif en prédiction ?

Non. En Keras comme en PyTorch, il ne s'applique que pendant l'entraînement ; en prédiction, tous les neurones sont actifs. Exception volontaire : le Monte Carlo dropout, qui le laisse actif et répète la prédiction pour mesurer l'incertitude.

Quel taux de dropout choisir ?

0,5 est la valeur historique pour les grandes couches denses, 0,2 à 0,3 un bon départ ailleurs. Le taux se règle comme les autres hyperparamètres : on en compare deux ou trois sur les données de validation.

LES ALGOS VOISINS

à comparer avant de choisir
l'autre régularisation

Ridge

Freine la taille des coefficients (pénalité L2). En Keras, le même principe s'applique aux poids d'un réseau.

Voir la fiche →
souvent à sa place

Batch normalization

Stabilise l'entraînement et régularise un peu. Dans les réseaux de vision récents, elle a largement remplacé le dropout.

Voir la fiche →
la même intuition

Bagging

Faire voter des modèles entraînés sur des tirages différents. Le dropout fait voter des sous-réseaux, sans en entraîner plusieurs.

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 →