Модуль I·Статья III·~3 мин чтения

Автоматический поиск архитектур и AutoML

Современные методы машинного обучения

Превратить статью в подкаст

Выберите голоса, формат и длину — AI запишет аудио

AutoML и Neural Architecture Search

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

Проблема оптимизации гиперпараметров

Гиперпараметры (learning rate, глубина дерева, размер скрытого слоя) не обучаются через backprop — их нужно искать внешним методом. Задача: найти конфигурацию λ ∈ Λ, минимизирующую ошибку на валидации: λ* = argmin_{λ∈Λ} L_val(f_{λ}(D_train)).

Проблема: вычисление L_val(f_λ) = «запустить полное обучение» — дорого! Пространство Λ может быть комбинаторно большим (условное — если kernel='rbf', появляются параметры ядра).

Случайный поиск (Bergstra & Bengio, 2012): лучше сетки при высокоразмерных пространствах: если только 2 из 10 гиперпараметров важны, сетка 10^10 конфигураций тратит ресурсы на незначимые оси. Случайный поиск исследует все оси равномерно.

Байесовская оптимизация: строим суррогатную модель p(L|λ) (часто Гауссовский процесс), которая аппроксимирует функцию L(λ) по уже оцененным конфигурациям. Acquisition function (EI — Expected Improvement): EI(λ) = E[max(0, L_best − L(λ))]. Выбираем λ с максимальным EI — баланс исследования (exploration) и использования (exploitation).

Hyperopt / SMAC: Hyperopt использует TPE (Tree Parzen Estimator) — аппроксимирует p(λ|L<threshold) и p(λ|L≥threshold) отдельно, находит λ с наилучшим отношением. SMAC использует Random Forest как суррогат (удобен для условных пространств).

Auto-Sklearn (Feurer et al., 2015): комбинирует meta-learning (выбор стартовой точки по похожим датасетам), Байесовскую оптимизацию (поиск конфигурации) и ансамблирование финальных конфигураций. Достигает уровня эксперта на многих benchmark-задачах.

Neural Architecture Search (NAS)

NAS — поиск оптимальной архитектуры нейронной сети. Пространство поиска: выбор операций в каждой ячейке (свёртка 3×3, 5×5, max-pool, skip connection и др.), количество слоёв, ширина.

Ранний NAS (Zoph & Le, 2017): контроллер LSTM генерирует описание архитектуры, обучает её на CIFAR, получает signal (accuracy) как награду — REINFORCE. Дорого: 800 GPU × 28 дней.

DARTS (Liu et al., 2019, Differentiable Architecture Search): Непрерывная релаксация дискретного выбора. Каждое ребро ячейки = взвешенная сумма всех операций: ō(x) = Σ_op exp(α_op)/Σ exp(α) · op(x). Параметры архитектуры α обучаются одновременно с весами w через bi-level оптимизацию:

min_α L_val(w*(α), α), где w*(α) = argmin_w L_train(w, α)

Внешний цикл обновляет α по валидационным данным, внутренний — w по тренировочным. После поиска дискретизируем: в каждом ребре оставляем операцию с max α. Время: 1 GPU × 4 дня.

EfficientNet (Tan & Le, 2019): Найдена базовая архитектура через NAS, затем масштабирована по трём измерениям: глубина d, ширина w, разрешение r с compound coefficient φ: d = α^φ, w = β^φ, r = γ^φ. Наилучший tradeoff точность/параметры среди моделей своего времени.

Автоматизация feature engineering

Deep Feature Synthesis (DFS, Kanter & Veeramachaneni, 2015): автоматически генерирует признаки из реляционных данных. Агрегации (среднее, максимум, сумма количество транзакций клиента за месяц), трансформации (log, sqrt, разности дат).

Categorical embeddings: вместо one-hot кодирования (размерность = число категорий) обучаем плотный embedding вектор размерности d. Пример: город → вектор (широта, долгота, экономический класс) через обучение. Работает лучше one-hot для категорий с тысячами значений.

TabNet (Arik & Pfenning, 2021): attention-based архитектура для табличных данных. На каждом шаге выбирает подмножество признаков через self-attention, интерпретируемость — можно увидеть, какие признаки использовались.

MLOps: ML в производстве

Проблема: модель, хорошая на исторических данных, деградирует в production из-за изменения распределения данных (data drift) или концепта (concept drift). Feature store (Feast, Hopsworks): централизованное хранение признаков для обучения и инференса — устраняет training-serving skew. Model registry (MLflow): версионирование экспериментов, моделей, метрик. Мониторинг: Evidently AI детектирует дрейф через KL-дивергенцию, тесты Колмогорова-Смирнова.

Численный пример

Hyperopt на LightGBM: пространство поиска — n_estimators ∈ [100,1000], learning_rate ∈ [0.01,0.3], max_depth ∈ [3,8]. После 50 итераций Байесовской оптимизации нашли: n_estimators=300, lr=0.05, max_depth=5, CV RMSE = 4.2 (против 5.1 при дефолтных параметрах). Сетка 10×10×6 потребовала бы 600 итераций.

Задание: Примените Auto-Sklearn к датасету House Prices (Kaggle). Ограничение: 30 минут времени. Сравните с «ручной» настройкой (XGBoost + ваш Hyperopt). Визуализируйте, какие конфигурации были выбраны. Применить SHAP для интерпретации лучшей модели.

§ Акт · что дальше