Epoch
Apprends ce qu'est une époque en apprentissage automatique et comment elle impacte l'entraînement des modèles. Explore l'optimisation, évite le surapprentissage et entraîne Ultralytics YOLO26 en toute simplicité.
Un epoch représente un cycle complet à travers l'ensemble du training dataset par un algorithme de machine learning. Durant ce processus, le modèle a l'opportunité de mettre à jour ses paramètres internes en se basant sur chaque échantillon des données exactement une fois. Dans le contexte du deep learning, un seul passage est rarement suffisant pour qu'un neural network apprenne des motifs complexes efficacement. Par conséquent, l'entraînement implique généralement plusieurs epochs, permettant à l'algorithme d'apprentissage d'affiner de manière itérative sa compréhension et de minimiser l'erreur entre ses prédictions et la réalité du terrain.
Le rôle des époques dans l'optimisation#
L'objectif principal de l'entraînement est d'ajuster les model weights pour minimiser une loss function spécifique. Les algorithmes d'optimisation, tels que le stochastic gradient descent (SGD) ou l'Adam optimizer, utilisent l'erreur calculée lors de chaque epoch pour guider ces ajustements. À mesure que le nombre d'epochs augmente, le modèle passe généralement d'un état d'erreur élevée (supposition aléatoire) à une erreur plus faible (motifs appris).
Cependant, sélectionner le bon nombre d'epochs est un aspect critique du hyperparameter tuning.
- Trop peu d'epochs : Cela peut conduire à un underfitting, où le modèle n'a pas encore capturé la tendance sous-jacente des données.
- Trop d'epochs : Cela résulte souvent en un overfitting, où le modèle mémorise le bruit d'entraînement au lieu de généraliser aux nouvelles données. Pour éviter cela, les développeurs surveillent souvent les performances sur les validation data et emploient des techniques comme l'early stopping pour interrompre l'entraînement lorsque la généralisation cesse de s'améliorer.
Époque vs Batch vs Itération#
Il est courant pour les débutants de confondre "epoch" avec des termes associés. Comprendre la hiérarchie de ces concepts est essentiel pour configurer correctement les training loops :
- Époque : Un passage complet à travers l'ensemble du jeu de données.
- Batch : Un sous-ensemble du jeu de données traité simultanément. Parce que les jeux de données sont souvent trop volumineux pour tenir entièrement dans la GPU memory en même temps, ils sont divisés en groupes plus petits définis par le batch size.
- Itération : Une seule mise à jour des poids du modèle. Si un jeu de données contient 1 000 images et que la taille de batch est de 100, il faudra 10 itérations pour terminer une époque.
Applications concrètes#
Le nombre d'époques requis varie considérablement en fonction de la complexité de la tâche et de la taille des données.
- Analyse d'images médicales : En medical image analysis, comme la détection de tumeurs dans des examens IRM, la précision est primordiale. Les modèles entraînés pour ces tâches fonctionnent souvent pendant des centaines d'epochs. Cet entraînement intensif garantit que le convolutional neural network (CNN) peut discerner les subtiles anomalies qui distinguent les tissus malins des tissus sains, sauvant potentiellement des vies.
- Conduite autonome : Pour les autonomous vehicles, les modèles de détection d'objets doivent identifier de manière fiable les piétons, les panneaux et autres véhicules. L'entraînement de ces systèmes robustes implique généralement des jeux de données massifs comme COCO ou Objects365. Bien que la taille du jeu de données soit énorme, le modèle nécessite toujours plusieurs epochs pour converger vers une solution qui se généralise bien à diverses conditions météorologiques et d'éclairage.
Gérer les cycles d'entraînement avec du code#
Lors de l'utilisation de frameworks modernes comme Ultralytics YOLO, la définition du nombre d'epochs est un argument simple dans la commande d'entraînement. Des outils comme la Ultralytics Platform peuvent aider à visualiser les courbes de perte au fil de chaque epoch pour identifier le point d'arrêt optimal.
L'exemple suivant montre comment définir le nombre d'epochs lors de l'entraînement d'un modèle 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)Dans cet extrait, l'argument epochs=50 indique au moteur d'entraînement de parcourir le jeu de données coco8.yaml 50 fois distinctes. Pendant chaque cycle, le modèle effectue une forward propagation et une backpropagation pour affiner ses capacités de détection.






