Glossario

Normalizzazione

Scopri il potere della normalizzazione nell'apprendimento automatico! Scopri come migliora l'addestramento dei modelli, aumenta le prestazioni e garantisce soluzioni di AI robuste.

Addestra i modelli YOLO semplicemente
con Ultralytics HUB

Per saperne di più

La normalizzazione è una tecnica fondamentale di pre-elaborazione dei dati utilizzata ampiamente nell'apprendimento automatico (ML) e nella scienza dei dati. Il suo obiettivo principale è quello di ridimensionare le caratteristiche numeriche dei dati in un intervallo comune e standard, spesso compreso tra 0 e 1 o -1 e 1, senza distorcere le differenze negli intervalli di valori. Questo processo garantisce che tutte le caratteristiche contribuiscano in modo più equo all'addestramento del modello, evitando che le caratteristiche con valori intrinsecamente più grandi (come lo stipendio in un set di dati) influenzino in modo sproporzionato il risultato rispetto alle caratteristiche con valori più piccoli (come gli anni di esperienza). La normalizzazione è particolarmente importante per gli algoritmi sensibili alla scalatura delle caratteristiche, come i metodi basati sulla discesa del gradiente utilizzati nel deep learning (DL) e in vari algoritmi di ottimizzazione.

Perché la normalizzazione è importante

I dataset del mondo reale spesso contengono caratteristiche con scale e unità di misura molto diverse. Ad esempio, in un set di dati per la previsione di abbandono dei clienti, il "saldo del conto" può variare da centinaia a milioni di unità, mentre il "numero di prodotti" può variare da 1 a 10 unità. Senza normalizzazione, gli algoritmi di ML che calcolano le distanze o utilizzano i gradienti, come le macchine vettoriali di supporto (SVM) o le reti neurali (NN), potrebbero percepire erroneamente la caratteristica con un intervallo più ampio come più importante semplicemente a causa della sua scala. La normalizzazione livella il campo di gioco, assicurando che il contributo di ogni caratteristica sia basato sul suo potere predittivo, non sulla sua grandezza. Questo porta a una convergenza più rapida durante l'addestramento (come dimostra la riduzione delle epoche), a una maggiore accuratezza del modello e a modelli più stabili e robusti. Questa stabilità è utile per l'addestramento di modelli come Ultralytics YOLO per compiti come il rilevamento di oggetti o la segmentazione di istanze, migliorando potenzialmente metriche come la precisione media (mAP).

Tecniche di normalizzazione comuni

Esistono diversi metodi per ridimensionare i dati, ognuno adatto a situazioni diverse:

  • Scala Min-Max: Ridimensiona le caratteristiche in un intervallo fisso, in genere [0, 1]. Si calcola come: (valore - min) / (max - min). Questo metodo preserva la forma della distribuzione originale ma è sensibile ai valori anomali.
  • Standardizzazione del punteggio Z (scala standard): Ridimensiona le caratteristiche in modo che abbiano una media di 0 e una deviazione standard di 1. Si calcola come: (valore - media) / deviazione standard. A differenza della scalatura Min-Max, non vincola i valori a un intervallo specifico, il che potrebbe essere uno svantaggio per gli algoritmi che richiedono input all'interno di un intervallo delimitato, ma gestisce meglio gli outlier. Puoi trovare maggiori informazioni su questi e altri metodi nella documentazione di Scikit-learn Preprocessing.
  • Scala robusta: Utilizza statistiche robuste ai valori anomali, come l'intervallo interquartile (IQR), invece di min/max o media/std dev. È particolarmente utile quando il set di dati contiene valori anomali significativi. Per saperne di più sul Robust Scaling.

La scelta tra queste tecniche spesso dipende dallo specifico set di dati (come quelli presenti in Ultralytics Datasets) e dai requisiti dell'algoritmo di ML utilizzato. Le guide sulla pre-elaborazione dei dati annotati trattano spesso le fasi di normalizzazione relative a compiti specifici.

Normalizzazione vs. Standardizzazione vs. Normalizzazione in batch

È importante distinguere la normalizzazione dai concetti correlati:

  • Standardizzazione: Spesso utilizzata in modo intercambiabile con la standardizzazione del punteggio Z, questa tecnica trasforma i dati in modo che abbiano media zero e varianza unitaria. Mentre la normalizzazione in genere scala i dati in un intervallo fisso (ad esempio, da 0 a 1), la standardizzazione centra i dati intorno alla media e li scala in base alla deviazione standard, senza necessariamente vincolarli a un intervallo specifico.
  • Normalizzazione dei lotti: Si tratta di una tecnica applicata all'interno di una rete neurale durante l'addestramento, in particolare agli ingressi degli strati o delle attivazioni. Normalizza le uscite di uno strato di attivazione precedente per ogni mini-batch, stabilizzando e accelerando il processo di formazione e riducendo il problema dello spostamento delle covariate interne. A differenza della normalizzazione delle caratteristiche (Min-Max o Z-score) che è una fase di pre-elaborazione applicata al set di dati iniziale, la normalizzazione dei lotti fa parte dell'architettura stessa della rete e si adatta dinamicamente durante l'addestramento del modello.

Applicazioni della normalizzazione

La normalizzazione è una fase onnipresente nella preparazione dei dati per varie attività di Intelligenza Artificiale (AI) e ML:

In sintesi, la normalizzazione è una fase di pre-elaborazione fondamentale che scala le caratteristiche dei dati a un intervallo coerente, migliorando il processo di formazione, la stabilità e le prestazioni di molti modelli di apprendimento automatico, compresi quelli sviluppati e addestrati con strumenti come Ultralytics HUB. Garantisce un contributo equo delle caratteristiche ed è essenziale per gli algoritmi sensibili alla scala degli input, contribuendo a soluzioni di intelligenza artificiale più robuste e accurate.

Leggi tutto