Migliora i tuoi modelli di machine learning con la data augmentation. Scopri le tecniche per aumentare l'accuratezza, ridurre l'overfitting e migliorare la robustezza.
L'aumento dei dati è una tecnica fondamentale nell'apprendimento automatico e nella visione artificiale utilizzata per aumentare artificialmente le dimensioni e la diversità di un set di dati di addestramento creando versioni modificate dei dati esistenti. Anziché raccogliere ed etichettare dati completamente nuovi, operazione che può richiedere molto tempo ed essere costosa, l'aumento applica varie trasformazioni ai campioni originali. Queste modifiche aiutano i modelli di apprendimento automatico a imparare a riconoscere i modelli in modo più solido, garantendo che funzionino bene anche quando incontrano variazioni negli ambienti reali. Esponendo i modelli a una gamma più ampia di scenari durante l'addestramento, gli sviluppatori possono ridurre efficacemente l' overfitting e migliorare la generalizzazione.
Nel campo della visione artificiale, i modelli spesso incontrano difficoltà quando vengono presentate immagini leggermente diverse dai dati di addestramento. Variazioni di illuminazione, orientamento o disordine dello sfondo possono confondere un modello che non ha visto una diversità sufficiente. L'aumento dei dati risolve questo problema simulando queste variazioni a livello di programmazione. Ad esempio, l'immagine di un gatto potrebbe essere ruotata, capovolta o leggermente sfocata per insegnare al modello che il soggetto rimane un "gatto" indipendentemente da questi cambiamenti.
Questo processo è fondamentale per il successo delle architetture moderne come Ultralytics , che si basa su set di dati ricchi e variegati per ottenere un'elevata precisione in attività quali il rilevamento di oggetti e la segmentazione delle immagini. Sintetizzando nuovi esempi di addestramento , l'aumento consente ai modelli di apprendere caratteristiche invarianti, ovvero caratteristiche che non cambiano nonostante le alterazioni nell'input.
L'aumento dei dati comprende un'ampia gamma di tecniche di trasformazione, che vanno da semplici aggiustamenti geometrici a complessi approcci generativi:
L'impatto pratico dell'aumento dei dati si estende a numerosi settori in cui la scarsità o l'elevata variabilità dei dati rappresenta una sfida.
Nello sviluppo dei veicoli autonomi, raccogliere dati per ogni possibile condizione meteorologica o scenario di illuminazione è quasi impossibile. Gli ingegneri utilizzano l'aumento dei dati per simulare pioggia, nebbia, neve o abbagliamento su immagini di tempo sereno. Ciò garantisce che il sistema di percezione sia in grado di detect in modo affidabile detect , segnali stradali e altri veicoli indipendentemente dai fattori ambientali, migliorando la sicurezza e l'affidabilità.
L'analisi delle immagini mediche spesso risente della limitazione dei set di dati dovuta a questioni di privacy e alla rarità di determinate condizioni. L'aumento consente ai ricercatori di ampliare piccoli set di dati di radiografie o scansioni MRI applicando deformazioni elastiche, rotazioni o variazioni di intensità. Ciò aiuta ad addestrare modelli diagnostici robusti in grado di identificare tumori o fratture con elevata sensibilità, anche quando la posizione del paziente o la qualità della scansione variano.
È importante distinguere l'aumento dei dati dai dati sintetici. Sebbene entrambi mirino ad aumentare le dimensioni del set di dati, i dati sintetici sono generati artificialmente da zero (spesso utilizzando rendering 3D o motori di simulazione), mentre l'aumento dei dati modifica i dati reali esistenti. Inoltre, la pre-elaborazione dei dati comporta la pulizia e la formattazione dei dati (ad esempio, ridimensionamento, normalizzazione) per renderli adatti a un modello, ma a differenza dell'aumento, non aumenta necessariamente il numero di campioni di addestramento.
I framework moderni integrano l'aumento direttamente nella pipeline di addestramento. L'esempio seguente mostra come
applicare aumenti come il ribaltamento e il ridimensionamento durante l'addestramento di un modello YOLO26 utilizzando il
ultralytics pacchetto.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Train with custom data augmentation hyperparameters
# fliplr: 50% chance of horizontal flip, scale: image scaling gain
results = model.train(data="coco8.yaml", epochs=10, fliplr=0.5, scale=0.5)
Regolando questi iperparametri, gli sviluppatori possono adattare la strategia di potenziamento alle esigenze specifiche del proprio set di dati e della propria applicazione, sfruttando la flessibilità della Ultralytics per uno sviluppo efficiente del modello.