Imparate a conoscere le epoche nell'apprendimento automatico: come influiscono sull'addestramento dei modelli, prevengono l'overfitting e ottimizzano le prestazioni con Ultralytics YOLO.
Nel contesto dell'addestramento di modelli di intelligenza artificiale (AI), un si riferisce a un passaggio completo dell'intero set di dati di addestramento attraverso l'algoritmo di apprendimento. È un'unità di tempo fondamentale unità di tempo fondamentale nell'addestramento delle reti neurali (NN), che segna il momento in cui il modello modello ha avuto l'opportunità di imparare da ogni campione dei dati forniti esattamente una volta. Poiché l'apprendimento profondo apprendimento profondo raramente raggiungono le prestazioni ottimali dopo aver visto i dati una sola volta, l'addestramento comporta in genere la ripetere questo processo per molte epoche per minimizzare gli errori e affinare i parametri interni.
L'obiettivo primario durante un'epoca è quello di regolare i pesi del modello per pesi del modello per mappare con precisione gli ingressi alle uscite accuratamente. Durante questo processo, un un algoritmo di ottimizzazione, come lo Stochastic Gradient DescentSGD), calcola l'errore utilizzando una specifica funzione di perdita e aggiorna il modello. funzione di perdita e aggiorna lo stato interno del modello.
L'apprendimento a singolo passaggio è spesso insufficiente perché i set di dati contengono variazioni complesse e rumore. Eseguendo più epochs, il modello migliora iterativamente la sua capacità di eseguire compiti come la classificazione o segmentazione delle immagini. Questo iterativo permette alla rete di generalizzare i modelli dei dati di dati di addestramento, invece di memorizzare esempi specifici. Le strutture di apprendimento profondo come PyTorch e TensorFlow forniscono meccanismi meccanismi integrati per controllare il ciclo di addestramento su questi cicli.
Per capire come funzionano i loop di allenamento in modo efficiente, è fondamentale distinguere tra tre termini strettamente correlati, che spesso vengono confusi dai principianti. termini strettamente correlati che vengono spesso confusi dai principianti:
Ad esempio, se si dispone di un set di dati di 10.000 immagini e si imposta una dimensione del batch di 100, occorreranno 100 iterazioni per completare un'epoch. completare un'epoca.
La selezione del giusto numero di epoche è un aspetto critico della della regolazione degli iperparametri. L'addestramento per un numero o troppi cicli può portare a prestazioni non ottimali.
Per mitigare questi problemi, gli ingegneri utilizzano spesso l 'arresto anticipato, una tecnica che interrompe l'addestramento quando la perdita di convalida perdita di convalida smette di migliorare, indipendentemente dal numero totale di epoche specificato. Strumenti di visualizzazione come TensorBoard sono spesso usati per monitorare queste metriche in tempo reale. tempo reale.
Il concetto di epoch è universale in vari domini dell'apprendimento domini dell 'apprendimento automatico (ML).
Quando si utilizza la funzione ultralytics è semplice specificare il numero di epoche. Il parametro
train() accetta un metodo epochs che controlla quante volte il modello itera sui dati forniti.
sui dati forniti.
from ultralytics import YOLO
# Load the YOLO11 model (recommended for latest performance)
model = YOLO("yolo11n.pt")
# Train the model for 50 epochs on the COCO8 dataset
# The 'epochs' argument defines the total passes through the data
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
Questo snippet mostra come avviare una sessione di addestramento in cui il modello affinerà la sua comprensione del dataset "coco8" per 50 volte. Per quanto riguarda i progressi futuri, Ultralytics sta attualmente sviluppando YOLO26, che supporterà l'addestramento end-to-end con un'efficienza ancora maggiore, il cui lancio è previsto per la fine del 2025. fine del 2025.