Scopri cos'è un'epoca nell'apprendimento automatico e come influisce sull'addestramento dei modelli. Esplora l'ottimizzazione, evita il sovradattamento e addestra Ultralytics con facilità.
Un'epoca rappresenta un ciclo completo attraverso l'intero set di dati di addestramento da parte di un algoritmo di apprendimento automatico. Durante questo processo, il modello ha la possibilità di aggiornare i propri parametri interni sulla base di ogni campione presente nei dati esattamente una volta. Nel contesto del deep learning, un singolo passaggio è raramente sufficiente affinché una rete neurale apprenda modelli complessi in modo efficace. Pertanto, l'addestramento comporta in genere più epoche, consentendo all'algoritmo di apprendimento di affinare in modo iterativo la propria comprensione e ridurre al minimo l'errore tra le sue previsioni e la realtà effettiva.
L'obiettivo principale dell'addestramento è quello di regolare i pesi del modello per minimizzare una specifica funzione di perdita. Gli algoritmi di ottimizzazione, come la discesa stocastica del gradiente (SGD) o Adam , utilizzano l'errore calcolato durante ogni epoca per guidare queste regolazioni. Con l'aumentare del numero di epoche, il modello passa generalmente da uno stato di errore elevato (ipotesi casuali) a uno di errore inferiore (modelli appresi).
Tuttavia, la selezione del numero corretto di epoche è un aspetto critico della messa a punto degli iperparametri.
È normale che i principianti confondano "epoca" con termini correlati. Comprendere la gerarchia di questi concetti è essenziale per configurare correttamente i cicli di addestramento:
Il numero di epoche richieste varia notevolmente a seconda della complessità dell'attività e delle dimensioni dei dati.
Quando si utilizzano framework moderni come Ultralytics YOLO, la definizione del numero di epoche è un argomento semplice nel comando di addestramento. Strumenti come la Ultralytics possono aiutare a visualizzare le curve di perdita su ciascuna epoca per identificare il punto di arresto ottimale.
L'esempio seguente mostra come impostare il conteggio dell'epoca durante l'addestramento di un modello YOLO26:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Train the model for 50 epochs
# The 'epochs' argument determines how many times the model sees the entire dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
In questo frammento, l'elemento epochs=50 L'argomento indica al motore di addestramento di scorrere ciclicamente il
coco8.yaml set di dati 50 volte distinte. Durante ogni ciclo, il modello esegue
propagazione in avanti e
backpropagation per affinare le sue capacità di rilevamento
.