Nell'apprendimento automatico (ML), in particolare nel contesto dell'addestramento di modelli di deep learning, un'epoca rappresenta un passaggio completo dell'intero set di dati di addestramento attraverso l'algoritmo di apprendimento. L'addestramento dei modelli è un processo iterativo in cui il modello apprende modelli elaborando ripetutamente i dati. Le epoche sono un iperparametro fondamentale che definisce il numero di volte in cui l'algoritmo lavorerà sull'intero set di dati, consentendo al modello di imparare da ogni esempio all'interno dei dati più volte.
Epoca spiegata
Durante il processo di addestramento, i parametri interni di un modello, o i pesi, vengono regolati in base agli errori commessi nelle sue previsioni. Questo aggiustamento avviene in genere utilizzando un algoritmo di ottimizzazione come la discesa del gradiente o le sue varianti (ad esempio, Adam Optimizer). Un'epoca significa che ogni campione del dataset di addestramento ha avuto l'opportunità di aggiornare i parametri interni del modello una volta. Per i dataset di grandi dimensioni, l'elaborazione dell'intero set di dati in una sola volta è computazionalmente costosa, quindi i dati vengono spesso suddivisi in parti più piccole chiamate batch.
Epoca vs. Iterazione vs. Dimensione del batch
È importante distinguere un'epoca dai termini correlati:
- Dimensione del lotto: Definisce il numero di campioni elaborati prima che i pesi del modello vengano aggiornati.
- Iterazione: Si riferisce al numero di lotti necessari per completare un'epoca. Se un set di dati ha 1000 campioni e la dimensione dei lotti è di 100, un'epoca richiede 10 iterazioni (1000 campioni / 100 campioni per lotto = 10 lotti/iterazioni). Ogni iterazione comporta l'elaborazione di un lotto e l'aggiornamento dei pesi del modello.
- Epoca: Un ciclo completo attraverso l'intero set di dati di allenamento. Nell'esempio precedente, il completamento di 10 iterazioni costituisce un'epoca.
Pensa a questo come alla lettura di un libro: l'intero libro è il dataset, un capitolo è un batch, la lettura di un capitolo è un'iterazione e la lettura dell'intero libro da copertina a copertina è un'epoca.
Perché le epoche sono importanti
Il numero di epoche è un iperparametro critico perché determina il numero di volte in cui il modello apprende dall'intero set di dati.
- Troppe poche epoche: se un modello viene addestrato per un numero troppo limitato di epoche, potrebbe non avere un'esposizione sufficiente ai dati per apprendere efficacemente i modelli sottostanti. Questo porta a un underfitting, in cui il modello ha prestazioni scarse sia sui dati di addestramento che sui dati di test non visti.
- Troppe epoche: al contrario, allenarsi per un numero eccessivo di epoche può portare a un overfitting. In questo caso, il modello apprende troppo bene i dati di addestramento, compresi i rumori e i dettagli specifici, perdendo la capacità di generalizzare a nuovi dati non visti. Il modello potrebbe mostrare un'eccellente accuratezza sul set di addestramento, ma avere scarse prestazioni sui dati di convalida o sui dati di prova.
Trovare il giusto equilibrio è fondamentale per ottenere buone prestazioni e generalizzazione del modello. Questo spesso comporta il monitoraggio delle prestazioni del modello su un set di dati di convalida separato durante l'addestramento.
Determinazione del numero di epoche
Non esiste un unico numero "corretto" di epoche; il valore ottimale dipende dalla complessità dei dati, dalle dimensioni del dataset, dall'architettura del modello e dal tasso di apprendimento. Gli approcci più comuni includono:
- Sperimentazione: Provare diversi numeri di epoche e valutare le prestazioni.
- Monitoraggio delle metriche di convalida: Monitoraggio di metriche come la perdita e l'accuratezza su un set di convalida. L'addestramento viene spesso interrotto quando queste metriche smettono di migliorare o iniziano a peggiorare, una tecnica nota come Early Stopping.
- Regolazione degli iperparametri: Ricerca sistematica dei migliori iperparametri, compreso il numero di epoche, spesso utilizzando strumenti automatizzati o tecniche come quelle presenti nella Guida alla regolazione degli iperparametriUltralytics .
Esempi del mondo reale
- Rilevamento degli oggetti: Quando si addestra un Ultralytics YOLO di Ultralytics, come ad esempio YOLOv8 o YOLO11su un set di dati di grandi dimensioni come COCO, il modello potrebbe essere addestrato per un numero specifico di epoche, ad esempio 100 o 300. Durante ogni epoca, il modello elabora tutte le immagini del set di addestramento COCO, regolando i suoi pesi per prevedere meglio le bounding box e le etichette di classe degli oggetti. Piattaforme come Ultralytics HUB consentono agli utenti di gestire facilmente questo processo di addestramento e di monitorare le prestazioni tra le varie epoche.
- Elaborazione del linguaggio naturale (NLP): L'addestramento di un modello linguistico di grandi dimensioni come BERT per un'attività come l'analisi del sentimento comporta l'alimentazione di grandi quantità di dati testuali attraverso il modello. L'addestramento può avvenire in un numero ridotto di epoche (ad esempio, 3-10) a causa delle dimensioni dei dataset e dei modelli. Ogni epoca garantisce che il modello veda una volta l'intero corpus testuale, affinando la sua comprensione delle sfumature linguistiche rilevanti per il sentiment. Framework come Hugging Face Transformers spesso specificano un numero di epoche predefinito per la messa a punto.
Strumenti e strutture
Le epoche sono un parametro standard nella maggior parte dei framework di deep learning:
- PyTorch: Formazione di loop in PyTorch iterano esplicitamente su epoch e batch.
- TensorFlow: API di alto livello come Keras all'interno di TensorFlow permettono agli utenti di specificare il numero di epoche direttamente nel file
fit
metodo. - Ultralytics HUB: fornisce un'interfaccia facile da usare per l'addestramento di modelli come YOLO, dove gli utenti possono facilmente configurare il numero di epoche e monitorare visivamente i progressi dell'addestramento.
Le epoche sono una pietra miliare dell'apprendimento iterativo nel ML, che bilancia la necessità di un'esposizione sufficiente ai dati con i rischi di overfitting. La selezione del giusto numero di epoche, spesso attraverso un'attenta sperimentazione e monitoraggio come discusso in risorse come il corso CS231n di Stanford o il blog Machine Learning Mastery, è fondamentale per costruire modelli efficaci. Puoi trovare altre definizioni in risorse come il Glossario di Machine LearningGoogle .