Overfitting
Изучи причины и признаки переобучения в машинном обучении. Узнай, как предотвращать высокую дисперсию и улучшать обобщающую способность с помощью Ultralytics YOLO26.
Переобучение возникает в машинном обучении, когда модель слишком хорошо изучает обучающие данные, улавливая шум и случайные колебания вместо лежащего в их основе распределения данных. Вместо изучения общих закономерностей, применимых к новым, ранее не встречавшимся данным, переобученная модель фактически запоминает конкретные примеры из обучающего набора. Это приводит к отличным результатам на обучающих данных, но плохой способности обобщать на реальные сценарии. Переобучение часто описывают как «высокую дисперсию», то есть предсказания модели значительно меняются в зависимости от конкретного набора данных, использованного для обучения.
Почему возникает переобучение#
Основная причина переобучения — чрезмерная сложность модели относительно объёма доступных данных. Если нейронная сеть слишком велика — то есть содержит слишком много слоёв или параметров, — она легко может запомнить обучающие примеры. К другим способствующим факторам относятся:
- Недостаточный объём обучающих данных: небольшие наборы данных могут содержать ложные корреляции, которых нет в более широкой совокупности. Модели, обученные на ограниченных данных, склонны усваивать такие случайные закономерности.
- Шум в данных и выбросы: высокий уровень шума или нерепрезентативные выбросы в обучающих данных могут ввести модель в заблуждение, заставляя её подстраивать внутренние параметры под аномалии, а не под истинный сигнал.
- Слишком продолжительное обучение: обучение в течение слишком большого числа эпох позволяет модели продолжать уточнять свои веса, пока она не подстроится под шум в обучающем наборе. За этим часто следят с помощью валидационных данных.
Переобучение и недообучение#
Важно отличать переобучение от недообучения. Переобучение означает изучение чрезмерного количества деталей, включая шум, а недообучение возникает, когда модель слишком проста и не способна уловить лежащую в основе структуру данных. Недообученная модель плохо работает как на обучающих, так и на новых данных, что часто приводит к высокому смещению. Баланс между этими двумя крайностями называется компромиссом между смещением и дисперсией.
Предотвращение переобучения#
Инженеры используют несколько методов для уменьшения переобучения и повышения устойчивости модели:
- Регуляризация: такие методы, как регуляризация L1/L2 или добавление слоёв dropout, вносят штрафы или случайность в процесс обучения, не позволяя модели чрезмерно полагаться на отдельные признаки.
- Ранняя остановка: отслеживание функции потерь на валидационном наборе позволяет остановить обучение, как только результаты на ранее не встречавшихся данных перестают улучшаться, даже если точность на обучающих данных продолжает расти.
- Аугментация данных: искусственное увеличение размера и разнообразия обучающего набора с помощью аугментации данных затрудняет запоминание моделью точных изображений.
- Кросс-валидация: использование таких методов, как k-кратная кросс-валидация, гарантирует тестирование модели на разных подмножествах данных и обеспечивает более надёжную оценку её производительности.
Примеры из реального мира#
Переобучение может иметь серьёзные последствия при развёртывании ИИ в производственных средах:
- Медицинская диагностика: в сфере ИИ в здравоохранении модель, обученная выявлять рак кожи, может переобучиться на условиях освещения или отметках линейки, присутствующих на обучающих изображениях. При развёртывании в клинике с другим освещением или оборудованием модель может не распознать злокачественные образования, поскольку полагалась на нерелевантные признаки фона.
- Финансовое прогнозирование: модель для предсказания цен на акции может переобучиться на исторических рыночных трендах, вызванных конкретным неповторимым событием, например разовым экономическим кризисом. Такая модель, скорее всего, не сможет точно предсказывать будущие движения цен, поскольку запомнила прошлые аномалии вместо изучения фундаментальной динамики рынка.
Пример кода: ранняя остановка с Ultralytics YOLO26#
Используя Ultralytics Platform или локальные скрипты обучения, ты можешь предотвратить переобучение, задав значение patience для ранней остановки. Обучение прекратится, если валидационная fitness не будет улучшаться в течение заданного числа эпох.
from ultralytics import YOLO
# Load the YOLO26 model (latest generation)
model = YOLO("yolo26n.pt")
# Train with early stopping enabled (patience=50 epochs)
# If validation metrics don't improve for 50 epochs, training stops.
results = model.train(data="coco8.yaml", epochs=100, patience=50)Связанные понятия#
- Обобщение: способность модели адаптироваться к новым, ранее не встречавшимся данным и хорошо работать на них, то есть противоположность переобучению.
- Кросс-валидация: метод оценки того, насколько результаты статистического анализа будут обобщаться на независимый набор данных.
- Регуляризация: методы, используемые для уменьшения ошибок за счёт адекватной подгонки функции под заданный обучающий набор и предотвращения переобучения.









