Что такое эпоха в обучении нейросетей

0
34

Что такое эпоха?

Введение в нейросети - презентация онлайн - изображение номер один
Введение в нейросети — презентация онлайн — изображение номер один

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

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

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

В протоколе Ethereum (ETH), например, эпоха — это время, необходимое для завершения 30 000 блоков на блокчейне. Продолжительность эпохи определяется темпом, с которым обрабатываются транзакции и достигаются соглашения, однако темп остается равномерным, с продолжительностью эпохи примерно в 100 часов.

Другим примером может служить система блокчейна Cardano, где эпохой называют единицу времени. Cardano (ADA) использует Ouroboros Praos, специализированный Proof-of-Stake (PoS) метод консенсуса, который разделяет блокчейн на пятидневные эпохи. Затем эпохи делятся на слоты, каждый из них состоит из 20-секундных интервалов. Каждая эпоха в настоящее время состоит из 432 000 доступных слотов (пять дней).

Часто задаваемые вопросы об эпохах в нейросетях

Вопрос: Что такое эпоха в машинном обучении?
Ответ: Эпоха — это один полный проход всего набора обучающих данных через алгоритм нейронной сети для обновления её весов.

Вопрос: Чем эпоха отличается от итерации или шага?
Ответ: Итерация (шаг) — это одно обновление весов на одном пакете данных (батче). В одной эпохе содержится множество итераций, пока не будут обработаны все данные.

Вопрос: Сколько эпох нужно для обучения нейросети?
Ответ: Количество эпох зависит от сложности задачи, размера данных и архитектуры сети. Оно подбирается экспериментально и может составлять от нескольких единиц до тысяч.

Вопрос: Что происходит с моделью в течение одной эпохи?
Ответ: За эпоху модель «видит» каждый пример из обучающей выборки, вычисляет ошибку (лосс) и корректирует свои внутренние параметры (веса), чтобы уменьшить эту ошибку.

Вопрос: Что такое переобучение и как оно связано с эпохами?
Ответ: Переобучение возникает, когда модель слишком хорошо запоминает обучающие данные, включая шум, и теряет способность к обобщению. Часто это происходит при слишком большом количестве эпох обучения.

Вопрос: Как понять, что обучение можно остановить?
Ответ: Для этого используют валидационную выборку. Обучение останавливают, когда ошибка на валидационных данных перестаёт уменьшаться или начинает расти, что сигнализирует о начале переобучения.

Вопрос: Что такое Early Stopping?
Ответ: Early Stopping (ранняя остановка) — это техника, которая автоматически прекращает обучение, когда производительность на валидационном наборе перестаёт улучшаться в течение заданного числа эпох, предотвращая переобучение.

Вопрос: Всегда ли больше эпох означает лучшее качество модели?
Ответ: Нет. После определённого момента (точки сходимости) дополнительные эпохи не улучшают, а часто ухудшают качество модели на новых данных из-за переобучения.

Вопрос: Как размер батча влияет на количество эпох?
Ответ: При меньшем размере батча (мини-батче) обновления весов происходят чаще за одну эпоху, что может ускорить сходимость, но делает процесс обучения более шумным. Количество необходимых эпох может измениться.

Вопрос: Что такое история обучения (training history) и как её анализировать?
Ответ: Это графики изменения метрик (например, точности и потерь) на обучающих и валидационных данных по эпохам. Их анализ помогает диагностировать проблемы (недообучение, переобучение) и выбрать оптимальное число эпох.

Краткий чек-лист: эпохи в обучении нейросети

  1. Эпоха — это полный цикл обучения на всём наборе данных.
  2. Количество эпох — критический гиперпараметр, который нужно настраивать.
  3. Слишком мало эпох ведёт к недообучению (модель не выучила закономерности).
  4. Слишком много эпох ведёт к переобучению (модель запомнила данные, а не обобщила).
  5. Разделите данные на обучающую, валидационную и тестовую выборки.
  6. Мониторьте не только ошибку на обучающих данных, но и на валидационных.
  7. Используйте технику Early Stopping для автоматической остановки обучения.
  8. Сохраняйте веса модели от эпохи с лучшим результатом на валидации.
  9. Анализируйте графики обучения (loss/accuracy по эпохам) для диагностики.
  10. При изменении архитектуры сети или данных заново подбирайте оптимальное число эпох.
  11. Учтите, что при использовании аугментации данных эффективное число эпох может увеличиться.
  12. Для больших данных одна эпоха может занимать много времени, планируйте эксперименты.
  13. Помните, что одна эпоха состоит из множества итераций (шагов) по батчам.