Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Эпоха

Узнайте, что такое эпоха в машинном обучении и как она влияет на обучение модели. Изучите оптимизацию, избегайте переобучения и с легкостью обучите Ultralytics .

Эпоха представляет собой один полный цикл прохождения всего набора обучающих данных алгоритмом машинного обучения. В ходе этого процесса модель имеет возможность обновить свои внутренние параметры на основе каждого образца в данных ровно один раз. В контексте глубокого обучения одного прохода редко бывает достаточно для того, чтобы нейронная сеть эффективно обучилась сложным паттернам . Поэтому обучение обычно включает в себя несколько эпох, что позволяет алгоритму обучения итеративно уточнять свое понимание и минимизировать ошибку между своими прогнозами и фактической истиной.

Роль эпох в оптимизации

Основная цель обучения — настроить веса модели таким образом, чтобы минимизировать определенную функцию потерь. Алгоритмы оптимизации, такие как стохастический градиентный спуск (SGD) или Adam , используют ошибку, рассчитанную во время каждого эпоха, для управления этими настройками. По мере увеличения количества эпох модель обычно переходит из состояния высокой ошибки (случайные предположения) в состояние более низкой ошибки (выученные паттерны).

Однако выбор правильного количества эпох является критически важным аспектом настройки гиперпараметров.

  • Слишком мало эпох: это может привести к недостаточной подгонке, когда модель еще не уловила основную тенденцию данных.
  • Слишком много эпох: это часто приводит к переобучению, когда модель запоминает шумы обучения, а не обобщает их для новых данных. Чтобы этого избежать, разработчики часто отслеживают производительность на валидационных данных и используют такие методы, как раннее прекращение обучения, когда обобщение перестает улучшаться.

Эпоха, пакетная обработка и итерация

Новички часто путают «эпоху» с родственными терминами. Понимание иерархии этих понятий необходимо для правильной настройки циклов обучения:

  • Эпоха: один полный проход по всему набору данных.
  • Партия: подмножество набора данных, обрабатываемое одновременно. Поскольку наборы данных часто бывают слишком большими, чтобы поместиться в GPU целиком, их делят на более мелкие группы, определяемые размером партии.
  • Итерация: однократное обновление весов модели. Если набор данных содержит 1000 изображений, а размер партии равен 100, для завершения одной эпохи потребуется 10 итераций.

Применение в реальном мире

Количество необходимых эпох значительно варьируется в зависимости от сложности задачи и объема данных.

  • Анализ медицинских изображений: в анализе медицинских изображений, например при обнаружении опухолей на МРТ-сканах, точность имеет первостепенное значение. Модели, обученные для выполнения этих задач, часто работают в течение сотен эпох. Такое обширное обучение гарантирует, что сверточная нейронная сеть (CNN) может различать тонкие аномалии, которые отличают злокачественную ткань от здоровой, что потенциально может спасти жизни.
  • Автономное вождение: для автономных транспортных средств модели обнаружения объектов должны надежно идентифицировать пешеходов, знаки и другие транспортные средства. Обучение этих надежных систем обычно включает массивные наборы данных, такие как COCO или Objects365. Несмотря на огромный размер набора данных, модели по-прежнему требуется несколько эпох для сходимости к решению, которое хорошо обобщается для различных погодных и осветительных условий.

Управление циклами обучения с помощью кода

При использовании современных фреймворков, таких как 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) усовершенствовать свои возможности по обнаружению.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас