Normalizzazione
Scopri come la normalizzazione migliora l'addestramento e l'accuratezza dei modelli. Scopri il ridimensionamento Min-Max, la standardizzazione Z-score e il suo ruolo nei progetti Ultralytics .
La normalizzazione è una tecnica fondamentale nella
pre-elaborazione dei dati che comporta il riscalamento
degli attributi numerici in un intervallo standard. Nel contesto dell'
apprendimento automatico (ML), i set di dati contengono spesso
caratteristiche con scale variabili, come le fasce d'età (0-100) rispetto ai livelli di reddito (0-100.000). Se non trattate, queste
disparità possono causare una
distorsione dell'algoritmo di ottimizzazione
verso valori più grandi, con conseguente rallentamento della convergenza e prestazioni non ottimali. Normalizzando i dati, gli ingegneri garantiscono
che ogni caratteristica contribuisca in modo proporzionale al risultato finale, consentendo alle
reti neurali di apprendere in modo più efficiente.
Tecniche di normalizzazione comuni
Esistono diversi metodi standard per trasformare i dati, ciascuno adatto a diverse distribuzioni e requisiti algoritmici
.
-
Ridimensionamento Min-Max:
Questa è la forma più intuitiva di normalizzazione. Ridimensiona i dati in un intervallo fisso, solitamente [0, 1]. Questa
trasformazione viene eseguita sottraendo il valore minimo e dividendo per l'intervallo (massimo meno minimo). È
ampiamente utilizzata nell'
elaborazione delle immagini
, dove l'intensità dei pixel è nota per essere compresa tra 0 e 255.
-
Standardizzazione Z-Score: sebbene spesso
utilizzata in modo intercambiabile con la normalizzazione, la standardizzazione trasforma specificamente i dati in modo che abbiano una media pari a 0 e una
deviazione standard pari a 1. Ciò è particolarmente utile quando i dati seguono una
distribuzione gaussiana ed è essenziale per
algoritmi come le
macchine a vettori di supporto (SVM) che
presuppongono dati distribuiti normalmente.
-
Scalatura logaritmica:
Per i dati che contengono valori anomali estremi o che seguono una legge di potenza, l'applicazione di una trasformazione logaritmica può comprimere
l'intervallo dei valori. Ciò rende la distribuzione più gestibile per il
motore di inferenza, che può interpretarla in modo efficace
senza essere influenzato da picchi di valori massicci.
Applicazioni nel mondo reale
La normalizzazione è una fase standard nei processi dei sistemi di IA ad alte prestazioni in vari settori industriali.
-
Visione artificiale (CV): in attività quali il
rilevamento di oggetti e la
classificazione di immagini, le immagini digitali sono
composte da valori di pixel compresi tra 0 e 255. L'inserimento diretto di questi grandi numeri interi in una rete può rallentare la
discesa del gradiente. Una fase di pre-elaborazione standard
prevede la divisione dei valori dei pixel per 255,0 per normalizzarli nell'intervallo [0, 1]. Questa pratica garantisce input coerenti
per modelli avanzati come YOLO26, migliorando la stabilità dell'addestramento
sulla Ultralytics .
-
Analisi delle immagini mediche: le scansioni mediche, come quelle utilizzate nell'
IA in ambito sanitario, spesso provengono da
macchine diverse con scale di intensità variabili. La normalizzazione garantisce che le intensità dei pixel di una risonanza magnetica o di una TAC
siano comparabili tra pazienti e apparecchiature diverse. Questa coerenza è fondamentale per un'accurata
rilevazione dei tumori,
consentendo al modello di concentrarsi sulle anomalie strutturali piuttosto che sulle variazioni di luminosità.
Distinguere i concetti correlati
È importante differenziare la normalizzazione da termini simili relativi alla pre-elaborazione e all'architettura che si trovano nel deep
learning.
-
vs. Normalizzazione batch:
La normalizzazione dei dati è una fase di pre-elaborazione applicata al set di dati grezzi in ingresso prima che questi entrino nella rete.
Al contrario, la normalizzazione batch opera internamente tra i livelli dell'intera rete durante l'
addestramento del modello. Normalizza l'output di un precedente
livello di attivazione per stabilizzare il processo di apprendimento.
-
vs. Aumento dell'immagine:
Mentre la normalizzazione modifica la scala dei valori dei pixel, l'aumento modifica il contenuto o la
geometria dell'immagine (ad esempio, capovolgendo, ruotando o modificando i colori) per aumentare la diversità del set di dati. Strumenti come
Albumentations vengono utilizzati per l'aumento,
mentre la normalizzazione è un'operazione di ridimensionamento matematico.
Esempio di implementazione
Nella visione artificiale, la normalizzazione è spesso il primo passo della pipeline. Il seguente
Python mostra come normalizzare manualmente i dati delle immagini utilizzando NumPy , un processo che avviene automaticamente all'interno del
caricatore di dati Ultralytics durante l'addestramento.
import numpy as np
# Simulate a 2x2 pixel image with values ranging from 0 to 255
raw_image = np.array([[0, 255], [127, 64]], dtype=np.float32)
# Apply Min-Max normalization to scale values to [0, 1]
# This standardizes the input for the neural network
normalized_image = raw_image / 255.0
print(f"Original Range: {raw_image.min()} - {raw_image.max()}")
print(f"Normalized Range: {normalized_image.min()} - {normalized_image.max()}")