Диагностика Mock-интервью
Главная · Основы машинного обучения

Bias–variance: разложение ошибки

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

Интуиция: стрельба по мишени

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

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

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

Идеальный стрелок кучно бьёт в центр: и смещение, и разброс малы. Реальность заставляет обменивать одно на другое.

Как это работает: формула

Возьмём точку с истинным значением y = f(x) + ε, где ε — случайный шум со средним 0 и дисперсией σ². Модель ŷ мы обучаем на случайной выборке, поэтому она сама случайна. Ожидаемая квадратичная ошибка в этой точке раскладывается ровно на три части:

E[(y − ŷ)²] = (f(x) − E[ŷ])² + E[(ŷ − E[ŷ])²] + σ²
суммарная ошибка = смещение² + разброс + шум

Здесь усреднение E[·] берётся по всем возможным обучающим выборкам. Смещение² (bias²) — квадрат отклонения средней модели E[ŷ] от истины f(x). Разброс (variance) — средний квадрат отклонения отдельной модели от этой средней. Шум σ² — неустранимый предел: даже идеальная модель не победит случайность в самих данных.

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

U-образная кривая суммарной ошибки

Прогони слайдер от края до края. При степени 1 все 15 кривых сбиты в тесную пачку — разброс маленький, но они дружно проходят мимо истинной синусоиды: смещение² велико. Это недообучение (underfitting). Наращивая степень, средняя модель ложится на истину — смещение падает почти до нуля. Но кривые начинают разлетаться веером: при степени 12–14 они пляшут по всему полю, реагируя на случайный шум в каждой выборке. Это переобучение (overfitting) с огромным разбросом.

Смещение² убывает, разброс растёт — их сумма плюс неустранимый шум образует U-образную кривую суммарной ошибки. Дно этой U — оптимальная сложность модели, где две беды сбалансированы. Именно её мы ищем при подборе гиперпараметров.

⚠️ Подводный камень Шум σ² — неустранимый пол ошибки: он не зависит от модели и не убирается ни сложностью, ни данными. Если гнаться за нулевой ошибкой на обучении, модель начнёт «объяснять» именно шум — это и есть переобучение. Ошибка на новых данных не может опуститься ниже σ².

Как двигать ручки в разложении

Понимание разложения сразу подсказывает, каким приёмом лечить какую беду:

А как же огромные нейросети?

Классическая U-кривая говорит: «сильно перепараметризованная модель обязана переобучиться». Но современные глубокие сети с миллиардами параметров работают отлично. Феномен двойного спуска (double descent) описывает это: при росте сложности ошибка сначала падает, затем растёт к пику около точки интерполяции (когда параметров ровно хватает, чтобы идеально подогнать обучение), а после — снова падает. В сильно перепараметризованном режиме неявная регуляризация обучения выбирает «гладкие» решения, и разброс парадоксально снова уменьшается. Так что U-кривая — верная картина для классических моделей, но не последнее слово для очень больших.

🎤 На собеседовании
  • «Что такое bias-variance trade-off?» — ожидаемая ошибка = смещение² + разброс + шум; рост сложности снижает смещение, но раздувает разброс, оптимум — на дне U-кривой.
  • «Переобучение — это высокий bias или variance?» — высокий variance (разброс): модель идеальна на трейне, но пляшет от выборки к выборке. Высокий bias — это недообучение.
  • «Как ансамбли влияют на разложение?» — бэггинг/RF усредняют модели и снижают variance; бустинг наращивает точность и снижает bias.
  • «Можно ли убрать шум σ²?» — нет, это неустранимый предел из-за случайности в самих данных; ниже него ошибка на новых данных не опустится.