Learning curves на собеседовании Data Scientist

Проверь себя · 1/3разбор после ответа
Аналитик сравнивает распределения времени отклика двух серверов и замечает, что у одного эксцесс (kurtosis) значительно выше. Что это говорит о данных?

Что такое learning curve

Learning curve (кривая обучения) — это график качества модели в зависимости от размера обучающей выборки. По оси X откладывают число примеров, на которых училась модель, по оси Y — две метрики: качество на трейне и качество на валидации.

X: размер обучающей выборки (1k, 5k, 10k, ..., вся выборка).
Y: качество на трейне (train score) и на валидации (validation score).

Модель переобучают на всё бо́льших подвыборках и каждый раз замеряют обе метрики. Получается наглядная картина того, как модель учится по мере поступления данных — и, что важнее, где у неё узкое место. Именно поэтому learning curve — это в первую очередь диагностический инструмент: по форме и взаимному расположению двух кривых видно, страдает модель от недообучения (bias) или переобучения (variance), и поможет ли ей добавление данных.

Сигнатура высокого bias

Score
 ^
1.0|
   |
0.6|---train------val---  (обе низко, вышли на плато)
   |
0.0|________________ N примеров

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

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

Сигнатура высокого variance

Score
 ^
1.0|----train-----------
   |    большой разрыв
0.7|         val ↗ (растёт с ростом данных)
   |
0.0|________________ N примеров

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

Что делать: добавить данных (разрыв закрывается напрямую), усилить регуляризацию, добавить dropout, упростить модель или собрать больше признаков-сигналов. В отличие от случая с high bias, здесь новые данные — рабочий рычаг.

Решение о размере выборки

Отсюда вытекает главная практическая польза learning curve — она отвечает на дорогой вопрос «стоит ли инвестировать в разметку новых данных?».

Если валидация вышла на плато. Новые данные ничего не дадут — кривая уже не растёт. Ресурсы стоит вложить не в разметку, а в саму модель: признаки, архитектуру, качество данных.

Если валидация ещё растёт. Данные помогут — кривая не насытилась. Это прямое обоснование бюджета на сбор и разметку.

Кривая позволяет прикинуть отдачу количественно и спланировать проект:

  • Нужно поднять точность на 5 процентных пунктов.
  • Кривая показывает: прирост ~1 п.п. на каждые 10k примеров.
  • Значит нужно ~50k новых размеченных примеров → под это закладывают бюджет на разметку.

Это превращает разговор о данных из «давайте соберём побольше» в обоснованную оценку с цифрами.

Готовишься к собесу Data Scientist?
ML, Deep Learning, NLP, MLOps — вопросы с разборами в Telegram
Тренировать DS в Telegram

Validation curves

Validation curve — родственный, но другой инструмент. Здесь по оси X не размер выборки, а значение гиперпараметра (например, силы регуляризации), а по оси Y — те же train и validation score.

X: сила регуляризации.
Y: качество на трейне и на валидации.

График делится на три зоны:

  • Зона недообучения. Обе кривые низко — регуляризация слишком сильная, модель зажата и не учит закономерность.
  • Оптимум. Валидация достигает пика — здесь и берут значение гиперпараметра.
  • Зона переобучения. Трейн высокий, валидация падает — регуляризация слишком слабая, модель переобучается.

Оптимальный гиперпараметр берут вблизи пика валидации. Так learning curve отвечает на вопрос «хватает ли данных», а validation curve — «как настроить модель».

Как это спрашивают на собесе

«Модель плохо работает — как понять, это bias или variance?» Сильный ответ: построить learning curve. Обе кривые низкие и сошлись — high bias, нужна более сложная модель. Большой разрыв между трейном и валидацией — high variance, помогут данные и регуляризация.

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

«Чем learning curve отличается от validation curve?» По оси X: у learning curve — размер выборки (отвечает на вопрос о данных), у validation curve — значение гиперпараметра (отвечает на вопрос о настройке модели).

Частые ошибки

Путать learning curve и validation curve. Это разные графики: первый строится по размеру выборки, второй — по гиперпараметру. Их часто смешивают, хотя они отвечают на разные вопросы.

Предлагать «собрать больше данных» при high bias. Если обе кривые на плато, данные не помогут — модель слишком проста. Универсальный совет «нужно больше данных» здесь неверен и выдаёт непонимание диагностики.

Смотреть только на трейн-метрику. Высокое качество на трейне само по себе ничего не говорит — важен именно разрыв с валидацией. Модель может показывать 0.99 на трейне и быть бесполезной на новых данных.

Строить кривую на одной точке разбиения. Каждую точку кривой стоит усреднять по нескольким фолдам кросс-валидации, иначе она будет шумной, и разрыв train-val легко перепутать со случайной флуктуацией.

Связанные темы

FAQ

Как по learning curve отличить bias от variance?

По взаимному расположению кривых. Если обе низкие и сошлись близко — это high bias (недообучение), модель слишком проста. Если между трейном и валидацией большой разрыв, а трейн держится высоко — это high variance (переобучение). Форма кривых — самый быстрый способ поставить диагноз.

Когда добавление данных реально поможет?

Только если кривая валидации ещё растёт и не вышла на плато. Тогда новые примеры сокращают разрыв train-val и поднимают качество. Если валидация уже на плато, данные не помогут — узкое место в самой модели, а не в их количестве.

Что делать, если обе кривые низкие и на плато?

Это high bias. Данные не спасут — нужно увеличивать ёмкость модели: усложнять архитектуру, добавлять признаки, ослаблять регуляризацию. Совет «собрать больше данных» здесь не сработает, и на собесе его назовут ошибкой.

Чем validation curve отличается от learning curve?

Осью X. У learning curve по X — размер обучающей выборки, она отвечает на вопрос «хватает ли данных». У validation curve по X — значение гиперпараметра, она помогает выбрать его оптимум по пику валидации. Обе используют train/val метрики по Y, но решают разные задачи.

Это официальная информация?

Нет. Статья основана на классической диагностике ML-моделей (bias-variance, learning/validation curves). Конкретные вопросы и глубина зависят от компании и уровня позиции.


Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.