Открыть сервис

Байесовская оптимизация

Байесовская оптимизация — это стратегия глобальной оптимизации «чёрных ящиков» (функций, аналитическое выражение которых неизвестно или слишком сложно для вычисления), основанная на методах байесовского вывода. Она предназначена для нахождения экстремума (минимума или максимума) целевой функции в ситуациях, когда её вычисление требует значительных ресурсов (времени, денег, вычислительной мощности) и число доступных вызовов функции строго ограничено. В отличие от методов, основанных на градиенте или переборе, байесовская оптимизация строит вероятностную модель (суррогатную модель) целевой функции и использует её для принятия решений о том, где провести следующее вычисление, балансируя между исследованием (exploration) неизученных областей и эксплуатацией (exploitation) уже известных перспективных зон.

Основные принципы

Байесовская оптимизация опирается на два ключевых компонента: вероятностную модель целевой функции и функцию полезности (acquisition function), которая определяет, в какой точке пространства параметров следует провести следующее вычисление.

Суррогатная модель

В качестве суррогатной модели чаще всего используется гауссовский процесс (ГП). Гауссовский процесс задаёт априорное распределение по возможным функциям. После наблюдения нескольких точек (вычислений целевой функции) он обновляется, давая апостериорное распределение, которое в каждой точке пространства предоставляет предсказанное среднее значение (ожидаемое значение функции) и дисперсию (меру неопределённости). В областях, где точек наблюдений мало, дисперсия высока (высокая неопределённость), а вблизи известных точек — низка.

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

Функция полезности (Acquisition Function)

Функция полезности использует предсказания суррогатной модели (среднее и дисперсию) для вычисления «полезности» вычисления целевой функции в каждой точке. Максимум этой функции указывает, где провести следующее вычисление. Основные типы функций полезности:

  • Probability of Improvement (PI) — вероятность того, что значение функции в точке будет лучше текущего наилучшего наблюдаемого значения. Проста, но склонна к чрезмерной эксплуатации.
  • Expected Improvement (EI)математическое ожидание улучшения относительно текущего наилучшего значения. Учитывает не только вероятность улучшения, но и его величину. Наиболее популярная функция.
  • Upper Confidence Bound (UCB) — для задач минимизации: \( \mu(x) - \kappa \sigma(x) \), где \( \mu \) — среднее, \( \sigma \) — стандартное отклонение, \( \kappa \) — параметр, управляющий балансом исследования/эксплуатации. Чем выше \( \kappa \), тем больше алгоритм исследует.
  • Thompson Sampling (TS) — выбор точки путём случайной выборки функции из апостериорного распределения суррогатной модели и нахождения её минимума. Прост в реализации и эффективен.

Алгоритм работы

Процесс байесовской оптимизации итеративен:

  1. Инициализация: Выбирается начальное множество точек (обычно 5–20, с помощью латинского гиперкуба или случайно) и вычисляется целевая функция в них.
  2. Построение модели: На основе полученных данных строится (или обновляется) суррогатная модель (например, гауссовский процесс).
  3. Выбор следующей точки: Функция полезности оптимизируется на всём пространстве параметров (часто с помощью вспомогательного метода, например, L-BFGS-B или DIRECT). Точка, где функция полезности максимальна, выбирается для следующего вычисления.
  4. Вычисление: В выбранной точке вычисляется значение целевой функции (дорогостоящий шаг).
  5. Обновление: Новое наблюдение добавляется к набору данных. Процесс повторяется с шага 2 до исчерпания бюджета вычислений (лимита по времени или количеству итераций).

Применение

Байесовская оптимизация наиболее эффективна в задачах, где:

  • Целевая функция не имеет известной аналитической формы (чёрный ящик).
  • Вычисление функции дорого (часы или дни суперкомпьютерного времени, дорогостоящий эксперимент).
  • Пространство параметров непрерывное или смешанное, размерность не слишком велика (обычно до 20–30 параметров, хотя существуют методы для более высоких размерностей).

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

Это наиболее распространённая область применения. Вместо полного перебора (grid search) или случайного поиска (random search) байесовская оптимизация позволяет найти оптимальные гиперпараметры (например, скорость обучения, количество слоёв, коэффициент регуляризации) для нейронных сетей, градиентного бустинга или SVM за значительно меньшее число итераций. Библиотеки, реализующие этот подход: Hyperopt, Optuna, Scikit-Optimize, SMAC3.

