Байесовская оптимизация - 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 .