Две базовые ошибки обучения модели: переобучение — когда модель «зазубрила» тренировочные данные, но плохо работает на новых; недообучение — когда модель не уловила закономерности вовсе.
Переобучение (overfitting) — это ситуация, при которой модель в процессе обучения слишком точно подстраивается под особенности конкретного тренировочного набора данных, включая случайный шум, вместо того чтобы уловить общую закономерность, — в результате модель показывает отличное качество на тех данных, на которых обучалась, но заметно хуже работает на новых, ранее не виденных данных.
Недообучение (underfitting) — противоположная проблема: модель оказывается слишком простой (или обучена недостаточно долго), чтобы уловить даже основные закономерности в данных, и показывает низкое качество как на тренировочных, так и на новых данных. Поиск баланса между этими двумя крайностями — модель должна быть достаточно сложной, чтобы уловить реальные закономерности, но не настолько, чтобы «запоминать» шум, — одна из фундаментальных задач при обучении любой модели машинного обучения.
Разработчики отслеживают переобучение, сравнивая качество модели на тренировочной и на отдельной валидационной выборке: если качество на тренировочных данных намного выше, чем на валидационных, — это явный признак переобучения, требующий регуляризации или увеличения объёма данных.
Главный признак — большой разрыв между качеством работы на тренировочных данных (высокое) и на новых, валидационных данных (заметно ниже).
Типичные подходы — увеличить объём и разнообразие тренировочных данных, упростить модель, применить методы регуляризации или остановить обучение раньше (early stopping).
Обе проблемы одинаково мешают получить полезную модель — просто недообучение обычно легче выявить и исправить (например, увеличив сложность модели или время обучения).