Настройка параметров в промышленности и инженерии

  • Химия и материаловедение: Оптимизация рецептур сплавов, катализаторов, условий синтеза (температура, давление, время реакции). Каждый эксперимент может стоить тысячи долларов.
  • Робототехника: Настройка параметров контроллеров движения, PID-регуляторов. Каждый запуск на реальном роботе требует времени и может привести к износу.
  • Аэрокосмическая инженерия: Оптимизация формы крыла, профиля лопатки турбины с помощью вычислительной гидродинамики (CFD). Один расчёт может занимать несколько дней на суперкомпьютере.
  • Фармацевтика: Оптимизация дозировок, комбинаций лекарств, условий кристаллизации.

A/B-тестирование и онлайн-оптимизация

Байесовская оптимизация используется для динамического распределения трафика между вариантами (например, дизайн веб-страницы, алгоритм рекомендаций) с целью максимизации метрики (конверсия, доход). В отличие от классического A/B-тестирования, она быстрее отказывается от заведомо плохих вариантов и концентрируется на перспективных, минимизируя потери (regret) в процессе тестирования.

Оптимизация параметров симуляций

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

Преимущества и ограничения

Преимущества

  • Эффективность по числу вычислений: Требует на порядок меньше вызовов целевой функции по сравнению с grid search или генетическими алгоритмами.
  • Устойчивость к шуму: Гауссовские процессы могут моделировать шум в наблюдениях, что делает метод применимым к реальным экспериментам с измерительными ошибками.
  • Глобальная оптимизация: В отличие от градиентных методов, не застревает в локальных минимумах (хотя гарантий глобальной оптимальности нет).
  • Гибкость: Может работать с любыми типами параметров (непрерывные, целочисленные, категориальные).

Ограничения

  • Вычислительная сложность: Обучение гауссовского процесса требует \( O(n^3) \) операций, где \( n \) — число наблюдений. При тысячах итераций это становится узким местом. Используют аппроксимации (например, разреженные ГП).
  • Плохая масштабируемость по размерности: С ростом числа параметров (более 20–30) эффективность резко падает. Пространство становится слишком разреженным, и суррогатная модель не может дать надёжных оценок неопределённости.
  • Чувствительность к гиперпараметрам суррогатной модели: Выбор ядра гауссовского процесса и его параметров (например, длины масштаба) влияет на качество оптимизации. Их часто настраивают путём максимизации правдоподобия, что добавляет вычислительную нагрузку.
  • Не подходит для задач с дешёвыми вычислениями: Если целевую функцию можно вычислить за миллисекунды, проще и быстрее использовать градиентные методы или эвристики.

Варианты и расширения

  • Многоцелевая байесовская оптимизация: Для задач с несколькими конфликтующими целями (например, максимизировать прочность и минимизировать вес). Используются функции полезности, основанные на гиперобъёме (Expected Hypervolume Improvement).
  • Байесовская оптимизация с учётом ограничений: Когда область допустимых значений задана не только явными границами, но и неявными функциями-ограничениями (например, «давление не должно превышать 100 атм»). Моделируются как целевая функция, так и ограничения.
  • Параллельная байесовская оптимизация: Позволяет проводить несколько вычислений целевой функции одновременно (например, на кластере). Функция полезности модифицируется, чтобы не рекомендовать точки, слишком близкие к уже запланированным.
  • Байесовская оптимизация с градиентами: Если доступны градиенты целевой функции (например, от нейросети), их можно использовать для улучшения суррогатной модели, что особенно полезно в задачах с высокой размерностью.

Интересные факты

  • Термин «байесовская оптимизация» был популяризирован в 1970-х годах, в первую очередь в работах Х. Дж. Кушнера (H. J. Kushner) и Й. Моккуса (J. Mockus). Однако основы были заложены ещё в 1950-х годах в контексте теории статистических решений.
  • В 2012 году группа исследователей из Google (включая Джаспера Сноука) использовала байесовскую оптимизацию для подбора гиперпараметров нейронных сетей, что значительно ускорило развитие глубокого обучения.
  • Метод активно применяется в проектах с открытым исходным кодом, таких как библиотека Optuna (разработана в Preferred Networks, Япония), которая используется для автоматизации машинного обучения.

Источники

  • Mockus, J. (1975). On Bayesian methods for seeking the extremum. Optimization Techniques IFIP Technical Conference.
  • Jones, D. R., Schonlau, M., & Welch, W. J. (1998). Efficient global optimization of expensive black-box functions. Journal of Global Optimization.
  • Snoek, J., Larochelle, H., & Adams, R. P. (2012). Practical Bayesian optimization of machine learning algorithms. Advances in Neural Information Processing Systems.
  • Shahriari, B., Swersky, K., Wang, Z., Adams, R. P., & de Freitas, N. (2016). Taking the human out of the loop: A review of Bayesian optimization. Proceedings of the IEEE.
  • Frazier, P. I. (2018). A tutorial on Bayesian optimization. arXiv preprint arXiv:1807.02811.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →