Label Smoothing
Impara come la label smoothing previene l'overfitting e migliora la generalizzazione del modello. Scopri come implementare questa tecnica con Ultralytics YOLO26 per risultati migliori.
La label smoothing è una tecnica di regolarizzazione ampiamente utilizzata nel machine learning per migliorare la generalizzazione del modello e prevenire l'overfitting. Quando si addestrano le reti neurali, l'obiettivo è tipicamente quello di minimizzare l'errore tra le predizioni e il ground truth. Tuttavia, se un modello diventa troppo sicuro delle sue predizioni, assegnando una probabilità vicina al 100% a una singola classe, spesso inizia a memorizzare il rumore specifico nei dati di addestramento anziché apprendere pattern robusti. Questo fenomeno, noto come overfitting, degrada le prestazioni su esempi nuovi e mai visti. La label smoothing risolve questo problema impedendo al modello di fare previsioni con assoluta certezza, dicendo essenzialmente alla rete che c'è sempre un piccolo margine di errore.
La meccanica dei target soft#
Per capire come funziona la label smoothing, è utile contrastarla con i target "hard" standard. Nel supervised learning tradizionale, le etichette di classificazione sono solitamente rappresentate tramite one-hot encoding. Ad esempio, in un'attività che distingue tra gatti e cani, un'immagine di un "cane" avrebbe un vettore target di [0, 1]. Per abbinarlo perfettamente, il modello spinge i suoi punteggi interni, noti come logits, verso l'infinito, il che può portare a gradienti instabili e a un'incapacità di adattamento.
La label smoothing sostituisce questi 1 e 0 rigidi con target "soft". Invece di una probabilità target di 1.0, alla classe corretta potrebbe essere assegnato 0.9, mentre la massa di probabilità rimanente (0.1) viene distribuita uniformemente tra le classi errate. Questo sottile cambiamento modifica l'obiettivo della loss function, come la cross-entropy, impedendo alla activation function (solitamente Softmax) di saturare. Il risultato è un modello che apprende cluster di classi più stretti nello spazio delle caratteristiche e produce una migliore model calibration, il che significa che le probabilità predette riflettono più accuratamente la vera probabilità di correttezza.
Applicazioni nel mondo reale#
Questa tecnica è particolarmente critica in ambiti in cui l'ambiguità dei dati è intrinseca o i dataset sono soggetti a errori di etichettatura.
- Diagnosi Medica: Nel campo dell'AI in healthcare, i dati clinici sono raramente in bianco e nero. Ad esempio, nell'medical image analysis, una scansione potrebbe mostrare caratteristiche altamente suggestive di una malattia ma non definitive. L'addestramento con etichette hard costringe il modello a ignorare questa incertezza. Applicando la label smoothing, il modello mantiene un certo grado di scetticismo, che è vitale per i sistemi di supporto alle decisioni in cui l'eccessiva sicurezza potrebbe portare a una diagnosi errata.
- Classificazione di Immagini su Larga Scala: Enormi dataset pubblici come ImageNet contengono spesso immagini etichettate erroneamente o immagini contenenti più oggetti validi. Se un modello tenta di adattarsi a questi esempi rumorosi con il 100% di confidence, apprende associazioni errate. La label smoothing funge da buffer contro il rumore delle etichette, garantendo che pochi punti dati errati non distorcano drasticamente i model weights finali.
Implementazione della label smoothing con Ultralytics#
I moderni framework di deep learning semplificano l'applicazione di questa tecnica. Usando il pacchetto ultralytics, puoi facilmente integrare la label smoothing nella tua pipeline di addestramento per attività di image classification o rilevamento. Questo viene spesso fatto per estrarre prestazioni extra da modelli all'avanguardia come YOLO26.
Il seguente esempio mostra come addestrare un modello di classificazione con la label smoothing abilitata:
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Train with label_smoothing set to 0.1
# The target for the correct class becomes 1.0 - 0.5 * 0.1 = 0.95 (depending on implementation specifics)
model.train(data="mnist", epochs=5, label_smoothing=0.1)Confronto con concetti correlati#
È utile distinguere la label smoothing da altre strategie di regularization per capire quando usarla.
- vs. Dropout: Un dropout layer disattiva casualmente i neuroni durante l'addestramento per forzare la rete ad apprendere rappresentazioni ridondanti. Sebbene entrambi prevengano l'overfitting, il dropout modifica l'architettura della rete in modo dinamico, mentre la label smoothing modifica l'obiettivo di ottimizzazione (le etichette stesse).
- vs. Knowledge Distillation: Entrambe le tecniche comportano l'addestramento su target soft. Tuttavia, nella knowledge distillation, i target soft provengono da un modello "teacher" e contengono informazioni apprese (ad esempio, "questo sembra al 10% un gatto"). Al contrario, la label smoothing utilizza target soft "non informativi" derivati matematicamente (ad esempio, "dai il 10% di probabilità a tutte le altre classi in modo uguale").
- vs. Data Augmentation: Le strategie per la data augmentation modificano i dati di input (rotazione, ritaglio, colorazione) per aumentare la varietà. La label smoothing modifica le aspettative di output. I flussi di lavoro di addestramento completi sulla Ultralytics Platform combinano spesso augmentation, dropout e label smoothing per ottenere la massima precisione.
Mitigando il problema del vanishing gradient negli ultimi strati e incoraggiando il modello ad apprendere caratteristiche più robuste, la label smoothing rimane un punto fermo nelle moderne architetture di deep learning.






