Узнайте, что такое эпоха в машинном обучении и как она влияет на обучение модели. Изучите оптимизацию, избегайте переобучения и с легкостью обучите Ultralytics .
Эпоха представляет собой один полный цикл прохождения всего набора обучающих данных алгоритмом машинного обучения. В ходе этого процесса модель имеет возможность обновить свои внутренние параметры на основе каждого образца в данных ровно один раз. В контексте глубокого обучения одного прохода редко бывает достаточно для того, чтобы нейронная сеть эффективно обучилась сложным паттернам . Поэтому обучение обычно включает в себя несколько эпох, что позволяет алгоритму обучения итеративно уточнять свое понимание и минимизировать ошибку между своими прогнозами и фактической истиной.
Основная цель обучения — настроить веса модели таким образом, чтобы минимизировать определенную функцию потерь. Алгоритмы оптимизации, такие как стохастический градиентный спуск (SGD) или Adam , используют ошибку, рассчитанную во время каждого эпоха, для управления этими настройками. По мере увеличения количества эпох модель обычно переходит из состояния высокой ошибки (случайные предположения) в состояние более низкой ошибки (выученные паттерны).
Однако выбор правильного количества эпох является критически важным аспектом настройки гиперпараметров.
Новички часто путают «эпоху» с родственными терминами. Понимание иерархии этих понятий необходимо для правильной настройки циклов обучения:
Количество необходимых эпох значительно варьируется в зависимости от сложности задачи и объема данных.
При использовании современных фреймворков, таких как Ultralytics YOLOопределение количества эпох является простым аргументом в команде обучения. Такие инструменты, как Ultralytics , могут помочь визуализировать кривые потерь за каждую эпоху для определения оптимальной точки остановки.
Следующий пример демонстрирует, как установить счет эпохи при обучении модели 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)
В этом фрагменте epochs=50 аргумент указывает механизму обучения проходить цикл по
coco8.yaml набор данных 50 раз. Во время каждого цикла модель выполняет
прямое распространение и
обратное распространение ошибки (backpropagation) усовершенствовать свои возможности
по обнаружению.