Байесовская оптимизация - Bayesian optimization
Байесовская оптимизация - это стратегия последовательного проектирования для глобальной оптимизации функций черного ящика , которая не принимает никаких функциональных форм. Обычно он используется для оптимизации дорогостоящих в оценке функций.
История
Этот термин обычно приписывается Йонасу Мокусу и был придуман в его работе из серии публикаций по глобальной оптимизации 1970-х и 1980-х годов.
Стратегия
Байесовская оптимизация обычно используется для задач формы , где - набор точек, принадлежность которых можно легко оценить. Байесовская оптимизация особенно полезна для задач, которые трудно оценить, представляют собой черный ящик с некоторой неизвестной структурой, опираются на менее чем 20 измерений и где производные не оцениваются.
Поскольку целевая функция неизвестна, байесовская стратегия состоит в том, чтобы рассматривать ее как случайную функцию и ставить перед ней априор . Априор фиксирует представления о поведении функции. После сбора оценок функции, которые обрабатываются как данные, апостериор обновляется, чтобы сформировать апостериорное распределение по целевой функции. Апостериорное распределение, в свою очередь, используется для построения функции сбора данных (часто также называемой критерием выборки заполнения), которая определяет следующую точку запроса.
Есть несколько методов, используемых для определения априорного / апостериорного распределения по целевой функции. Два наиболее распространенных метода используют гауссовские процессы в методе, называемом кригингом . Другой менее затратный метод использует оценщик дерева Парзена для построения двух распределений для «высоких» и «низких» точек, а затем находит место, которое максимизирует ожидаемое улучшение.
Стандартная байесовская оптимизация полагается на то, что каждую из них легко оценить, а проблемы, которые отклоняются от этого предположения, известны как экзотические проблемы байесовской оптимизации . Проблемы оптимизации могут стать экзотическими, если известно, что есть шум, оценки выполняются параллельно, качество оценок зависит от компромисса между сложностью и точностью, наличием случайных условий окружающей среды или если оценка включает производные.
Примеры
Примеры функций сбора данных включают вероятность улучшения, ожидаемое улучшение, байесовские ожидаемые потери, верхние доверительные границы (UCB), выборку Томпсона и их гибриды. Все они предлагают компромисс между исследованием и эксплуатацией, чтобы свести к минимуму количество запросов к функциям. Таким образом, байесовская оптимизация хорошо подходит для дорогостоящих функций.
Методы решения
Максимум функции сбора данных обычно находят, прибегая к дискретизации или с помощью вспомогательного оптимизатора. Функции сбора данных обычно хорошо себя ведут и максимизируются с помощью методов численной оптимизации , таких как метод Ньютона или квазиньютоновских методов , таких как алгоритм Бройдена – Флетчера – Гольдфарба – Шанно .
Приложения
Подход был применен для решения широкого круга задач, включая обучение ранжированию , компьютерную графику и визуальный дизайн, робототехнику , сенсорные сети , автоматическую настройку алгоритмов, наборы инструментов автоматического машинного обучения , обучение с подкреплением , планирование, визуальное внимание, конфигурацию архитектуры в глубоком понимании. обучение , статический анализ программ, экспериментальная физика элементарных частиц , химия, дизайн материалов и разработка лекарств.
Смотрите также
использованная литература
внешние ссылки
- GPyOpt , библиотека Python с открытым исходным кодом для байесовской оптимизации на основе GPy .
- Bayesopt , эффективная реализация на C / C ++ с поддержкой Python, Matlab и Octave.
- Spearmint , реализация Python, ориентированная на параллельные и кластерные вычисления.
- SMAC , Java-реализация байесовской оптимизации на основе случайного леса для общей конфигурации алгоритма.
- ParBayesianOptimization , высокопроизводительная параллельная реализация байесовской оптимизации с гауссовскими процессами в R.
- pybo , Python-реализация модульной байесовской оптимизации.
- Bayesopt.m , реализация в Matlab байесовской оптимизации с ограничениями или без них.
- MOE MOE - это реализация на Python / C ++ / CUDA байесовской глобальной оптимизации с использованием гауссовских процессов.
- SigOpt SigOpt предлагает байесовскую глобальную оптимизацию как услугу SaaS, ориентированную на корпоративные сценарии использования.
- Mind Foundry OPTaaS предлагает байесовскую глобальную оптимизацию через веб-сервисы с гибкими ограничениями параметров.
- bayeso , реализация байесовской оптимизации на Python.
- BoTorch , модульная и современная библиотека с открытым исходным кодом на основе PyTorch для исследования байесовской оптимизации с поддержкой GPyTorch .
- GPflowOpt , пакет с открытым исходным кодом на основе TensorFlow для байесовской оптимизации.
- Триесте , с открытым исходным кодом байесовских оптимизаций инструментов , построенные на TensorFlow и GPflow .