Эпоха обучения Э

Один полный проход всего набора обучающих данных через нейросеть, после которого происходит обновление весов модели.

English Epoch, training epoch
Синонимы эпоха, цикл обучения, training epoch, цикл предъявления
Категории Нейросети

Эпоха обучения (epoch) — это один полный проход всего тренировочного датасета через нейросеть, при котором каждый пример обрабатывается ровно один раз. После завершения эпохи модель корректирует свои веса на основе накопленной ошибки. Если датасет содержит 50 000 изображений, одна эпоха означает, что все 50 000 изображений были поданы на вход сети.

Эпоха — не синоним итерации. Одна эпоха может включать десятки, сотни или тысячи итераций в зависимости от размера пакета (batch size).

Как это работает

Обучение нейросети — итеративный процесс. Данные разбиваются на пакеты (мини-батчи). Каждый пакет проходит прямой проход (вычисление предсказания), функцию потерь, обратный проход (вычисление градиентов) и обновление весов. Один такой цикл называется итерацией.

Когда все пакеты, на которые разбит датасет, были обработаны хотя бы по одному разу, эпоха считается завершённой. Число итераций в одной эпохе рассчитывается по формуле: 1 эпоха = N / batch size, где N — общее количество примеров в датасете[reference:0]. Например, при N = 1000 и batch size = 50 одна эпоха потребует 20 итераций[reference:1].

Количество эпох — это гиперпараметр, который задаётся до начала обучения. В отличие от весов, он не обновляется в процессе. Оптимальное число эпох зависит от архитектуры модели, объёма данных, скорости обучения и задачи.

Зачем это нужно

Эпоха — единица измерения «длительности» обучения. Без понимания этого параметра невозможно ни воспроизвести эксперимент, ни сравнить две модели, ни диагностировать проблемы обучения.

Слишком малое число эпох приводит к недообучению (underfitting): модель не успевает уловить закономерности в данных. Слишком большое — к переобучению (overfitting): модель запоминает тренировочные примеры, теряя способность обобщать[reference:2]. Контроль числа эпох — один из первых рычагов, который крутит инженер при отладке модели.

Примеры

  • Классификация изображений: датасет CIFAR-10 содержит 50 000 тренировочных изображений. При batch size = 128 одна эпоха включает 391 итерацию. Типичный эксперимент обучают 50–200 эпох.
  • Дообучение языковой модели: при fine-tuning BERT на задаче классификации текстов часто достаточно 2–4 эпох, так как модель уже обладает общими языковыми знаниями[reference:3].
  • GPT-подобные модели: по данным открытых отчётов, крупные языковые модели обучаются на 2–4 эпохах по текстовому корпусу, поскольку повторный проход по тем же данным даёт убывающую отдачу[reference:4].
  • Обучение с нуля на малом датасете: если у вас 5 000 примеров и batch size = 32, одна эпоха — 157 итераций. При 100 эпохах модель увидит каждый пример 100 раз, что резко повышает риск переобучения без регуляризации.

Формула или метрика

Число итераций в одной эпохе:

Iterations per epoch = N / batch_size

где N — общее число тренировочных примеров, batch_size — размер мини-пакета. Если N не делится на batch_size нацело, последний пакет может быть меньшего размера, и число итераций округляется вверх.

Общее число обновлений весов за всё обучение:

Total updates = epochs × (N / batch_size)

Типичные ошибки

  • Путать эпоху с итерацией. Фраза «модель обучалась 1000 итераций» не говорит ничего о том, сколько раз модель видела весь датасет. При batch size = 1 итерация равна эпохе, при batch size = N — эпоха содержит одну итерацию.
  • Фиксировать число эпох без валидации. Обучение ровно 100 эпох «потому что так в туториале» — прямой путь либо к недообучению, либо к переобучению. Число эпох нужно подбирать по кривой валидационной ошибки.
  • Игнорировать раннюю остановку. Без early stopping модель продолжает обучаться после точки, когда валидационная ошибка начала расти. Это увеличивает время обучения и ухудшает обобщение[reference:5].
  • Сравнивать модели по числу эпох, а не по эпохам эквивалентного объёма данных. Если один эксперимент использует batch size = 32, а другой — 256, одинаковое число эпох означает разное число обновлений весов. Сравнение некорректно.

Как улучшить

  • Используйте early stopping с patience. Остановите обучение, если валидационная потеря не улучшается в течение заданного числа эпох (например, 5–10). Это автоматически подбирает оптимальную длительность обучения[reference:6].
  • Мониторьте кривые обучения. Стройте графики training loss и validation loss по эпохам. Расхождение кривых — первый признак переобучения. Плато на обеих кривых — признак сходимости.
  • Подбирайте число эпох вместе с learning rate. При высокой скорости обучения модель может сходиться за меньшее число эпох, но нестабильно. При низкой — требуется больше эпох, но обучение стабильнее. Эти два гиперпараметра настраиваются совместно.
  • Для fine-tuning предобученных моделей начинайте с 2–5 эпох. Предобученная модель уже содержит полезные представления. Большое число эпох на малом датасете быстро приводит к катастрофическому забыванию.
  • Логируйте номер эпохи с лучшей валидационной метрикой. Сохраняйте чекпоинт модели не после последней эпохи, а после той, где валидационная метрика была максимальной. Это даёт лучший результат при том же бюджете обучения.

Источники

Google Machine Learning Glossary — определение эпохи и формула расчёта итераций (https://developers.google.com/machine-learning/glossary/fundamentals)

ISO/IEC 2382-34:1999 — стандартизированное определение термина "epoch" в нейронных сетях (TERMIUM Plus, запись 1)

Baeldung — Epoch in Neural Networks: разбор механики и отличий от итерации (https://www.baeldung.com/cs/epoch-neural-networks)

Office québécois de la langue française — cycle d'apprentissage: официальное определение с указанием гиперпараметрической роли эпохи