Байесовский алгоритм оптимизации пытается минимизировать скалярную целевую функцию f (x) для x в ограниченной области. Функция может быть детерминированной или стохастической, что означает, что она может возвращать различные результаты при оценке в одной и той же точке x. Компоненты x могут быть непрерывными реалами, целыми числами или категориальными, что означает дискретный набор имен.
Примечание
На протяжении всего этого обсуждения D представляет количество компонентов x.
Ключевыми элементами минимизации являются:
Гауссова модель процесса f (x).
Байесовская процедура обновления для модификации модели гауссова процесса при каждой новой оценке f (x).
Функция сбора a (x) (основанная на модели гауссова процесса f), которую можно максимизировать для определения следующей точки x для оценки. Для получения дополнительной информации см. Типы функций сбора данных и максимизация функций сбора данных.
Схема алгоритма:
Оценка yi = f (xi) дляNumSeedPoints точки xi, взятые случайным образом в пределах переменных границ. NumSeedPoints является bayesopt установка. Если есть ошибки оценки, возьмите больше случайных точек, пока нет NumSeedPoints успешные оценки. Распределение вероятности каждого компонента является равномерным или логарифмическим, в зависимости от Transform значение в optimizableVariable.
Затем повторите следующие шаги:
Обновите модель гауссова процесса f (x), чтобы получить апостериорное распределение по функциям Q (f 'xi, yi для i = 1,..., t). ( Внутренне,bayesopt использование fitrgp для соответствия модели гауссова процесса данным.)
Найдите новую точку x, которая максимизирует функцию обнаружения a (x).
Алгоритм останавливается после достижения любого из следующих значений:
Фиксированное число итераций (по умолчанию 30).
Фиксированное время (по умолчанию время не ограничено).
Критерий остановки, предоставляемый в Bayesian Optimization Output Functions или Bayesian Optimization Plot Functions.
Алгоритмические различия параллельно см. в разделе Параллельный байесовский алгоритм.
Лежащая в основе вероятностная модель для целевой функции f является гауссовым процессом, предшествующим добавленному гауссову шуму в наблюдениях. Таким образом, предшествующее распределение на f (x) является Гауссовским процессом со средним μ (x; θ), и ядро ковариации функционируют k (x, x ′;θ). В данном случае λ является вектором параметров ядра. Для конкретной функции ядраbayesopt использует, см. раздел Функция ядра.
Более подробно обозначим набор точек X = xi с соответствующими значениями целевой функции F = fi. Совместное распределение значений F функции предшествующего уровня является многомерным нормальным с матрицей K (X, X), где Kij = k (xi, xj).
Без потери общности, предыдущее среднее дано как 0.
Кроме того, предполагается, что наблюдения добавили гауссов шум с дисперсией start2. Таким образом, предыдущее распределение имеет ковариацию K (X, X; start) + σ2I.
Подгонка модели регрессии гауссова процесса к наблюдениям состоит в нахождении значений для шумовой дисперсии start2 и параметров ядра, Этот фитинг является вычислительно интенсивным процессом, выполняемым fitrgp.
Дополнительные сведения о подгонке гауссова процесса к наблюдениям см. в разделе Регрессия гауссова процесса.
Функция ядра k (x, x ′; start) может значительно влиять на качество регрессии гауссова процесса.bayesopt использует ядро ARD Matérn 5/2, определенное в параметрах функции Kernel (Covariance).
Смотрите Снук, Ларошель и Адамс [3].
Шесть вариантов функций приобретения доступны для bayesopt. Существует три основных типа: expected-improvement также изменен per-second или plus:
'expected-improvement-per-second-plus' (по умолчанию)
'expected-improvement'
'expected-improvement-plus'
'expected-improvement-per-second'
'lower-confidence-bound'
'probability-of-improvement'
Функции получения оценивают «доброту» точки x на основе задней функции распределения Q. При наличии связанных ограничений, включая ограничение ошибки (см. Ошибки целевой функции), все функции получения изменяют свою оценку «доброты» по предложению Гельбарта, Снука и Адамса [2]. Умножьте «благость» на оценку вероятности того, что ограничения будут выполнены, чтобы получить функцию обнаружения.
'expected-improvement' семейство функций сбора данных оценивает ожидаемую степень улучшения целевой функции, игнорируя значения, которые вызывают увеличение цели. Другими словами, определить
xbest как местоположение самого низкого заднего среднего.
мкQ (xbest) как наименьшее значение заднего среднего.
Затем ожидаемое улучшение
− f (x))].
'probability-of-improvement' функция приобретения выполняет аналогичный, но более простой расчет, как 'expected-improvement'. В обоих случаях bayesopt сначала вычисляет xbest и мкQ (xbest). Затем для'probability-of-improvement', bayesopt вычисляет вероятность PI, что новая точка x приводит к лучшему значению целевой функции, модифицированному параметром «margin» m:
xbest) − m).
bayesopt принимает m в качестве расчетного среднеквадратического отклонения шума. bayesopt оценивает эту вероятность как
где
(x)
Здесь (·) - единичная нормальная CDF, а (Q) - заднее стандартное отклонение гауссова процесса при x.
'lower-confidence-bound' функция обнаружения смотрит на кривую G двумя стандартными отклонениями ниже заднего среднего в каждой точке:
2λ Q (x).
G (x) является 2σQ нижней доверительной огибающей модели целевой функции .bayesopt затем максимизирует негатив G:
мкQ (x).
Иногда время оценки целевой функции может зависеть от региона. Например, многие вычисления поддерживающей векторной машины сильно различаются по времени в определенных диапазонах точек. Если да, bayesopt может получить лучшее улучшение в секунду, используя взвешивание времени в своей функции сбора данных. Взвешенные по затратам функции приобретения имеют следующую фразу: per-second в их именах.
Эти функции сбора данных работают следующим образом. Во время анализа целевой функции, bayesopt поддерживает другую байесовскую модель времени оценки объективной функции как функцию позиции x. Ожидаемое улучшение в секунду, которое использует функция сбора:
мкS (x),
где мкS (x) - заднее среднее временной гауссовой модели процесса.
Чтобы избежать локальной целевой функции минимум, функции сбора данных с plus их имена изменяют их поведение, когда они считают, что они чрезмерно эксплуатируют область. Чтобы понять чрезмерную эксплуатацию, пусть startF (x) - среднеквадратическое отклонение задней целевой функции при x. Пусть λ - заднее среднеквадратичное отклонение аддитивного шума, так что
σQ2 (x) = σF2 (x) + start2.
Определите tλ как значение ExplorationRatio вариант, положительное число. bayesopt plus после каждой итерации вычислять, удовлетворяет ли следующая точка x
startF (x) < t,
Если это так, алгоритм объявляет, что x является чрезмерной эксплуатацией. Затем функция сбора данных изменяет свою функцию ядра, умножая ее на число итераций, как это предлагает Bull [1]. Эта модификация поднимает дисперсию startQ для точек между наблюдениями. Затем он генерирует новую точку на основе новой подгоняемой функции ядра. Если новая точка x снова чрезмерно эксплуатируется, то функция обнаружения умножается на дополнительный коэффициент, равный 10, и пытается снова. Он продолжается таким образом до пяти раз, пытаясь создать точку x, которая не является чрезмерно эксплуатируемой. Алгоритм принимает новое значение x в качестве следующей точки.
ExplorationRatio поэтому контролирует компромисс между изучением новых точек для лучшего глобального решения и концентрацией почти тех точек, которые уже были изучены.
Внутри, bayesopt максимизирует функцию сбора данных, используя следующие общие шаги:
Для алгоритмов, начинающихся с 'expected-improvement' и для 'probability-of-improvement', bayesopt оценивает наименьшее выполнимое среднее из апостериорного распределения мкQ (xbest) путем выборки нескольких тысяч точек в пределах переменных границ, взяв несколько лучших (низкое среднее значение) возможных точек и улучшив их с помощью локального поиска, чтобы найти кажущуюся наилучшую осуществимую точку. Выполнимость означает, что точка удовлетворяет ограничениям (см. Ограничения в байесовской оптимизации).
Для всех алгоритмов bayesopt отбирает несколько тысяч точек в пределах переменных границ, берет несколько лучших (высокая функция обнаружения) возможных точек и улучшает их с помощью локального поиска, чтобы найти кажущуюся лучшую возможную точку. Значение функции приобретения зависит от смоделированного заднего распределения, а не от выборки целевой функции, и поэтому его можно быстро вычислить.
[1] Булл, А. Д. Скорости конвергенции эффективных алгоритмов глобальной оптимизации. https://arxiv.org/abs/1101.3501v3, 2011.
[2] Гельбарт, М., Дж. Снук, Р. П. Адамс. Байесовская оптимизация с неизвестными ограничениями. https://arxiv.org/abs/1403.5607, 2014.
[3] Снук, Дж., Х. Ларошель, Р. П. Адамс. Практическая байесовская оптимизация алгоритмов машинного обучения. https://arxiv.org/abs/1206.2944, 2012.
BayesianOptimization | bayesopt