Scopri come i livelli di dropout prevengono l'overfitting nelle reti neurali migliorando la generalizzazione, la robustezza e le prestazioni del modello.
Il livello di dropout è una tecnica di tecnica di regolarizzazione utilizzata nelle reti neurali (NN) per evitare il problema comune dell'overfitting. di overfitting. Quando un modello viene addestrato su un set di dati, rischia di apprendere il rumore e i dettagli specifici dei dati di dati di addestramento piuttosto che i modelli generali modelli generali. Questa memorizzazione porta a prestazioni scarse su dati nuovi e non visti. Il dropout risolve questo problema disattivando una frazione dei neuroni di uno strato durante ogni fase del processo di addestramento. processo di addestramento. Questa semplice ma efficace strategia è stata introdotta in un ricerca di Geoffrey Hinton e dei suoi colleghi , facendo progredire in modo significativo il campo delle colleghi, facendo progredire in modo significativo il campo del apprendimento profondo (DL).
Il meccanismo che sta alla base di uno strato di abbandono è semplice ma potente. Durante la fase di formazione del modello, lo strato genera una maschera di zeri e di uni in base a una probabilità specifica, nota come tasso di abbandono. Se il tasso è impostato a 0,5, circa il 50% dei neuroni viene temporaneamente ignorato durante il passaggio in avanti e all'indietro. Questo costringe i neuroni attivi rimanenti a farsi avanti e ad apprendere caratteristiche robuste in modo indipendente, evitando che la rete si affidi troppo a un singolo neurone. troppo su un singolo neurone, un fenomeno noto come co-adattamento.
Durante l'inferenza, o la fase di test, il livello di Lo strato di abbandono è tipicamente spento. Tutti i neuroni sono attivi per utilizzare l'intera capacità del modello addestrato. Per per garantire che i valori di attivazione totali rimangano coerenti con la fase di addestramento, i pesi sono spesso scalati automaticamente dal framework. automaticamente dal framework. Librerie moderne come PyTorch gestiscono queste operazioni senza problemi nella loro implementazione del dropout.
Per gli utenti di ultralytics applicare il dropout a un modello come
YOLO11 è semplice come la regolazione di un argomento di formazione.
from ultralytics import YOLO
# Load a standard YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model on a dataset with a custom dropout rate of 0.2
# This helps prevent overfitting on smaller datasets
results = model.train(data="coco8.yaml", epochs=10, dropout=0.2)
Il dropout è indispensabile in vari settori dell'intelligenza intelligenza artificiale (IA) dove i i modelli sono inclini all'overfitting a causa di un gran numero di parametri o di dati limitati.
Capire in che modo il dropout si differenzia dalle altre tecniche è fondamentale per un'efficace regolazione dell'iperparametro.