Переобучение & Подобучение

Тема дорожной карты · Глубокое обучение

Переобучение (overfitting) и подобучение (underfitting) — ключевые проблемы, с которыми сталкиваются специалисты по глубокому обучению. Эти явления могут значительно снизить качество модели и её способность к обобщению. Важно понимать, как эти проблемы возникают и как с ними бороться, чтобы обеспечить эффективное обучение и высокую производительность модели.

Underfitting означает, что модель слишком проста или недообучена, чтобы захватить сигнал — как training, так и validation loss остаются высокими. Overfitting означает, что модель запомнила тренировочную выборку вместе с её шумом, поэтому training loss продолжает падать, а validation loss растёт. Разрыв между training и validation кривыми — главный диагностический инструмент. Стандартные средства — больше данных и аугментация, регуляризация (dropout, weight decay, label smoothing), early stopping, модели поменьше и cross-validation; цель — точка баланса с низким bias и низкой variance.

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

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

Обучение — это процесс минимизации loss-функции по весам модели через gradient descent. Mini-batch SGD (sample батча, loss, backprop, шаг) — рабочая лошадка. Оптимизаторы (Adam, AdamW, SGD+momentum) меняют как делается шаг. Learning rate — самый тюнимый гиперпараметр: слишком высокий — расходится, слишком низкий — не сойдётся. Следует внимательно следить за тренировочными и валидационными loss-кривыми: расходящийся зазор между ними указывает на переобучение, а если оба значения застряли на высоком уровне, это может указывать на подобучение или наличие багов в коде.

Когда применять

Начните с AdamW (lr=1e-3 или 3e-4) — это оптимизатор, который работает почти везде. Для задач компьютерного зрения (CV) рекомендуется использовать SGD+momentum, если есть время для настройки гиперпараметров. Использование learning rate finder (fast.ai lr_find) может помочь найти разумную стартовую точку для обучения. Строить loss-кривые следует религиозно — они показывают всё (divergence, плато, overfitting). Early stopping — это важный метод предотвращения переобучения, позволяющий избежать избыточного использования вычислительных ресурсов.

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

Типичные ловушки при работе с переобучением и подобучением включают в себя слишком высокий learning rate (NaN losses, взрывающиеся веса), неправильное перемешивание валидационного набора данных (shuffle valid-сета протекает в train), использование точности на несбалансированных данных (модель предсказывает majority class, "98% accurate"), а также отсутствие фиксации seed RNG (нерепродуцируемые run, регрессию не отладить).

Связанные понятия

Полезные ресурсы