Выпуклая оптимизация
Байесовская оптимизация: умный поиск гиперпараметров
Обучение GPT-4 заняло тысячи GPU-часов. Подбор гиперпараметров случайным поиском - расточительство. Байесовская оптимизация позволяет найти оптимальные гиперпараметры за 10-20 попыток, где случайный поиск потребует 100+. AutoML системы Google, Facebook используют BayesOpt повсеместно.
- Optuna, BoTorch: настройка гиперпараметров ML-моделей
- AlphaFold 2: BayesOpt для подбора параметров обучения
- Drug discovery: Stokes et al. (2020) нашли новый антибиотик через BayesOpt
- Materials science: поиск новых сплавов с заданными свойствами
Гауссовский процесс: априорное распределение над функциями
Google Vizier (2017) решает задачи оптимизации с 10+ гиперпараметрами: гауссовский процесс строит суррогатную модель. **Гауссовский процесс (GP)** - распределение над функциями: любой конечный набор точек имеет совместное гауссовское распределение. GP задаётся средней функцией m(x) и ковариационной (ядерной) функцией k(x,x'). После наблюдений D = {(xᵢ, yᵢ)} апостериорный GP - аналитически вычислимый и является суррогатной моделью для дорогостоящей функции f.
**GP гиперпараметры:** Длина корреляции l и амплитуда σ подбираются максимизацией маргинального правдоподобия (marginal likelihood): log p(y|X,θ) = −½yᵀ(K+σₙ²I)⁻¹y − ½log|K+σₙ²I| − n/2 log(2π). Это выпуклая задача по θ! Библиотека GPy (Python) делает это автоматически.
Что даёт апостериорный GP помимо предсказания μ*(x*)?
Функции приобретения: EI, UCB, PI
**Функция приобретения (acquisition function)** α(x) указывает, где вычислить f следующим образом. Она балансирует **эксплуатацию** (высокое μ*(x)) и **исследование** (высокая σ*(x)). Три классических варианта: Expected Improvement (EI), Upper Confidence Bound (UCB), Probability of Improvement (PI).
**EI на практике:** EI является де-факто стандартом в библиотеках байесовской оптимизации (Optuna, scikit-optimize, BoTorch). Однако для нескольких целевых функций (multi-objective) или батчей запросов (parallel BO) используют qEI (quasi-Monte Carlo EI) или EHVI (Expected Hypervolume Improvement).
Почему функция приобретения UCB = μ*(x) + β·σ*(x) балансирует исследование и эксплуатацию?
Алгоритм байесовской оптимизации и применения
**Алгоритм байесовской оптимизации (BayesOpt)** итеративно обновляет суррогатную модель (GP) и максимизирует функцию приобретения для выбора следующей точки. Эффективен при малом числе запросов (10 - 100) к дорогостоящим функциям. Применения: настройка гиперпараметров, поиск лекарств, проектирование материалов.
**BayesOpt в реальных задачах:** Optuna (автоматический выбор: CMA-ES или TPE), BoTorch (Facebook, GPU-ускорение), scikit-optimize - три главные библиотеки. AutoML системы (Auto-sklearn, NAS в Google Brain) используют BayesOpt для поиска архитектур. Применение в фармацевтике: BayesOpt нашёл новые антибиотики (Stokes et al., 2020).
В каком режиме байесовская оптимизация особенно выгодна по сравнению со случайным поиском или сеткой?
Ключевые идеи
- GP: распределение над функциями; апостериорный GP даёт μ*(x) и σ*(x) - предсказание и неопределённость
- EI = E[max(f(x)−f*, 0)]: самая популярная acquisition function, аналитически вычислима
- UCB = μ*(x) + βσ*(x): прост, с теоретическими гарантиями regret O(√T log T)
- BayesOpt: GP + acquisition → итеративный умный поиск за O(10-100) запросов
- Применения: гиперпараметры ML, поиск лекарств, материалы, A/B тестирование
Связанные темы
Байесовская оптимизация связывает статистику, выпуклую оптимизацию и ML.
- Стохастическая оптимизация — Оба решают задачи с шумом; BayesOpt - для дорогих функций, SGD - для дешёвых
- Онлайн-обучение — BayesOpt с GP-UCB имеет regret-гарантии, аналогичные онлайн-обучению
- Крупномасштабная оптимизация — BayesOpt выбирает гиперпараметры для алгоритмов крупномасштабной оптимизации
Вопросы для размышления
- Как выбрать ядро GP для байесовской оптимизации гиперпараметров нейросети? Что такое ARD (Automatic Relevance Determination) и зачем оно нужно?
- Почему байесовская оптимизация плохо масштабируется на высокие размерности (d > 20)? Какие расширения существуют (REMBO, MACE)?
- Как реализовать параллельную байесовскую оптимизацию (batch BO)? Что такое qEI и почему простое многократное применение EI неверно?