Недообучение Н

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

English Underfitting, under-learning
Синонимы недотренированность, недоучивание, underfitting, under-learning, высокое смещение (high bias)

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

С технической точки зрения недообучение соответствует высокому смещению (high bias) и низкой дисперсии (low variance). Модель делает систематически неверные предположения о структуре данных, и эти ошибки воспроизводятся независимо от того, на каком наборе данных её проверяют.

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

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

Диагностировать недообучение можно по кривым обучения: обе кривые (для обучающей и валидационной выборки) выходят на плато с высоким уровнем ошибки и не снижаются при добавлении новых данных. Это ключевой признак того, что проблема не в объёме данных, а в самой модели.

В рамках компромисса «смещение–дисперсия» недообучение находится на одном конце спектра: увеличение сложности модели снижает смещение, но повышает дисперсию. Задача — найти точку баланса, где обе ошибки минимальны.

Зачем это нужно

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

Этот термин критически важен для специалистов по данным, ML-инженеров и аналитиков, которые оценивают качество моделей. В контексте нейросетей недообучение особенно опасно, потому что современные архитектуры легко масштабируются, и соблазн «добавить слоёв» без анализа природы ошибки может привести к переобучению вместо решения проблемы.

Примеры

  • Линейная регрессия на нелинейных данных. Компания пытается предсказать спрос на товар по цене, используя линейную модель. Но спрос зависит от цены нелинейно: при снижении цены спрос сначала растёт медленно, потом резко, потом снова замедляется. Прямая линия не может описать этот паттерн — модель недообучена.
  • Мелкая нейросеть для распознавания изображений. Свёрточная сеть с одним свёрточным слоем пытается классифицировать фотографии пород собак. Из-за недостаточной глубины она не может выделить сложные иерархические признаки (ушки, морда, шерсть). Точность остаётся на уровне случайного угадывания.
  • Избыточная регуляризация. Разработчик добавил L2-регуляризацию с слишком большим коэффициентом, чтобы бороться с переобучением. В результате веса модели стали почти нулевыми, и она потеряла способность улавливать даже простые зависимости.
  • Слишком короткое обучение. Нейросеть обучали всего 2 эпохи при низком learning rate. Оптимизатор не успел сдвинуть веса из начального состояния, и модель осталась практически «пустой».

Формула или метрика

Общая ошибка модели раскладывается на три компонента:

Error = Bias² + Variance + Irreducible Error

При недообучении доминирует компонент Bias² (смещение), а Variance (дисперсия) мала. Irreducible Error — это шум в данных, который нельзя устранить никакой моделью.

Практический признак: если ошибка на обучающей выборке высока (например, MSE > 0.2 для нормализованных данных) и ошибка на валидации примерно такая же, модель недообучена.

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

  • Добавлять данные вместо усложнения модели. Если модель недообучена, новые данные не помогут — ошибка останется на том же уровне. Сначала нужно увеличить сложность модели или добавить признаки.
  • Путать недообучение с переобучением. Высокая ошибка на тесте может указывать на обе проблемы. Различить их помогает сравнение ошибок на обучении и валидации: при недообучении они обе высоки и близки друг к другу.
  • Бороться с недообучением регуляризацией. Регуляризация снижает сложность модели, что при недообучении только ухудшит ситуацию. Её применяют против переобучения, а не наоборот.
  • Игнорировать feature engineering. Иногда проблема не в модели, а в признаках. Если входные данные не содержат сигнала, никакая архитектура не поможет. Добавление релевантных признаков или их преобразование может решить проблему быстрее, чем смена модели.

Как улучшить

  • Увеличить сложность модели. Для нейросетей — добавить слои или нейроны в скрытых слоях. Для линейных моделей — перейти к полиномиальной регрессии или добавить взаимодействия признаков.
  • Добавить релевантные признаки. Feature engineering часто даёт больший прирост, чем смена архитектуры. Проверьте, все ли важные переменные включены в модель.
  • Уменьшить регуляризацию. Снизьте коэффициент L1/L2 или уберите dropout, если он применялся агрессивно.
  • Увеличить время обучения. Попробуйте больше эпох или более высокий learning rate. Убедитесь, что оптимизатор действительно сходится.
  • Использовать кросс-валидацию. Она помогает отличить недообучение от переобучения и подобрать оптимальную сложность модели.