Bayesian Optimization
Байесовская оптимизация использует результаты прошлых оценок и вероятностные модели, чтобы находить эффективные настройки для ресурсоёмких ML-нагрузок при ограниченных вычислительных ресурсах.
Байесовская оптимизация — это метод поиска высокоэффективных настроек функции, вычисление значения которой обходится дорого, с опорой на результаты предыдущих вычислений. Сначала строится вероятностная модель зависимости результатов от входных данных, а затем она используется для выбора следующего эксперимента. В машинном обучении этот метод позволяет находить эффективные конфигурации обучения при ограниченном вычислительном бюджете.
Её основы заложили метод последовательного поиска Гарольда Кушнера 1964 года и байесовская формулировка поиска экстремума Джонаса Мокусаса 1975 года. Сегодня это ключевой метод подбора гиперпараметров и автоматизированного машинного обучения.
Как работает байесовская оптимизация#
Целевая функция оценивает качество возможной конфигурации. При обучении модели оценка включает обучение с выбранными гиперпараметрами и измерение качества на валидационных данных. К настраиваемым параметрам относятся скорость обучения, размер батча и сила регуляризации.
Суррогатная модель — это вычислительно более дешёвая аппроксимация целевой функции. Часто для этой цели используют гауссовский процесс — распределение вероятностей по возможным функциям, которое предсказывает как результат, так и его неопределённость. Байесовское обновление объединяет априорные предположения с наблюдаемыми результатами оценок и формирует апостериорное распределение. Функция приобретения использует это распределение для выбора следующего кандидата; измеренный результат передаётся обратно в суррогатную модель, и процесс продолжается, пока не будет исчерпан бюджет оценок.
Это подход к оптимизации на основе машинного обучения: суррогатная модель обучается на парах «конфигурация — результат». Оценка неопределённости помогает определить, какие дополнительные измерения будут полезны.
Функции приобретения и исследование пространства параметров#
При выборе кандидатов соблюдается баланс между эксплуатацией, при которой предпочтение отдаётся настройкам с прогнозируемо хорошими результатами, и исследованием, при котором изучаются области с высокой неопределённостью. Распространённые функции приобретения по-разному выражают этот баланс:
- Ожидаемое улучшение (EI): оценивает ожидаемую величину улучшения результата кандидата относительно базового результата.
- Вероятность улучшения (PI): оценивает вероятность того, что результат превысит базовый на заданную величину.
- Верхняя доверительная граница (UCB): при максимизации объединяет прогнозируемое среднее значение с бонусом за неопределённость, отдавая дополнительное предпочтение кандидатам с высокой неопределённостью.
Вычисление этих стратегий выбора кандидатов обходится недорого по сравнению с обучением модели или проведением физического эксперимента. Оптимизация с их помощью определяет, какую следующую затратную оценку выполнить.
Применение в машинном обучении и компьютерном зрении#
Байесовская оптимизация особенно полезна, когда отдельные вычисления занимают много времени, а поиск включает ограниченное число влиятельных переменных. Среди известных областей применения — проектирование инженерных систем, эксперименты с материалами и настройка контроллеров в обучении с подкреплением.
В компьютерном зрении этот метод выбирает настройки обучения для свёрточных нейронных сетей. Джаспер Снук, Уго Ларошель и Райан П. Адамс продемонстрировали это применение в своей практической статье о байесовской оптимизации 2012 года, а также рассмотрели настройку структурированных машин опорных векторов и тематических моделей.
Ultralytics YOLO предоставляет байесовский поиск через интеграцию с Ray Tune: параметры use_ray=True и search_alg="bayesopt" включают байесовскую оптимизацию гиперпараметров обучения. Для обнаружения объектов с помощью YOLO26 поиск максимизирует метрику средней точности, используемую по умолчанию для этой задачи.
Родственные методы и Optuna#
При полном переборе оценивается заданный набор комбинаций, а при случайном поиске конфигурации выбираются независимо друг от друга. Байесовская оптимизация использует предыдущие результаты, чтобы направлять дальнейший поиск. Градиентный спуск обновляет параметры с помощью производных; байесовская оптимизация работает с затратными чёрными ящиками, используя результаты вычислений и суррогатную модель.
К алгоритмам выборки Optuna относятся байесовская оптимизация на основе гауссовских процессов, случайная выборка и оцениватель Парцена со структурой дерева (TPE). TPE моделирует распределения параметров, связанные с более хорошими и более плохими результатами, а затем отдаёт предпочтение кандидатам с большим отношением этих плотностей. Optuna — это платформа оптимизации, а выбранный алгоритм выборки определяет стратегию поиска.
Пример на Python#
Установи bayesian-optimization с помощью pip install bayesian-optimization. В примере используются целевая функция и границы из вводного примера по оптимизации пакета:
from bayes_opt import BayesianOptimization
def objective(x, y):
"""Return the objective value to maximize."""
return -(x**2) - (y - 1) ** 2 + 1
optimizer = BayesianOptimization(
f=objective,
pbounds={"x": (2, 4), "y": (-3, 3)},
random_state=1,
verbose=0,
)
optimizer.maximize(init_points=2, n_iter=15)
best = optimizer.max
print(f"Best objective: {best['target']:.4f}")В выводе указан лучший измеренный результат целевой функции после двух случайных оценок и пятнадцати оценок, выбранных с помощью функции приобретения. В заданных пределах точный максимум равен -3 при значениях x=2 и y=1.










