Переобучение (Overfitting)
Ошибка машинного обучения, когда модель запоминает обучающие примеры вместо закономерностей и плохо работает на новых данных.
Переобучение (overfitting) — ситуация, когда модель машинного обучения слишком хорошо подстроилась под обучающие данные: запомнила конкретные примеры вместо общих закономерностей. На знакомых данных она показывает почти идеальный результат, а на новых — заметно хуже. Похоже на студента, который выучил ответы на билеты наизусть, но не понял предмет: на экзамене с другим вопросом он беспомощен.
Пример
Модель антифрода обучили на операциях за прошлый год. Она «заметила», что мошеннические операции в данных часто проходили через несколько конкретных магазинов, и стала опираться на это, а не на поведение клиента. На обучающих данных точность отличная. Но мошенники сменили магазины — и модель перестала их замечать.
Как распознать
Данные делят на части: на обучающей модель учится, на проверочной (валидационной) настраивают параметры, а отложенная тестовая используется один раз, для честной итоговой оценки. Признак переобучения — большой разрыв: на обучающих данных ошибок почти нет, на проверочных их намного больше. Если во время обучения ошибка на обучающих данных продолжает падать, а на проверочных начинает расти, — модель начала запоминать.
Почему возникает
- Слишком сложная модель для объема данных: миллионы параметров на тысячу примеров.
- Мало данных или они не отражают реальное разнообразие.
- Шум в данных — ошибки разметки модель тоже «выучивает».
- Слишком долгое обучение.
Как бороться
- Больше разнообразных данных, в том числе искусственно расширенных: для изображений — повороты, обрезка, изменение яркости.
- Модель попроще или меньше признаков.
- Регуляризация — штраф за слишком большие веса модели; в нейронных сетях также отключение случайных нейронов при обучении (dropout).
- Ранняя остановка — прекратить обучение, когда ошибка на проверочных данных перестала падать.
- Перекрестная проверка — обучение и проверка на разных разбиениях данных, чтобы результат не зависел от удачного разбиения.
Соседние проблемы
- Недообучение — противоположная ошибка: модель слишком простая и плохо работает даже на обучающих данных.
- Утечка данных — в обучающие данные случайно попала информация, недоступная в момент реального прогноза (например, признак, который появляется уже после мошенничества). Результаты на проверке получаются нереально хорошими, а в работе модель проваливается.
- Дрейф данных — модель была хорошей, но мир изменился. Поэтому качество моделей отслеживают после внедрения и регулярно переобучают на свежих данных.
Переобучение — риск и при тонкой настройке больших моделей на небольшом наборе своих примеров.