Scopri gli epoch nel machine learning: come influenzano l'addestramento del modello, prevengono l'overfitting e ottimizzano le prestazioni con Ultralytics YOLO.
Nel machine learning (ML), un'epoca rappresenta un passaggio completo dell'intero training dataset attraverso l'algoritmo di apprendimento. È un concetto fondamentale nel processo iterativo di training delle reti neurali (NN), in cui i modelli imparano vedendo ripetutamente esempi dai dati. Il numero di epoche è un parametro chiave che determina quante volte il modello apprenderà dall'intero set di informazioni di training, influenzando direttamente le prestazioni finali e la qualità del modello.
L'obiettivo principale del training del modello è consentire a un modello di apprendere schemi dai dati. Ciò si ottiene regolando i parametri interni del modello, noti come pesi del modello, per minimizzare una funzione di perdita, che quantifica l'errore tra le previsioni del modello e la ground truth effettiva. Durante una singola epoca, il modello elabora ogni campione di dati e un algoritmo di ottimizzazione come lo Stochastic Gradient Descent (SGD) aggiorna questi pesi.
L'addestramento di un modello per più epoche gli consente di affinare iterativamente i suoi parametri. Ad ogni passaggio, il modello dovrebbe, in teoria, migliorare nel suo compito, che si tratti di classificazione delle immagini o di object detection. Questo processo è gestito utilizzando framework di deep learning popolari come PyTorch o TensorFlow.
Sebbene correlati, questi termini descrivono diversi aspetti del processo di training e vengono spesso confusi.
Ad esempio, se un set di dati ha 10.000 immagini e la dimensione del batch è 100, un'epoca sarà costituita da 100 iterazioni (10.000 immagini / 100 immagini per batch).
La scelta del numero corretto di epoche è una parte fondamentale della regolazione degli iperparametri. Comporta la ricerca di un equilibrio per evitare due problemi comuni:
Una tecnica comune per combattere l'overfitting è lo stopping anticipato, in cui l'addestramento viene interrotto una volta che le prestazioni del modello su un set di validazione cessano di migliorare. I progressi possono essere monitorati utilizzando strumenti come TensorBoard o tramite piattaforme come Ultralytics HUB, che aiuta a visualizzare le metriche di addestramento nel corso delle epoche.
Il concetto di epoche è universale nelle applicazioni di deep learning.
Guida autonoma: Un modello di object detection per un veicolo autonomo viene addestrato su un dataset massiccio come Argoverse. Il modello, come Ultralytics YOLO11, potrebbe essere addestrato per 50-100 epoche. Dopo ogni epoca, le sue prestazioni su un set di validazione vengono misurate utilizzando metriche come la mean Average Precision (mAP). Gli ingegneri selezioneranno il modello dall'epoca che offre il miglior equilibrio tra velocità e precisione prima del deployment.
Analisi di immagini mediche: Un modello per il rilevamento di tumori nelle scansioni cerebrali viene addestrato su un dataset di imaging medicale specializzato. Dato che tali dataset possono essere piccoli, il modello potrebbe essere addestrato per diverse centinaia di epoche. Per prevenire l'overfitting, vengono utilizzate tecniche come l'aumento dei dati e la perdita di validazione viene attentamente monitorata dopo ogni epoca. Ciò garantisce che il modello finale si generalizzi bene alle scansioni di nuovi pazienti. Seguire i suggerimenti consolidati per l'addestramento del modello è fondamentale per il successo in applicazioni così critiche.