Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Dropout Layer

Une couche de dropout met aléatoirement à zéro une partie des activations pendant l’entraînement, empêchant ainsi le réseau de dépendre d’une seule unité et réduisant le surapprentissage.

Une couche de dropout est un composant de régularisation d'un réseau neuronal qui met aléatoirement à zéro une fraction p de ses entrées à chaque étape d'entraînement et transmet toutes les valeurs sans modification pendant l'inférence. Comme n'importe quelle unité peut disparaître à chaque étape, le réseau ne peut pas dépendre de quelques neurones précis ni de coadaptations fragiles entre eux ; il apprend donc des caractéristiques redondantes qui se généralisent mieux et réduit le surapprentissage des données d'entraînement. Geoffrey Hinton et ses collègues ont présenté cette technique en 2012, et Srivastava, Hinton et al. l'ont décrite en détail en 2014. Il s'agit d'une couche intégrée dans PyTorch, TensorFlow et la plupart des autres frameworks d'apprentissage profond, utilisée dans des architectures allant des têtes de classification entièrement connectées aux transformers.

Fonctionnement du dropout#

Pendant l'entraînement, la couche échantillonne un nouveau masque aléatoire à chaque passe avant, en conservant chaque élément avec une probabilité de 1 − p et en le mettant à zéro avec une probabilité de p. Chaque étape entraîne donc un sous-réseau réduit différent, et le réseau complet utilisé au moment du test approxime une moyenne des très nombreux sous-réseaux partageant ses poids ; c'est pourquoi le dropout est souvent décrit comme un entraînement d'ensemble peu coûteux. Pour conserver la même activation attendue dans les deux phases, les frameworks modernes utilisent le dropout inversé : les valeurs conservées sont multipliées par 1 / (1 − p) pendant l'entraînement, de sorte que la couche ne fait rien pendant l'inférence. Dans PyTorch, nn.Dropout suit le mode entraînement ou évaluation du module :

import torch
from torch import nn

torch.manual_seed(0)
dropout = nn.Dropout(p=0.5)
x = torch.ones(10)

# Mode entraînement : environ la moitié des valeurs sont mises à zéro et les valeurs restantes sont multipliées par 1 / (1 - p) = 2
dropout.train()
print("Train:", dropout(x))

# Mode évaluation : la couche transmet toutes les valeurs sans modification
dropout.eval()
print("Eval: ", dropout(x))

En mode entraînement, six des dix valeurs sont supprimées et les quatre restantes deviennent 2.0, ce qui maintient la valeur attendue à 1.0 ; en mode évaluation, les dix valeurs restent à 1.0.

Variantes courantes du dropout#

  • Dropout spatial : nn.Dropout2d de PyTorch met à zéro des canaux entiers de cartes de caractéristiques, ce qui convient aux réseaux convolutifs, car les pixels voisins d'un canal sont fortement corrélés et supprimer des pixels isolés les régularise à peine.
  • Profondeur stochastique (DropPath) : au lieu d'activations individuelles, des branches résiduelles entières sont ignorées aléatoirement pour chaque échantillon ; c'est un composant courant de l'entraînement des Vision Transformers et des CNN modernes.
  • Dropout Monte-Carlo : le dropout reste actif pendant l'inférence et le modèle effectue plusieurs passes avant sur la même entrée. La dispersion des prédictions fournit une estimation peu coûteuse de l'incertitude du modèle pour les systèmes critiques pour la sécurité ; Gal et Ghahramani ont interprété cette méthode comme une inférence bayésienne approximative.
  • DropConnect : des poids individuels aléatoires sont mis à zéro au lieu des activations, chaque connexion disposant de son propre masque.

Le dropout en pratique#

Les taux de dropout se règlent comme n'importe quel autre hyperparamètre. Srivastava et al. ont constaté que supprimer des unités cachées avec une probabilité de 0.5 fonctionnait bien pour un large éventail de réseaux et de tâches, tandis que les unités d'entrée donnent de meilleurs résultats avec un taux de conservation plus proche de 1 ; le Transformer d'origine utilisait p = 0.1. Un taux trop élevé ralentit la convergence et peut entraîner du sous-apprentissage, et placer le dropout juste avant la normalisation par lot peut nuire à la précision en raison d'un décalage de variance entre l'entraînement et le test. De nombreux réseaux neuronaux convolutifs reposent principalement sur la normalisation par lot, l'augmentation des données et la décroissance des poids, et réservent le dropout à la tête de classification. Les modèles de classification Ultralytics YOLO26 suivent ce schéma : ils contiennent une couche de dropout entre les caractéristiques regroupées à 1,280 canaux et le classificateur linéaire final ; son taux est défini par l'argument d'entraînement dropout (0.0 par défaut).

from ultralytics import YOLO

# Charger un modèle de classification YOLO26 dont la tête contient la couche de dropout
model = YOLO("yolo26n-cls.pt")

# Entraîner avec un dropout de 10 % dans la tête de classification sur un petit sous-ensemble MNIST
results = model.train(data="mnist160", epochs=10, imgsz=64, dropout=0.1)

Applications concrètes#

  • Analyse d'images médicales : les images médicales étiquetées sont coûteuses ; les classificateurs diagnostiques sont donc souvent ajustés à partir d'un backbone pré-entraîné sur quelques milliers d'images. Le dropout dans la tête de classification limite la mémorisation de cas individuels par cette tête sur un jeu de données aussi réduit.
  • Traitement automatique du langage naturel : les encodeurs Transformer comme BERT appliquent un dropout de probabilité 0.1 à toutes les couches, y compris aux poids d'attention, pendant le pré-entraînement et l'ajustement fin.
  • Normalisation par lot : la normalisation par lot standardise les entrées de chaque couche pour stabiliser l'entraînement et ajoute uniquement un léger bruit provenant des statistiques des lots, sans supprimer d'unités.
  • Lissage des étiquettes : le lissage des étiquettes régularise les cibles d'entraînement en adoucissant les étiquettes one-hot et conserve toutes les activations.
  • Élagage : l'élagage supprime définitivement les poids de faible importance pour réduire la taille d'un modèle, tandis que la mise à zéro du dropout ne dure qu'une étape d'entraînement et ne change pas le nombre de paramètres.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique