Практика ML

Hyperparameter tuning

Настройка гиперпараметров

актуальноТекущий рабочий стандарт

Направления: Машинное обучение · AutoML

Поиск конфигурации модели по валидационной метрике — последний, а не первый шаг работы.

Ключевые тезисы

  • Обычно даёт единицы процентов там, где дают десятки.
  • Нужен отдельный тест: подбор по валидации к ней переобучается.
  • Фиксируйте бюджет поиска заранее.

Какую задачу решает

У современных моделей десятки , и перебирать их все бессмысленно: влияние распределено крайне неравномерно. На типичной задаче два-три параметра дают почти весь эффект, остальные двигают метрику в пределах шума между запусками.

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

Куда уходит эффект

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

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

МодельГлавные параметры
learning_rate, число деревьев, глубина / num_leaves, min_child_samples
глубина, min_samples_leaf, max_features
Линейныесила C или α
, , , расписание
На практике

Прирост от подбора обычно измеряется единицами процентов, тогда как хорошие дают десятки. Настраивайте в конце, а не в начале.

  • 20–30 запусков случайного поиска обычно дают 80% возможного прироста.
  • Дальше выгоднее переходить к байесовской оптимизации с pruning.
  • Фиксируйте бюджет заранее — иначе тюнинг растянется на недели без заметного результата.
  • Помните про под валидацию: после сотен запусков лучший результат частично случаен.

Где применяется

  • Доводка моделиПоследние проценты метрики после того, как и данные уже сделаны.
  • Перенос на новые данныеПараметры, подобранные на старом домене, редко оптимальны на новом.
  • Сравнение архитектурЧестное сравнение требует настройки каждой, а не только своей любимой.

Плюсы, минусы и альтернативы

Плюсы

  • Даёт прирост без изменения данных и кода модели.
  • Полностью автоматизируется.
  • Побочный результат — понимание чувствительности модели к параметрам.

Минусы

  • Прирост обычно скромный: единицы процентов против десятков от хороших .
  • Дорого по вычислениям.
  • Легко переобучиться под валидационную выборку.
  • Соблазн заниматься тюнингом вместо более полезной работы с данными.

Брать, если

  • и данные уже проработаны.
  • Есть вычислительный бюджет и корректная схема валидации.

Не брать, если

  • ещё не побита — проблема не в параметрах.
  • Данных мало: разница между конфигурациями утонет в шуме валидации.
  • очевидно недоработаны — там прирост на порядок больше.

Чем заменяют

Тема также относится к главам:Вычислительная инфраструктураЭксперименты

Видеолекции

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

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

Рабочий цикл ML-инженера · Подбор гиперпараметров · Перебор конфигураций

Random Search96%

Случайный поиск · Практика ML

Случайная выборка конфигураций из заданных распределений.

Bayesian Optimization96%

Байесовская оптимизация · Практика ML

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

Cross-validation96%

Кросс-валидация · Оценка моделей

Многократное разбиение выборки, дающее оценку качества вместе с её разбросом.

Grid Search80%

Поиск по сетке · Практика ML

Полный перебор всех комбинаций заданных значений гиперпараметров.

Learning Rate Scheduling80%

Расписание скорости обучения · Оптимизация обучения

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

Distributed Hyperparameter Search80%

Распределённый подбор гиперпараметров · Вычислительная инфраструктура

Десятки обучений на кластере вместо одного: пространство поиска, параллельные trials, ранняя остановка безнадёжных.

Experiment Tracking80%

Трекинг экспериментов · MLOps

Фиксация параметров, метрик, артефактов и версии кода для каждого запуска.

Problem formulation70%

Постановка задачи · Практика ML

Перевод бизнес-вопроса в ML-задачу с целевой переменной, метрикой и ограничениями.

Baselines70%

Бейзлайны · Практика ML

Простейшее решение, с которым сравнивается всё остальное: константа, правило, логистическая регрессия.

Debugging models70%

Отладка моделей · Практика ML

Систематический поиск причины, почему модель не учится или ведёт себя странно.

Overfitting70%

Переобучение · Практика ML

Модель запомнила обучающую выборку вместе с шумом: train-метрика отличная, val — плохая.

Error analysis70%

Анализ ошибок · Оценка моделей

Ручной разбор случаев, где модель ошибается: почти всегда даёт больше, чем очередной перебор гиперпараметров.

Production ML70%

ML в продакшене · Практика ML

Модель в проде — это сервис с SLA, мониторингом, версионированием и планом отката.

Кому эта тема нужна

Усиливает профиль: Data Scientist, ML Engineer.

Проверить себя

Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.

Следующий шагПроверить себя: Классический MLТема встречается в этом тесте 1 раз. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Практика ML» последний раз правилась . Нашли ошибку — напишите.