Толковый словарь по нейросетям и искусственному интеллекту
Эпоха
Категория термина
Эпоха — это один полный проход по всему обучающему датасету во время обучения модели машинного обучения или нейросети. В течение одной эпохи модель видит все примеры из тренировочного набора один раз, после чего она обновляет свои параметры (веса) на основе накопленного опыта. Как правило, обучение модели происходит не за одну эпоху, а за множество — от нескольких десятков до тысяч, в зависимости от сложности задачи, архитектуры модели и объема данных.
Процесс обучения и роль эпохи:
- Весь датасет разбивается на батчи (batches) — небольшие подмножества примеров.
- В каждом батче выполняется прямой проход (forward pass), затем обратное распространение ошибки (backpropagation).
- Когда все батчи обработаны — заканчивается одна эпоха.
- На следующей эпохе данные снова проходят через модель, и она продолжает корректировать свои веса.
Зачем нужно несколько эпох:
Одна эпоха может быть недостаточной, чтобы модель "поняла" структуру данных. Несколько эпох позволяют:
- Постепенно снижать ошибку (loss)
- Улучшать обобщающую способность модели
- Достигать более высокой точности
Но слишком большое число эпох может привести к переобучению (overfitting) — модель начнёт "зазубривать" данные, теряя способность работать на новых примерах.
Пример:
Если у вас 10 000 изображений и размер батча — 100, то в одной эпохе будет 100 итераций (steps). После 10 эпох модель обработает каждый пример 10 раз.
Применение:
- Компьютерное зрение: при обучении CNN на датасетах вроде CIFAR-10 или ImageNet.
- Обработка естественного языка: при обучении трансформеров или рекуррентных сетей.
- Обучение LoRA / DreamBooth: число эпох прямо влияет на итоговую специализацию модели.
Тонкости:
- Количество эпох — гиперпараметр, его выбирают вручную или через кросс-валидацию.
- Часто используется ранняя остановка (early stopping): если ошибка на валидационном наборе перестаёт уменьшаться, обучение прекращается досрочно.
- Для огромных датасетов может быть достаточно одной эпохи, если данные разнообразны.
Пример кода (PyTorch):
for epoch in range(num_epochs):
for inputs, labels in train_loader:
outputs = model(inputs)
loss = loss_fn(outputs, labels)
loss.backward()
optimizer.step()
optimizer.zero_grad()
Итог:
Эпоха — это основа обучения. Она позволяет модели видеть данные многократно, постепенно улучшая свою способность к распознаванию паттернов. Понимание того, как число эпох влияет на обучение, помогает избежать переобучения или недообучения и добиться лучших результатов.