Data Augmentation
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 strategica in
apprendimento automatico (ML) utilizzata per
artificialmente la dimensione e la diversità di un
set di dati di addestramento senza la necessità di
raccogliere nuovi dati grezzi. Applicando varie trasformazioni ai campioni di dati esistenti, gli sviluppatori possono creare versioni modificate ma realistiche di immagini, testo o audio.
versioni modificate ma realistiche di immagini, testo o audio. Questo processo è essenziale per ridurre
overfittingun problema comune in cui un modello memorizza gli esempi di addestramento invece di imparare modelli generalizzabili.
In ultima analisi, un aumento efficace porta a un aumento del
accuratezza e garantisce che il modello
di dati inediti in ambienti reali.
Tecniche e metodi fondamentali
Nel campo della
visione artificiale (CV)l'aumento comporta la manipolazione delle immagini in ingresso per simulare condizioni diverse. Queste trasformazioni aiutano il
modello diventi invariante ai cambiamenti di orientamento, illuminazione e scala.
-
Trasformazioni geometriche: Modificano la disposizione spaziale di un'immagine. Le operazioni più comuni includono
rotazione casuale, capovolgimento orizzontale, ritaglio e scalatura. Ad esempio, utilizzando
trasformazioni geometricheOpenCV
permette a un modello di riconoscere un oggetto indipendentemente dal fatto che sia capovolto o inclinato.
-
Trasformazioni fotometriche: Regolano i valori dei pixel per alterare l'aspetto visivo senza modificare la geometria.
modificare la geometria. Regolano la luminosità, il contrasto, la saturazione e aggiungono
rumore gaussiano aiuta il modello a gestire
condizioni di illuminazione variabili.
-
Miscelazione avanzata: Moderno
rilevamento degli oggetti di oggetti
utilizzano spesso tecniche complesse come Mosaico, MixUp e CutMix. Questi metodi combinano più immagini in un unico
campione di addestramento, incoraggiando il modello ad apprendere le relazioni contestuali. È possibile esplorare come implementare questi metodi tramite
il sito
integrazioneUltralytics Albumentations.
Applicazioni nel mondo reale
L'aumento dei dati è indispensabile nei settori in cui i dati di alta qualità sono scarsi o costosi da ottenere.
-
Imaging medico: In
analisi delle immagini medichele leggi sulla privacy e la rarità di condizioni specifiche limitano le dimensioni dei set di dati. Aumentando le radiografie o le risonanze magnetiche con
rotazioni e deformazioni elastiche, i ricercatori possono addestrare modelli robusti per
rilevamento dei tumorigarantendo che l'intelligenza artificiale possa identificare le anomalie indipendentemente dal posizionamento del paziente o dalla calibrazione della macchina.
-
Guida autonoma: Le auto a guida autonoma devono navigare in ambienti imprevedibili. Raccogliere dati per
per ogni possibile condizione meteorologica è impossibile. Gli ingegneri usano l'aumento per simulare la pioggia, la nebbia o gli scenari di scarsa illuminazione
scenari di pioggia, nebbia o scarsa illuminazione su filmati di un giorno sereno. Questo prepara
veicoli autonomi a reagire in modo
in condizioni meteorologiche avverse, migliorando in modo significativo gli standard di sicurezza descritti da organizzazioni come l'Associazione per la sicurezza e l'ambiente.
NHTSA.
Implementazione dell'aumento in Ultralytics YOLO
Il ultralytics semplifica l'applicazione degli incrementi direttamente all'interno della libreria
addestramento del modello pipeline. È possibile regolare
iperparametri per controllare l'intensità e la probabilità delle trasformazioni.
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model with custom data augmentation parameters
# These arguments modify the training data on-the-fly
model.train(
data="coco8.yaml",
epochs=5,
degrees=30.0, # Apply random rotations between -30 and +30 degrees
fliplr=0.5, # 50% probability of flipping images horizontally
mosaic=1.0, # Use Mosaic augmentation (combining 4 images)
mixup=0.1, # Apply MixUp augmentation with 10% probability
)
Distinguere i concetti correlati
È importante distinguere l'aumento dei dati da strategie simili:
-
rispetto ai dati sintetici: Mentre l'aumento modifica i dati del mondo reale esistenti,
dati sintetici sono generati
interamente da zero utilizzando simulazioni al computer o
IA generativa. L'ampliamento aggiunge varietà a ciò che si ha; i dati sintetici creano ciò che non si ha.
-
rispetto alla pre-elaborazione dei dati:
La pre-elaborazione dei dati comporta
la pulizia e la formattazione dei dati (ad esempio, ridimensionamento, normalizzazione) per renderli adatti a un modello. L'incremento avviene
dopo la preelaborazione e si concentra sull'espansione della diversità del set di dati piuttosto che sul suo formato.
-
contro l'apprendimento per trasferimento:
L'apprendimento per trasferimento sfrutta
conoscenza di un modello pre-addestrato (ad esempio, addestrato su un modello di
ImageNet) per risolvere un nuovo compito. Anche se spesso vengono usati insieme, l'apprendimento per trasferimento si riferisce ai pesi del modello, mentre l'incremento si riferisce ai dati di ingresso.
si riferisce ai dati di ingresso.
Per un'immersione più approfondita nelle moderne librerie di incremento, si consiglia di consultare la sezione
documentazione di Albumentations fornisce un ampio elenco
di trasformazioni disponibili compatibili con PyTorch e YOLO11.