Skip to content

Early stopping

Early Stopping

Early StoppingVal loss bottoms at epoch 34; 8-epoch patience window catches the uptick before overfit compounds

L'arresto anticipato (early stopping) è una forma di regolarizzazione che impedisce a una rete neurale di memorizzare i dati di addestramento interrompendo l'allenamento quando la capacità di generalizzazione smette di migliorare. A ogni epoca vengono calcolate sia la loss di addestramento sia la loss di validazione; la loss di addestramento scende in modo monotono perché l'ottimizzatore la minimizza direttamente, mentre la loss di validazione segue una traiettoria a U: diminuisce finché il modello apprende caratteristiche generali, poi risale quando il modello comincia ad adattarsi al rumore specifico degli esempi di addestramento. L'algoritmo salva un checkpoint ogni volta che la loss di validazione raggiunge un nuovo minimo e applica una finestra di pazienza P (tipicamente da 5 a 20 epoche): se la loss di validazione non migliora per P epoche consecutive, l'addestramento termina e il checkpoint salvato viene ripristinato. Il parametro di pazienza bilancia il rischio di fermarsi troppo presto, quando il rumore transitorio imita l'overfitting, con quello di fermarsi troppo tardi, dopo che il divario da overfitting si è consolidato.

In pratica, l'arresto anticipato interagisce con le altre tecniche di regolarizzazione. Con dropout, batch normalisation o una forte data augmentation, la curva di validazione è più rumorosa, pertanto valori di pazienza più elevati, da 10 a 20, sono lo standard. Per il fine-tuning di modelli linguistici di grandi dimensioni, dove le epoche sono costose, una singola partizione di validazione valutata ogni 200-500 passi sostituisce il monitoraggio a livello di epoca. La metrica di miglioramento può essere la loss di validazione, l'accuratezza di validazione o qualsiasi metrica specifica del compito, come il BLEU per la traduzione automatica o l'F1 per il riconoscimento di entità nominate (NER). Combinare l'arresto anticipato con il warmup del tasso di apprendimento richiede attenzione: fermarsi durante la fase di warmup è quasi sempre un falso allarme, quindi molte pipeline saltano i controlli di pazienza per i primi warmup_steps. I framework moderni (PyTorch Lightning, Keras, Hugging Face Trainer) implementano l'arresto anticipato come una callback in una riga di codice, rendendolo uno dei metodi di regolarizzazione più economici e affidabili disponibili.

English version