Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Dropout Layer

Un livello di dropout azzera casualmente una parte delle attivazioni durante l'addestramento, impedendo alla rete di fare affidamento su una singola unità e riducendo così l'overfitting.

Un livello di dropout è un componente di regolarizzazione di una rete neurale che imposta casualmente a zero una frazione p dei suoi input a ogni passaggio di addestramento e lascia passare tutti i valori invariati durante l'inferenza. Poiché qualsiasi unità può scomparire in qualsiasi passaggio, la rete non può dipendere da pochi neuroni specifici o da coadattamenti fragili tra loro; impara quindi caratteristiche ridondanti che generalizzano meglio e riducono l'overfitting sui dati di addestramento. Geoffrey Hinton e colleghi hanno introdotto la tecnica nel 2012 e Srivastava, Hinton et al. l'hanno descritta in dettaglio nel 2014. È un livello integrato in PyTorch, TensorFlow e nella maggior parte degli altri framework di deep learning, usato in architetture che vanno dalle teste di classificazione completamente connesse ai Transformer.

Come funziona il dropout#

Durante l'addestramento, il livello campiona una nuova maschera casuale a ogni passaggio in avanti, mantenendo ciascun elemento con probabilità 1 − p e azzerandolo con probabilità p. Ogni passaggio addestra quindi una sottorete ridotta diversa, mentre la rete completa usata in fase di test approssima la media su un numero esponenzialmente elevato di sottoreti che condividono i suoi pesi; per questo il dropout viene spesso descritto come una forma economica di addestramento con ensemble. Per mantenere invariata l'attivazione attesa nelle due fasi, i framework moderni usano il dropout invertito: durante l'addestramento, i valori mantenuti vengono moltiplicati per 1 / (1 − p), così il livello non esegue alcuna operazione in inferenza. In PyTorch, nn.Dropout segue la modalità di addestramento o valutazione del modulo:

import torch
from torch import nn

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

# Modalità di addestramento: circa la metà dei valori viene azzerata e quelli rimanenti vengono moltiplicati per 1 / (1 - p) = 2
dropout.train()
print("Train:", dropout(x))

# Modalità di valutazione: il livello lascia passare tutti i valori invariati
dropout.eval()
print("Eval: ", dropout(x))

In modalità di addestramento vengono eliminati sei dei dieci valori e i quattro rimanenti diventano 2.0, mantenendo il valore atteso a 1.0; in modalità di valutazione tutti e dieci i valori restano a 1.0.

Varianti comuni del dropout#

  • Dropout spaziale: nn.Dropout2d di PyTorch azzera interi canali delle mappe di caratteristiche; è adatto alle reti convoluzionali perché i pixel vicini all'interno di un canale sono fortemente correlati e l'eliminazione di singoli pixel li regolarizza appena.
  • Profondità stocastica (DropPath): invece delle singole attivazioni, vengono saltati casualmente interi rami residui per ogni campione; è un componente standard nell'addestramento dei Vision Transformer e delle CNN moderne.
  • Dropout Monte Carlo: Il dropout rimane attivo durante l'inferenza e il modello esegue più passaggi in avanti sullo stesso input. La dispersione delle previsioni fornisce una stima del livello di incertezza del modello a basso costo, utile per i sistemi critici per la sicurezza; Gal e Ghahramani hanno interpretato il metodo come un'approssimazione dell'inferenza bayesiana.
  • DropConnect: vengono azzerati singoli pesi casuali invece delle attivazioni, assegnando a ogni connessione la propria maschera.

Il dropout nella pratica#

I tassi di dropout si regolano come qualsiasi altro iperparametro. Srivastava et al. hanno osservato che eliminare unità nascoste con probabilità 0.5 funzionava bene per un'ampia gamma di reti e attività, mentre per le unità di input è preferibile una probabilità di mantenimento più vicina a 1; il Transformer originale usava p = 0.1. Un tasso troppo alto rallenta la convergenza e può causare underfitting, mentre applicare il dropout subito prima della batch normalization può ridurre l'accuratezza a causa di uno spostamento della varianza tra addestramento e test. Molte reti neurali convoluzionali si affidano soprattutto a batch normalization, data augmentation e weight decay, riservando il dropout alla testa di classificazione. I modelli di classificazione di Ultralytics YOLO26 seguono questo schema: contengono un livello di dropout tra le caratteristiche sottoposte a pooling a 1,280 canali e il classificatore lineare finale; il relativo tasso viene impostato dall'argomento di addestramento dropout (0.0 per impostazione predefinita).

from ultralytics import YOLO

# Carica un modello di classificazione YOLO26, la cui testa contiene il livello di dropout
model = YOLO("yolo26n-cls.pt")

# Esegui l'addestramento con dropout del 10% nella testa di classificazione su un piccolo sottoinsieme di MNIST
results = model.train(data="mnist160", epochs=10, imgsz=64, dropout=0.1)

Applicazioni nel mondo reale#

  • Analisi di immagini mediche: Le scansioni annotate sono costose, quindi spesso i classificatori diagnostici vengono sottoposti a fine-tuning partendo da un backbone preaddestrato e usando alcune migliaia di immagini. Il dropout nella testa di classificazione limita la quantità di informazioni sui singoli casi che la testa può memorizzare a partire da un insieme così piccolo.
  • Elaborazione del linguaggio naturale: Durante il preaddestramento e il fine-tuning, gli encoder Transformer come BERT applicano il dropout con probabilità 0.1 a tutti i livelli, inclusi i pesi dell'attenzione.
  • Batch normalization: La batch normalization standardizza gli input di ogni livello per stabilizzare l'addestramento e aggiunge solo un lieve rumore dovuto alle statistiche del batch, senza rimuovere alcuna unità.
  • Label smoothing: Il label smoothing regolarizza tramite i target di addestramento, attenuando le etichette one-hot, e lascia intatte tutte le attivazioni.
  • Pruning: Il pruning rimuove in modo permanente i pesi meno importanti per ridurre le dimensioni del modello, mentre l'azzeramento del dropout dura un solo passaggio di addestramento e lascia invariato il numero di parametri.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning