Обсуждение участника:Imil Baltaniazov
Материал из MachineLearning.
м (Adding welcome message to new user's talk page) |
(→Байесовская оптимизация: Новая тема) |
||
| Строка 1: | Строка 1: | ||
{{MediaWiki:NewUserMessage|Imil Baltaniazov}} | {{MediaWiki:NewUserMessage|Imil Baltaniazov}} | ||
| + | |||
| + | == Байесовская оптимизация == | ||
| + | |||
| + | {{well|Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Imil Baltaniazov 15:00, 10 июля 2026 (MSD)}} | ||
| + | |||
| + | '''''Байесовская оптимизация''''' ({{lang-en|Bayesian optimization}}) — метод глобальной оптимизации чёрных ящиков, основанный на построении вероятностной [[суррогатная модель|суррогатной модели]] целевой функции и последовательном выборе точек для оценки на основе так называемой [[функция приобретения|функции приобретения]]. Метод предназначен для задач, в которых целевая функция дорого стоит вычислительно или ресурсно, не имеет аналитического выражения и недоступна для дифференцирования. | ||
| + | |||
| + | == Введение == | ||
| + | |||
| + | Многие задачи в науке об анализе данных и инженерии сводятся к оптимизации функции, вычисление значения которой сопряжено с высокими затратами: запуск дорогостоящего эксперимента, длительное обучение [[нейронная сеть|нейронной сети]], симуляция физического процесса. В таких условиях классические методы оптимизации, требующие большого числа обращений к функции или знания её градиента, оказываются малопригодны. Байесовская оптимизация предлагает альтернативный подход: вместо того чтобы исследовать пространство параметров вслепую или по фиксированной сетке, метод на каждом шаге использует всю накопленную информацию о поведении функции, чтобы принять обоснованное решение о том, где провести следующее, потенциально самое информативное измерение. | ||
| + | |||
| + | Наибольшую известность байесовская оптимизация получила как инструмент настройки [[гиперпараметр|гиперпараметров]] моделей машинного обучения, однако область её применения существенно шире: автоматизированное проектирование экспериментов, робототехника, разработка лекарственных препаратов, оптимизация промышленных процессов и архитектур нейронных сетей. Общей чертой всех этих задач является то, что каждое обращение к целевой функции — это дорогостоящее действие, число которых должно быть минимизировано. | ||
| + | |||
| + | В основе метода лежит идея, восходящая к работам Й. Мокуса (J. Mockus) конца 1970-х годов и получившая широкое развитие с появлением алгоритма Efficient Global Optimization (EGO) в конце 1990-х. В последнее десятилетие байесовская оптимизация стала стандартным инструментом автоматического машинного обучения ([[AutoML]]) и лежит в основе многих популярных библиотек подбора гиперпараметров. | ||
| + | |||
| + | == Постановка задачи == | ||
| + | |||
| + | Рассматривается задача поиска глобального максимума функции <tex>f</tex>, заданной на компактном множестве <tex>\mathcal{X} \subseteq \mathbb{R}^d</tex>: | ||
| + | |||
| + | :: <tex>x^{*} = \arg\max_{x \in \mathcal{X}} f(x)</tex> | ||
| + | |||
| + | Без ограничения общности рассматривается задача максимизации; задача минимизации сводится к ней заменой <tex>f</tex> на <tex>-f</tex>. Функция <tex>f</tex> называется '''чёрным ящиком''' ({{lang-en|black box}}), если выполнены следующие условия: | ||
| + | |||
| + | * аналитическое выражение функции неизвестно, доступны только её значения в запрашиваемых точках («оракульный» доступ); | ||
| + | * градиент <tex>\nabla f</tex> недоступен и не может быть эффективно вычислен; | ||
| + | * каждое обращение к функции требует значительных затрат времени, вычислительных ресурсов или денег; | ||
| + | * наблюдения могут быть зашумлены: <tex>y_i = f(x_i) + \varepsilon_i</tex>, где <tex>\varepsilon_i \sim \mathcal{N}(0,\sigma_n^2)</tex>. | ||
| + | |||
| + | Задача состоит в том, чтобы найти точку, максимально близкую к <tex>x^*</tex>, использовав как можно меньше обращений к <tex>f</tex>. Именно ограниченность бюджета оценок отличает постановку задачи байесовской оптимизации от классических задач непрерывной оптимизации, где число вычислений функции и градиента практически не ограничено. | ||
| + | |||
| + | === Сравнение с сеточным и случайным поиском === | ||
| + | |||
| + | Наиболее простые альтернативы байесовской оптимизации при подборе параметров — [[сеточный поиск]] ({{lang-en|grid search}}) и [[случайный поиск]] ({{lang-en|random search}}). Их принципиальное отличие в том, что они не используют информацию о ранее полученных значениях функции при выборе следующей точки. | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Критерий !! Сеточный поиск !! Случайный поиск !! Байесовская оптимизация | ||
| + | |- | ||
| + | | Использование истории наблюдений || Нет || Нет || Да | ||
| + | |- | ||
| + | | Стратегия выбора точек || Равномерная сетка || Случайная || На основе модели | ||
| + | |- | ||
| + | | Масштабируемость по размерности || Плохая (экспонента) || Средняя || Хорошая (до ~20) | ||
| + | |- | ||
| + | | Учёт неравнозначности параметров || Нет || Нет || Да | ||
| + | |- | ||
| + | | Эффективность при малом бюджете || Низкая || Средняя || Высокая | ||
| + | |- | ||
| + | | Теоретические гарантии сходимости || Нет || Нет || Да (GP-UCB) | ||
| + | |- | ||
| + | | Возможность параллелизации || Да (тривиально) || Да (тривиально) || Ограничена | ||
| + | |- | ||
| + | | Сложность реализации и настройки || Низкая || Низкая || Высокая | ||
| + | |} | ||
| + | |||
| + | Случайный поиск, как показали Бергстра и Бенжио (Bergstra, Bengio, 2012), как правило превосходит сеточный за счёт того, что не тратит ресурсы на менее значимые измерения пространства. Байесовская оптимизация идёт дальше: она направленно исследует область, руководствуясь текущими представлениями о форме функции, что даёт заметный выигрыш именно при малом бюджете вычислений. | ||
| + | |||
| + | == Интуитивная идея == | ||
| + | |||
| + | Представим геодезиста, который ищет самую высокую точку неизвестной, покрытой туманом местности. Единственный доступный ему инструмент — дорогостоящее бурение: в произвольной точке можно пробурить скважину и точно узнать высоту рельефа именно в этой точке, но каждое бурение стоит времени и денег, поэтому число скважин строго ограничено. | ||
| + | |||
| + | После нескольких первых, случайно расположенных скважин геодезист строит приближённую карту местности — не единственную «наиболее вероятную» поверхность, а целое семейство правдоподобных поверхностей, согласующихся с уже полученными измерениями. В точках рядом с уже пробуренными скважинами карта достаточно уверенная — рельеф там хорошо предсказывается. В удалённых, ещё не исследованных областях карта крайне неопределённа: там может скрываться как равнина, так и высочайшая вершина. | ||
| + | |||
| + | Выбирая место следующей скважины, геодезист балансирует между двумя стратегиями. Он может бурить там, где карта предсказывает наибольшую высоту (эксплуатация уже накопленных знаний), либо там, где неопределённость максимальна и потенциально скрывается сюрприз (исследование). Именно эта комбинация — «бурить там, где, по нашим представлениям, скорее всего находится вершина, с поправкой на то, что неисследованные места могут преподнести неожиданность» — и есть суть байесовской оптимизации. Роль карты играет [[суррогатная модель]] (обычно [[гауссовский процесс]]), а роль правила выбора следующей скважины — [[функция приобретения]]. | ||
| + | |||
| + | == Компоненты метода == | ||
| + | |||
| + | === Суррогатная модель: гауссовский процесс === | ||
| + | |||
| + | Наиболее распространённой суррогатной моделью в байесовской оптимизации выступает [[гауссовский процесс]] (Gaussian Process, GP) — распределение вероятностей на пространстве функций, полностью определяемое функцией среднего <tex>m(x)</tex> и ковариационной функцией (ядром) <tex>k(x,x')</tex>: | ||
| + | |||
| + | :: <tex>f(x) \sim \mathcal{GP}\big(m(x),\, k(x,x')\big)</tex> | ||
| + | |||
| + | На практике часто принимают <tex>m(x)=0</tex>, а всю содержательную информацию о гладкости и масштабе изменчивости функции кодируют в ядре. Типичный выбор — квадратично-экспоненциальное (гауссово) ядро | ||
| + | |||
| + | :: <tex>k(x,x') = \sigma_f^2 \exp\left(-\frac{\|x-x'\|^2}{2\ell^2}\right)</tex> | ||
| + | |||
| + | или семейство ядер Матерна, обеспечивающих менее жёсткое предположение о гладкости. Параметры ядра — длина корреляции <tex>\ell</tex>, дисперсия сигнала <tex>\sigma_f^2</tex> и дисперсия шума <tex>\sigma_n^2</tex> — подбираются максимизацией логарифма маргинального правдоподобия: | ||
| + | |||
| + | :: <tex>\log p(\mathbf{y}\mid X) = -\frac{1}{2}\mathbf{y}^\top (K+\sigma_n^2 I)^{-1}\mathbf{y} - \frac{1}{2}\log\left|K+\sigma_n^2 I\right| - \frac{t}{2}\log 2\pi</tex> | ||
| + | |||
| + | Ключевое свойство гауссовского процесса состоит в том, что при условии на уже полученные наблюдения <tex>\mathcal{D}_t = \{(x_i,y_i)\}_{i=1}^{t}</tex> апостериорное распределение значения функции в произвольной точке <tex>x</tex> вновь является гауссовским, с явно выражаемыми параметрами: | ||
| + | |||
| + | :: <tex>\mu_t(x) = \mathbf{k}_t(x)^\top \big(K_t + \sigma_n^2 I\big)^{-1} \mathbf{y}_{1:t}</tex> | ||
| + | |||
| + | :: <tex>\sigma_t^2(x) = k(x,x) - \mathbf{k}_t(x)^\top \big(K_t + \sigma_n^2 I\big)^{-1} \mathbf{k}_t(x)</tex> | ||
| + | |||
| + | где <tex>\mathbf{k}_t(x) = \big[k(x,x_1),\dots,k(x,x_t)\big]^\top</tex>, <tex>K_t</tex> — матрица Грама с элементами <tex>[K_t]_{ij}=k(x_i,x_j)</tex>, а <tex>\mathbf{y}_{1:t}=[y_1,\dots,y_t]^\top</tex>. Функция <tex>\mu_t(x)</tex> задаёт текущую наилучшую оценку значения функции, а <tex>\sigma_t^2(x)</tex> — меру неопределённости этой оценки, естественным образом убывающую вблизи уже исследованных точек. | ||
| + | |||
| + | === Функция приобретения === | ||
| + | |||
| + | Апостериорное распределение GP само по себе не указывает, куда направить следующее измерение. Эту роль играет [[функция приобретения]] <tex>a(x)</tex> — скалярная функция, вычисляемая из <tex>\mu_t(x)</tex> и <tex>\sigma_t(x)</tex>, значение которой велико в точках, перспективных для оценки. Следующая точка выбирается как | ||
| + | |||
| + | :: <tex>x_{t+1} = \arg\max_{x \in \mathcal{X}} a(x \mid \mathcal{D}_t)</tex> | ||
| + | |||
| + | Эта вспомогательная задача оптимизации сама по себе не является дорогостоящей (функция приобретения вычисляется аналитически из GP), поэтому её решают классическими методами — многостартовым L-BFGS, CMA-ES или плотным перебором. | ||
| + | |||
| + | Пусть <tex>f^{+}=\max_i y_i</tex> — наилучшее из наблюдённых значений (инкумбент), а <tex>\Phi</tex> и <tex>\phi</tex> — функция распределения и плотность стандартного нормального распределения. | ||
| + | |||
| + | '''Вероятность улучшения''' (Probability of Improvement, PI), предложенная Кушнером (Kushner, 1964): | ||
| + | |||
| + | :: <tex>\mathrm{PI}(x) = \Phi\!\left(\frac{\mu_t(x) - f^{+} - \xi}{\sigma_t(x)}\right)</tex> | ||
| + | |||
| + | '''Ожидаемое улучшение''' (Expected Improvement, EI), введённое Мокусом и популяризированное в алгоритме EGO (Jones, Schonlau, Welch, 1998): | ||
| + | |||
| + | :: <tex>\mathrm{EI}(x) = \begin{cases} \big(\mu_t(x)-f^{+}-\xi\big)\,\Phi(z) + \sigma_t(x)\,\phi(z), & \sigma_t(x)>0 \\ 0, & \sigma_t(x)=0 \end{cases}</tex> | ||
| + | |||
| + | где <tex>z = \dfrac{\mu_t(x)-f^{+}-\xi}{\sigma_t(x)}</tex>. | ||
| + | |||
| + | '''Верхняя доверительная граница''' (Upper Confidence Bound, GP-UCB), обоснованная теоретически Шринивасом с соавторами (Srinivas et al., 2010): | ||
| + | |||
| + | :: <tex>\mathrm{UCB}(x) = \mu_t(x) + \sqrt{\beta_t}\,\sigma_t(x)</tex> | ||
| + | |||
| + | Во всех формулах параметр <tex>\xi \geqslant 0</tex> (для PI и EI) или <tex>\beta_t</tex> (для UCB) управляет соотношением исследования и эксплуатации: увеличение параметра смещает предпочтение в сторону точек с высокой неопределённостью. При зашумлённых наблюдениях в качестве инкумбента <tex>f^{+}</tex> корректнее использовать не наилучшее наблюдённое значение <tex>y_i</tex>, а наилучшее значение апостериорного среднего <tex>\mu_t(x_i)</tex>. | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Функция !! Учитывает !! Склонность !! Параметр !! Теоретические гарантии | ||
| + | |- | ||
| + | | PI || Вероятность превышения максимума || Эксплуатация || <tex>\xi</tex> || Нет | ||
| + | |- | ||
| + | | EI || Вероятность и величину улучшения || Сбалансирована || <tex>\xi</tex> || Нет | ||
| + | |- | ||
| + | | UCB || Среднее + бонус за неопределённость || Исследование || <tex>\beta_t</tex> || Да (сублинейный regret) | ||
| + | |} | ||
| + | |||
| + | == Математическая схема == | ||
| + | |||
| + | Байесовская оптимизация представляет собой последовательный процесс байесовского обновления. На шаге <tex>t</tex> апостериорное распределение <tex>p(f\mid \mathcal{D}_{t-1})</tex>, полученное по формулам предыдущего раздела, используется для выбора точки <tex>x_t</tex> максимизацией функции приобретения. После получения наблюдения <tex>y_t=f(x_t)+\varepsilon_t</tex> набор данных пополняется: <tex>\mathcal{D}_t = \mathcal{D}_{t-1}\cup\{(x_t,y_t)\}</tex>, и апостериорное распределение пересчитывается — это и есть байесовское обновление, применяемое последовательно T раз при бюджете в T измерений. | ||
| + | |||
| + | Качество стратегии принято характеризовать величиной '''регрета'''. Простой регрет после <tex>T</tex> шагов: | ||
| + | |||
| + | :: <tex>r_T = f(x^{*}) - \max_{t\leqslant T} f(x_t)</tex> | ||
| + | |||
| + | Кумулятивный регрет: | ||
| + | |||
| + | :: <tex>R_T = \sum_{t=1}^{T} \big[f(x^{*}) - f(x_t)\big]</tex> | ||
| + | |||
| + | Стратегия называется «безрегретной» ({{lang-en|no-regret}}), если <tex>R_T/T \to 0</tex> при <tex>T\to\infty</tex>, что влечёт сходимость простого регрета к нулю. Для GP-UCB Шринивас с соавторами (2010) доказали следующий результат: если для конечного (или дискретизированного) множества <tex>\mathcal{X}</tex> положить | ||
| + | |||
| + | :: <tex>\beta_t = 2\log\!\left(\frac{|\mathcal{X}|\,t^2\pi^2}{6\delta}\right)</tex> | ||
| + | |||
| + | то с вероятностью не менее <tex>1-\delta</tex> кумулятивный регрет ограничен как | ||
| + | |||
| + | :: <tex>R_T \leqslant \sqrt{C_1\, T\, \beta_T\, \gamma_T}</tex> | ||
| + | |||
| + | где <tex>C_1 = 8/\log(1+\sigma_n^{-2})</tex>, а <tex>\gamma_T</tex> — максимальный информационный выигрыш ({{lang-en|maximum information gain}}), характеризующий сложность класса функций, порождаемого ядром GP. Для гауссова ядра <tex>\gamma_T = O\big((\log T)^{d+1}\big)</tex>, для ядра Матерна с параметром гладкости <tex>\nu</tex> — <tex>\gamma_T = O\big(T^{\frac{d(d+1)}{2\nu+d(d+1)}}\log T\big)</tex>. Поскольку в обоих случаях <tex>\gamma_T</tex> растёт медленнее <tex>T</tex>, оценка гарантирует сублинейный рост <tex>R_T</tex> и, следовательно, сходимость GP-UCB к глобальному оптимуму. | ||
| + | |||
| + | == Алгоритм == | ||
| + | |||
| + | Ниже приведена обобщённая псевдокодовая схема, справедливая для большинства реализаций байесовской оптимизации на основе гауссовского процесса. | ||
| + | |||
| + | <pre> | ||
| + | Вход: чёрный ящик f, область поиска X, бюджет T, | ||
| + | размер начального плана n0, функция приобретения a | ||
| + | |||
| + | 1. Сформировать начальный план {x_1, ..., x_n0} | ||
| + | (например, латинский гиперкуб или последовательность Соболя) | ||
| + | 2. Для i = 1 .. n0: вычислить y_i = f(x_i) | ||
| + | 3. D <- {(x_1,y_1), ..., (x_n0,y_n0)} | ||
| + | |||
| + | 4. Для t = n0+1 .. T: | ||
| + | 4.1 Обучить гауссовский процесс на D: | ||
| + | подобрать гиперпараметры ядра максимизацией | ||
| + | маргинального правдоподобия | ||
| + | 4.2 Вычислить апостериорные mu(x), sigma^2(x) по формулам GP | ||
| + | 4.3 x_t <- argmax_{x in X} a(x | D) // вспомогательная оптимизация | ||
| + | 4.4 y_t <- f(x_t) // дорогостоящее обращение к оракулу | ||
| + | 4.5 D <- D U {(x_t, y_t)} | ||
| + | |||
| + | 5. Вернуть x+ = argmax_{(x_i,y_i) in D} y_i | ||
| + | </pre> | ||
| + | |||
| + | == Пример: настройка гиперпараметров градиентного бустинга для кредитного скоринга == | ||
| + | |||
| + | Рассмотрим типовую задачу [[кредитный скоринг|кредитного скоринга]]: построение бинарного классификатора, предсказывающего вероятность дефолта заёмщика, с использованием модели [[градиентный бустинг|градиентного бустинга]] (например, XGBoost, LightGBM или CatBoost). В качестве целевой метрики обычно выступает [[площадь под ROC-кривой]] (AUC), оцениваемая по [[кросс-валидация|кросс-валидации]]. Один запуск обучения с фиксированным набором гиперпараметров и последующей k-блочной кросс-валидацией может занимать от нескольких минут до часов — это и есть «дорогой чёрный ящик» в терминах задачи. | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Гиперпараметр !! Диапазон !! Тип !! Шкала | ||
| + | |- | ||
| + | | learning_rate (темп обучения) || [0.01, 0.3] || Непрерывный || Логарифмическая | ||
| + | |- | ||
| + | | max_depth (глубина дерева) || [3, 10] || Целочисленный || Линейная | ||
| + | |- | ||
| + | | n_estimators (число деревьев) || [100, 1000] || Целочисленный || Линейная | ||
| + | |- | ||
| + | | subsample (доля объектов) || [0.5, 1.0] || Непрерывный || Линейная | ||
| + | |- | ||
| + | | colsample_bytree (доля признаков) || [0.5, 1.0] || Непрерывный || Линейная | ||
| + | |- | ||
| + | | min_child_weight || [1, 50] || Целочисленный || Линейная | ||
| + | |- | ||
| + | | reg_lambda (L2-регуляризация) || [1e-3, 10] || Непрерывный || Логарифмическая | ||
| + | |- | ||
| + | | reg_alpha (L1-регуляризация) || [1e-3, 10] || Непрерывный || Логарифмическая | ||
| + | |} | ||
| + | |||
| + | Целевая функция в этом случае — <tex>f(\theta) = \mathrm{AUC}_{\mathrm{CV}}(\theta)</tex>, где <tex>\theta</tex> — вектор из восьми перечисленных гиперпараметров, а оптимизация ведётся на максимум. Типичная схема запуска: начальный план из 10–15 точек по латинскому гиперкубу, далее 30–50 итераций байесовской оптимизации с GP-суррогатом (ядро Матерна 5/2) и функцией приобретения EI. | ||
| + | |||
| + | Ниже приведён иллюстративный пример типичной динамики, наблюдаемой при сравнении со случайным поиском на подобных задачах — конкретные числа условны и предназначены для демонстрации характера сходимости, а не воспроизводят результаты определённого эксперимента. | ||
| + | |||
| + | {| class="wikitable" | ||
| + | |- | ||
| + | ! Число обращений к f !! Лучший AUC, случайный поиск !! Лучший AUC, байесовская оптимизация | ||
| + | |- | ||
| + | | 10 || 0,752 || 0,768 | ||
| + | |- | ||
| + | | 25 || 0,769 || 0,784 | ||
| + | |- | ||
| + | | 50 || 0,778 || 0,791 | ||
| + | |- | ||
| + | | 100 || 0,784 || 0,793 | ||
| + | |- | ||
| + | | 200 || 0,788 || 0,794 | ||
| + | |} | ||
| + | |||
| + | Характерная картина: байесовская оптимизация достигает качества, сопоставимого с результатом случайного поиска при существенно большем бюджете, уже за первые несколько десятков итераций — это и есть проявление её выборочной эффективности ({{lang-en|sample efficiency}}), особенно ценной при дорогой целевой функции. Сходный вывод — превосходство байесовской оптимизации над случайным поиском при настройке гиперпараметров моделей машинного обучения — получен Снук с соавторами (Snoek, Larochelle, Adams, 2012). | ||
| + | |||
| + | == Достоинства и ограничения == | ||
| + | |||
| + | '''Достоинства:''' | ||
| + | |||
| + | * высокая эффективность по числу обращений к целевой функции, особенно значимая при дорогих вычислениях; | ||
| + | * корректная работа с зашумлёнными наблюдениями благодаря вероятностной природе модели; | ||
| + | * явная количественная оценка неопределённости, позволяющая осмысленно управлять балансом исследования и эксплуатации; | ||
| + | * отсутствие требования к дифференцируемости или явной аналитической форме целевой функции; | ||
| + | * возможность включения априорных знаний через выбор ядра, функции среднего или ограничений; | ||
| + | * хорошая применимость к экспериментальным и симуляционным задачам, где каждое измерение стоит дорого. | ||
| + | |||
| + | '''Ограничения:''' | ||
| + | |||
| + | * кубическая сложность обучения гауссовского процесса по числу наблюдений (<tex>O(t^3)</tex>), что без разреженных аппроксимаций ограничивает практический бюджет итераций несколькими сотнями–тысячами; | ||
| + | * заметная деградация качества при высокой размерности пространства поиска (свыше примерно 15–20 непрерывных переменных без специальных приёмов); | ||
| + | * чувствительность к выбору ядра и способу настройки его гиперпараметров; | ||
| + | * последовательная по своей природе процедура, затрудняющая тривиальную параллелизацию (хотя существуют пакетные, batch-модификации); | ||
| + | * нетривиальная работа с дискретными, категориальными и условными (conditional) параметрами без специальных модификаций ядра или кодирования; | ||
| + | * вспомогательная задача максимизации функции приобретения сама может быть многоэкстремальной и требовать многостартовой оптимизации. | ||
| + | |||
| + | == Варианты расширений == | ||
| + | |||
| + | ; Многомерная оптимизация | ||
| + | : При росте размерности пространства поиска стандартный GP-подход теряет эффективность. Для смягчения проблемы применяют случайные вложения меньшей размерности (метод REMBO), аддитивные модели GP, а также методы, сужающие область поиска до доверительного региона на каждой итерации (TuRBO). | ||
| + | |||
| + | ; Оптимизация с ограничениями | ||
| + | : Если помимо целевой функции присутствуют дорогостоящие ограничения <tex>c(x)\leqslant 0</tex>, применяется модификация функции приобретения — например, взвешивание EI вероятностью допустимости точки, оцениваемой отдельным GP-классификатором ограничения (constrained EI). | ||
| + | |||
| + | ; Многокритериальная оптимизация | ||
| + | : При нескольких одновременно оптимизируемых целях вместо единственной точки ищется [[множество Парето|множество Парето-оптимальных]] решений. Используются функции приобретения вроде ожидаемого прироста гиперобъёма (Expected Hypervolume Improvement, EHVI) или скаляризационные подходы (ParEGO). | ||
| + | |||
| + | ; Мультифидельная оптимизация (BOHB) | ||
| + | : Когда доступны дешёвые приближённые оценки функции (например, обучение на подвыборке данных или при малом числе эпох), их можно использовать наряду с дорогими точными измерениями. Алгоритм BOHB (Falkner, Klein, Hutter, 2018) сочетает бандитскую схему распределения ресурсов Hyperband с байесовской моделью выбора конфигураций, ускоряя сходимость по сравнению с обычной GP-оптимизацией. | ||
| + | |||
| + | ; Поиск архитектур нейронных сетей (NAS) | ||
| + | : Байесовская оптимизация применяется и для поиска архитектур [[нейронная сеть|нейронных сетей]] — здесь пространство поиска дискретно, комбинаторно велико, а оценка каждой точки (обучение сети) крайне дорога. Для работы с такими пространствами используют специальные ядра, определённые на графах архитектур (например, на основе расстояния оптимального переноса, как в NASBOT), либо комбинируют байесовскую оптимизацию с методами разделения весов и другими техниками ускорения оценки кандидатов. | ||
| + | |||
| + | == См. также == | ||
| + | |||
| + | * [[Оптимизация]] | ||
| + | * [[Гауссовский процесс]] | ||
| + | * [[Гиперпараметр]] | ||
| + | * [[Кросс-валидация]] | ||
| + | * [[Градиентный бустинг]] | ||
| + | * [[Регуляризация]] | ||
| + | * [[Переобучение]] | ||
| + | * [[Случайный поиск]] | ||
| + | * [[Сеточный поиск]] | ||
| + | * [[Автоматическое машинное обучение]] | ||
| + | |||
| + | == Литература == | ||
| + | |||
| + | * Mockus J. On Bayesian methods for seeking the extremum // Optimization Techniques IFIP Technical Conference. — 1975. | ||
| + | * Jones D. R., Schonlau M., Welch W. J. Efficient Global Optimization of Expensive Black-Box Functions // Journal of Global Optimization. — 1998. — Vol. 13. — P. 455–492. | ||
| + | * Rasmussen C. E., Williams C. K. I. Gaussian Processes for Machine Learning. — MIT Press, 2006. | ||
| + | * Brochu E., Cora V. M., de Freitas N. A Tutorial on Bayesian Optimization of Expensive Cost Functions, with Application to Active User Modeling and Hierarchical Reinforcement Learning. — arXiv:1012.2599, 2010. | ||
| + | * Srinivas N., Krause A., Kakade S., Seeger M. Gaussian Process Optimization in the Bandit Setting: No Regret and Experimental Design // Proceedings of ICML. — 2010. | ||
| + | * Bergstra J., Bengio Y. Random Search for Hyper-Parameter Optimization // Journal of Machine Learning Research. — 2012. — Vol. 13. — P. 281–305. | ||
| + | * Snoek J., Larochelle H., Adams R. P. Practical Bayesian Optimization of Machine Learning Algorithms // Advances in Neural Information Processing Systems (NeurIPS). — 2012. | ||
| + | * Shahriari B., Swersky K., Wang Z., Adams R. P., de Freitas N. Taking the Human Out of the Loop: A Review of Bayesian Optimization // Proceedings of the IEEE. — 2016. — Vol. 104, № 1. — P. 148–175. | ||
| + | * Falkner S., Klein A., Hutter F. BOHB: Robust and Efficient Hyperparameter Optimization at Scale // Proceedings of ICML. — 2018. | ||
| + | * Frazier P. I. A Tutorial on Bayesian Optimization. — arXiv:1807.02811, 2018. | ||
| + | |||
| + | [[Категория:Машинное обучение]] | ||
| + | [[Категория:Методы оптимизации]] | ||
| + | [[Категория:Автоматическое машинное обучение]] | ||
| + | [[Категория:Байесовские методы]] | ||
| + | [[Категория:Настройка гиперпараметров]] | ||
Версия 11:42, 10 июля 2026
Imil Baltaniazov, поздравляем с успешной регистрацией на MachineLearning.ru
Перед началом работы рекомендуем ознакомиться с двумя основными документами:
- Концепция Ресурса — короткий документ, в котором объясняется, чем наш Ресурс отличается от Википедии, как его можно использовать для совместной научной и учебной работы, и каким он должен стать в перспективе;
- Инструктаж — длинный документ, в котором мы постарались собрать все сведения, необходимые для работы с Ресурсом, включая правила вики-разметки и сведения об основных категориях Ресурса.
Ссылки на эти и другие справочные материалы собраны на странице Справка.
В нашем сообществе принято представляться. Поэтому, прежде чем приступить к созданию или редактированию страниц, заполните, пожалуйста, свою страницу участника. Сделать это очень просто — достаточно кликнуть на Ваше имя Участника (оно показывается в самой верхней строке на любой странице Ресурса). Желательно, чтобы кроме обычных формальностей (фамилии, имени, отчества, места работы или учёбы, степени, звания, и т.д.) Вы указали свои научные интересы. Удобнее всего сделать это в виде списка ссылок на интересные Вам статьи или категории нашего Ресурса. Не беда, если некоторые из них окажутся «красными ссылками» — это означает, что таких статей пока нет, и у Вас есть шанс их написать. Кстати, вики-движок собирает все «красные ссылки» в список требуемых статей — в него тоже стоит заглянуть. Для создания новой статьи достаточно кликнуть по «красной ссылке» или набрать её название в строке поиска.
По любым вопросам, связанным с работой нашего Ресурса, обращайтесь к Администраторам (см. список администраторов).
С уважением,
ваш M.L.Ru
Байесовская оптимизация
| | Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Imil Baltaniazov 15:00, 10 июля 2026 (MSD) |
Байесовская оптимизация (Шаблон:Lang-en) — метод глобальной оптимизации чёрных ящиков, основанный на построении вероятностной суррогатной модели целевой функции и последовательном выборе точек для оценки на основе так называемой функции приобретения. Метод предназначен для задач, в которых целевая функция дорого стоит вычислительно или ресурсно, не имеет аналитического выражения и недоступна для дифференцирования.
Введение
Многие задачи в науке об анализе данных и инженерии сводятся к оптимизации функции, вычисление значения которой сопряжено с высокими затратами: запуск дорогостоящего эксперимента, длительное обучение нейронной сети, симуляция физического процесса. В таких условиях классические методы оптимизации, требующие большого числа обращений к функции или знания её градиента, оказываются малопригодны. Байесовская оптимизация предлагает альтернативный подход: вместо того чтобы исследовать пространство параметров вслепую или по фиксированной сетке, метод на каждом шаге использует всю накопленную информацию о поведении функции, чтобы принять обоснованное решение о том, где провести следующее, потенциально самое информативное измерение.
Наибольшую известность байесовская оптимизация получила как инструмент настройки гиперпараметров моделей машинного обучения, однако область её применения существенно шире: автоматизированное проектирование экспериментов, робототехника, разработка лекарственных препаратов, оптимизация промышленных процессов и архитектур нейронных сетей. Общей чертой всех этих задач является то, что каждое обращение к целевой функции — это дорогостоящее действие, число которых должно быть минимизировано.
В основе метода лежит идея, восходящая к работам Й. Мокуса (J. Mockus) конца 1970-х годов и получившая широкое развитие с появлением алгоритма Efficient Global Optimization (EGO) в конце 1990-х. В последнее десятилетие байесовская оптимизация стала стандартным инструментом автоматического машинного обучения (AutoML) и лежит в основе многих популярных библиотек подбора гиперпараметров.
Постановка задачи
Рассматривается задача поиска глобального максимума функции , заданной на компактном множестве
:
Без ограничения общности рассматривается задача максимизации; задача минимизации сводится к ней заменой на
. Функция
называется чёрным ящиком (Шаблон:Lang-en), если выполнены следующие условия:
- аналитическое выражение функции неизвестно, доступны только её значения в запрашиваемых точках («оракульный» доступ);
- градиент
недоступен и не может быть эффективно вычислен;
- каждое обращение к функции требует значительных затрат времени, вычислительных ресурсов или денег;
- наблюдения могут быть зашумлены:
, где
.
Задача состоит в том, чтобы найти точку, максимально близкую к , использовав как можно меньше обращений к
. Именно ограниченность бюджета оценок отличает постановку задачи байесовской оптимизации от классических задач непрерывной оптимизации, где число вычислений функции и градиента практически не ограничено.
Сравнение с сеточным и случайным поиском
Наиболее простые альтернативы байесовской оптимизации при подборе параметров — сеточный поиск (Шаблон:Lang-en) и случайный поиск (Шаблон:Lang-en). Их принципиальное отличие в том, что они не используют информацию о ранее полученных значениях функции при выборе следующей точки.
| Критерий | Сеточный поиск | Случайный поиск | Байесовская оптимизация |
|---|---|---|---|
| Использование истории наблюдений | Нет | Нет | Да |
| Стратегия выбора точек | Равномерная сетка | Случайная | На основе модели |
| Масштабируемость по размерности | Плохая (экспонента) | Средняя | Хорошая (до ~20) |
| Учёт неравнозначности параметров | Нет | Нет | Да |
| Эффективность при малом бюджете | Низкая | Средняя | Высокая |
| Теоретические гарантии сходимости | Нет | Нет | Да (GP-UCB) |
| Возможность параллелизации | Да (тривиально) | Да (тривиально) | Ограничена |
| Сложность реализации и настройки | Низкая | Низкая | Высокая |
Случайный поиск, как показали Бергстра и Бенжио (Bergstra, Bengio, 2012), как правило превосходит сеточный за счёт того, что не тратит ресурсы на менее значимые измерения пространства. Байесовская оптимизация идёт дальше: она направленно исследует область, руководствуясь текущими представлениями о форме функции, что даёт заметный выигрыш именно при малом бюджете вычислений.
Интуитивная идея
Представим геодезиста, который ищет самую высокую точку неизвестной, покрытой туманом местности. Единственный доступный ему инструмент — дорогостоящее бурение: в произвольной точке можно пробурить скважину и точно узнать высоту рельефа именно в этой точке, но каждое бурение стоит времени и денег, поэтому число скважин строго ограничено.
После нескольких первых, случайно расположенных скважин геодезист строит приближённую карту местности — не единственную «наиболее вероятную» поверхность, а целое семейство правдоподобных поверхностей, согласующихся с уже полученными измерениями. В точках рядом с уже пробуренными скважинами карта достаточно уверенная — рельеф там хорошо предсказывается. В удалённых, ещё не исследованных областях карта крайне неопределённа: там может скрываться как равнина, так и высочайшая вершина.
Выбирая место следующей скважины, геодезист балансирует между двумя стратегиями. Он может бурить там, где карта предсказывает наибольшую высоту (эксплуатация уже накопленных знаний), либо там, где неопределённость максимальна и потенциально скрывается сюрприз (исследование). Именно эта комбинация — «бурить там, где, по нашим представлениям, скорее всего находится вершина, с поправкой на то, что неисследованные места могут преподнести неожиданность» — и есть суть байесовской оптимизации. Роль карты играет суррогатная модель (обычно гауссовский процесс), а роль правила выбора следующей скважины — функция приобретения.
Компоненты метода
Суррогатная модель: гауссовский процесс
Наиболее распространённой суррогатной моделью в байесовской оптимизации выступает гауссовский процесс (Gaussian Process, GP) — распределение вероятностей на пространстве функций, полностью определяемое функцией среднего и ковариационной функцией (ядром)
:
На практике часто принимают , а всю содержательную информацию о гладкости и масштабе изменчивости функции кодируют в ядре. Типичный выбор — квадратично-экспоненциальное (гауссово) ядро
или семейство ядер Матерна, обеспечивающих менее жёсткое предположение о гладкости. Параметры ядра — длина корреляции , дисперсия сигнала
и дисперсия шума
— подбираются максимизацией логарифма маргинального правдоподобия:
Ключевое свойство гауссовского процесса состоит в том, что при условии на уже полученные наблюдения апостериорное распределение значения функции в произвольной точке
вновь является гауссовским, с явно выражаемыми параметрами:
где ,
— матрица Грама с элементами
, а
. Функция
задаёт текущую наилучшую оценку значения функции, а
— меру неопределённости этой оценки, естественным образом убывающую вблизи уже исследованных точек.
Функция приобретения
Апостериорное распределение GP само по себе не указывает, куда направить следующее измерение. Эту роль играет функция приобретения — скалярная функция, вычисляемая из
и
, значение которой велико в точках, перспективных для оценки. Следующая точка выбирается как
Эта вспомогательная задача оптимизации сама по себе не является дорогостоящей (функция приобретения вычисляется аналитически из GP), поэтому её решают классическими методами — многостартовым L-BFGS, CMA-ES или плотным перебором.
Пусть — наилучшее из наблюдённых значений (инкумбент), а
и
— функция распределения и плотность стандартного нормального распределения.
Вероятность улучшения (Probability of Improvement, PI), предложенная Кушнером (Kushner, 1964):
Ожидаемое улучшение (Expected Improvement, EI), введённое Мокусом и популяризированное в алгоритме EGO (Jones, Schonlau, Welch, 1998):
где .
Верхняя доверительная граница (Upper Confidence Bound, GP-UCB), обоснованная теоретически Шринивасом с соавторами (Srinivas et al., 2010):
Во всех формулах параметр (для PI и EI) или
(для UCB) управляет соотношением исследования и эксплуатации: увеличение параметра смещает предпочтение в сторону точек с высокой неопределённостью. При зашумлённых наблюдениях в качестве инкумбента
корректнее использовать не наилучшее наблюдённое значение
, а наилучшее значение апостериорного среднего
.
| Функция | Учитывает | Склонность | Параметр | Теоретические гарантии |
|---|---|---|---|---|
| PI | Вероятность превышения максимума | Эксплуатация | | Нет |
| EI | Вероятность и величину улучшения | Сбалансирована | | Нет |
| UCB | Среднее + бонус за неопределённость | Исследование | | Да (сублинейный regret) |
Математическая схема
Байесовская оптимизация представляет собой последовательный процесс байесовского обновления. На шаге апостериорное распределение
, полученное по формулам предыдущего раздела, используется для выбора точки
максимизацией функции приобретения. После получения наблюдения
набор данных пополняется:
, и апостериорное распределение пересчитывается — это и есть байесовское обновление, применяемое последовательно T раз при бюджете в T измерений.
Качество стратегии принято характеризовать величиной регрета. Простой регрет после шагов:
Кумулятивный регрет:
Стратегия называется «безрегретной» (Шаблон:Lang-en), если при
, что влечёт сходимость простого регрета к нулю. Для GP-UCB Шринивас с соавторами (2010) доказали следующий результат: если для конечного (или дискретизированного) множества
положить
то с вероятностью не менее кумулятивный регрет ограничен как
где , а
— максимальный информационный выигрыш (Шаблон:Lang-en), характеризующий сложность класса функций, порождаемого ядром GP. Для гауссова ядра
, для ядра Матерна с параметром гладкости
—
. Поскольку в обоих случаях
растёт медленнее
, оценка гарантирует сублинейный рост
и, следовательно, сходимость GP-UCB к глобальному оптимуму.
Алгоритм
Ниже приведена обобщённая псевдокодовая схема, справедливая для большинства реализаций байесовской оптимизации на основе гауссовского процесса.
Вход: чёрный ящик f, область поиска X, бюджет T,
размер начального плана n0, функция приобретения a
1. Сформировать начальный план {x_1, ..., x_n0}
(например, латинский гиперкуб или последовательность Соболя)
2. Для i = 1 .. n0: вычислить y_i = f(x_i)
3. D <- {(x_1,y_1), ..., (x_n0,y_n0)}
4. Для t = n0+1 .. T:
4.1 Обучить гауссовский процесс на D:
подобрать гиперпараметры ядра максимизацией
маргинального правдоподобия
4.2 Вычислить апостериорные mu(x), sigma^2(x) по формулам GP
4.3 x_t <- argmax_{x in X} a(x | D) // вспомогательная оптимизация
4.4 y_t <- f(x_t) // дорогостоящее обращение к оракулу
4.5 D <- D U {(x_t, y_t)}
5. Вернуть x+ = argmax_{(x_i,y_i) in D} y_i
Пример: настройка гиперпараметров градиентного бустинга для кредитного скоринга
Рассмотрим типовую задачу кредитного скоринга: построение бинарного классификатора, предсказывающего вероятность дефолта заёмщика, с использованием модели градиентного бустинга (например, XGBoost, LightGBM или CatBoost). В качестве целевой метрики обычно выступает площадь под ROC-кривой (AUC), оцениваемая по кросс-валидации. Один запуск обучения с фиксированным набором гиперпараметров и последующей k-блочной кросс-валидацией может занимать от нескольких минут до часов — это и есть «дорогой чёрный ящик» в терминах задачи.
| Гиперпараметр | Диапазон | Тип | Шкала |
|---|---|---|---|
| learning_rate (темп обучения) | [0.01, 0.3] | Непрерывный | Логарифмическая |
| max_depth (глубина дерева) | [3, 10] | Целочисленный | Линейная |
| n_estimators (число деревьев) | [100, 1000] | Целочисленный | Линейная |
| subsample (доля объектов) | [0.5, 1.0] | Непрерывный | Линейная |
| colsample_bytree (доля признаков) | [0.5, 1.0] | Непрерывный | Линейная |
| min_child_weight | [1, 50] | Целочисленный | Линейная |
| reg_lambda (L2-регуляризация) | [1e-3, 10] | Непрерывный | Логарифмическая |
| reg_alpha (L1-регуляризация) | [1e-3, 10] | Непрерывный | Логарифмическая |
Целевая функция в этом случае — , где
— вектор из восьми перечисленных гиперпараметров, а оптимизация ведётся на максимум. Типичная схема запуска: начальный план из 10–15 точек по латинскому гиперкубу, далее 30–50 итераций байесовской оптимизации с GP-суррогатом (ядро Матерна 5/2) и функцией приобретения EI.
Ниже приведён иллюстративный пример типичной динамики, наблюдаемой при сравнении со случайным поиском на подобных задачах — конкретные числа условны и предназначены для демонстрации характера сходимости, а не воспроизводят результаты определённого эксперимента.
| Число обращений к f | Лучший AUC, случайный поиск | Лучший AUC, байесовская оптимизация |
|---|---|---|
| 10 | 0,752 | 0,768 |
| 25 | 0,769 | 0,784 |
| 50 | 0,778 | 0,791 |
| 100 | 0,784 | 0,793 |
| 200 | 0,788 | 0,794 |
Характерная картина: байесовская оптимизация достигает качества, сопоставимого с результатом случайного поиска при существенно большем бюджете, уже за первые несколько десятков итераций — это и есть проявление её выборочной эффективности (Шаблон:Lang-en), особенно ценной при дорогой целевой функции. Сходный вывод — превосходство байесовской оптимизации над случайным поиском при настройке гиперпараметров моделей машинного обучения — получен Снук с соавторами (Snoek, Larochelle, Adams, 2012).
Достоинства и ограничения
Достоинства:
- высокая эффективность по числу обращений к целевой функции, особенно значимая при дорогих вычислениях;
- корректная работа с зашумлёнными наблюдениями благодаря вероятностной природе модели;
- явная количественная оценка неопределённости, позволяющая осмысленно управлять балансом исследования и эксплуатации;
- отсутствие требования к дифференцируемости или явной аналитической форме целевой функции;
- возможность включения априорных знаний через выбор ядра, функции среднего или ограничений;
- хорошая применимость к экспериментальным и симуляционным задачам, где каждое измерение стоит дорого.
Ограничения:
- кубическая сложность обучения гауссовского процесса по числу наблюдений (
), что без разреженных аппроксимаций ограничивает практический бюджет итераций несколькими сотнями–тысячами;
- заметная деградация качества при высокой размерности пространства поиска (свыше примерно 15–20 непрерывных переменных без специальных приёмов);
- чувствительность к выбору ядра и способу настройки его гиперпараметров;
- последовательная по своей природе процедура, затрудняющая тривиальную параллелизацию (хотя существуют пакетные, batch-модификации);
- нетривиальная работа с дискретными, категориальными и условными (conditional) параметрами без специальных модификаций ядра или кодирования;
- вспомогательная задача максимизации функции приобретения сама может быть многоэкстремальной и требовать многостартовой оптимизации.
Варианты расширений
- Многомерная оптимизация
- При росте размерности пространства поиска стандартный GP-подход теряет эффективность. Для смягчения проблемы применяют случайные вложения меньшей размерности (метод REMBO), аддитивные модели GP, а также методы, сужающие область поиска до доверительного региона на каждой итерации (TuRBO).
- Оптимизация с ограничениями
- Если помимо целевой функции присутствуют дорогостоящие ограничения
, применяется модификация функции приобретения — например, взвешивание EI вероятностью допустимости точки, оцениваемой отдельным GP-классификатором ограничения (constrained EI).
- Многокритериальная оптимизация
- При нескольких одновременно оптимизируемых целях вместо единственной точки ищется множество Парето-оптимальных решений. Используются функции приобретения вроде ожидаемого прироста гиперобъёма (Expected Hypervolume Improvement, EHVI) или скаляризационные подходы (ParEGO).
- Мультифидельная оптимизация (BOHB)
- Когда доступны дешёвые приближённые оценки функции (например, обучение на подвыборке данных или при малом числе эпох), их можно использовать наряду с дорогими точными измерениями. Алгоритм BOHB (Falkner, Klein, Hutter, 2018) сочетает бандитскую схему распределения ресурсов Hyperband с байесовской моделью выбора конфигураций, ускоряя сходимость по сравнению с обычной GP-оптимизацией.
- Поиск архитектур нейронных сетей (NAS)
- Байесовская оптимизация применяется и для поиска архитектур нейронных сетей — здесь пространство поиска дискретно, комбинаторно велико, а оценка каждой точки (обучение сети) крайне дорога. Для работы с такими пространствами используют специальные ядра, определённые на графах архитектур (например, на основе расстояния оптимального переноса, как в NASBOT), либо комбинируют байесовскую оптимизацию с методами разделения весов и другими техниками ускорения оценки кандидатов.
См. также
- Оптимизация
- Гауссовский процесс
- Гиперпараметр
- Кросс-валидация
- Градиентный бустинг
- Регуляризация
- Переобучение
- Случайный поиск
- Сеточный поиск
- Автоматическое машинное обучение
Литература
- Mockus J. On Bayesian methods for seeking the extremum // Optimization Techniques IFIP Technical Conference. — 1975.
- Jones D. R., Schonlau M., Welch W. J. Efficient Global Optimization of Expensive Black-Box Functions // Journal of Global Optimization. — 1998. — Vol. 13. — P. 455–492.
- Rasmussen C. E., Williams C. K. I. Gaussian Processes for Machine Learning. — MIT Press, 2006.
- Brochu E., Cora V. M., de Freitas N. A Tutorial on Bayesian Optimization of Expensive Cost Functions, with Application to Active User Modeling and Hierarchical Reinforcement Learning. — arXiv:1012.2599, 2010.
- Srinivas N., Krause A., Kakade S., Seeger M. Gaussian Process Optimization in the Bandit Setting: No Regret and Experimental Design // Proceedings of ICML. — 2010.
- Bergstra J., Bengio Y. Random Search for Hyper-Parameter Optimization // Journal of Machine Learning Research. — 2012. — Vol. 13. — P. 281–305.
- Snoek J., Larochelle H., Adams R. P. Practical Bayesian Optimization of Machine Learning Algorithms // Advances in Neural Information Processing Systems (NeurIPS). — 2012.
- Shahriari B., Swersky K., Wang Z., Adams R. P., de Freitas N. Taking the Human Out of the Loop: A Review of Bayesian Optimization // Proceedings of the IEEE. — 2016. — Vol. 104, № 1. — P. 148–175.
- Falkner S., Klein A., Hutter F. BOHB: Robust and Efficient Hyperparameter Optimization at Scale // Proceedings of ICML. — 2018.
- Frazier P. I. A Tutorial on Bayesian Optimization. — arXiv:1807.02811, 2018.

