Если вы читали мой первый пост о байесовской оптимизации, вы обнаружите, что ее можно применять для получения аппроксимации максимума или минимума глобальной функции черного ящика f(x) . Однако это не единственное применение байесовской оптимизации! Не забывайте, что байесовская оптимизация — это не просто алгоритм, а класс методов, которые можно использовать для решения сложных сценариев, подобных тем, которые я представляю в этой статье. В частности, эта статья в значительной степени основана на работе над моей диссертацией [1], поэтому, если вы хотите узнать больше подробностей, пожалуйста, не стесняйтесь прочитать ее и отправить мне электронное письмо с сомнениями или мыслями.

Итак, вот несколько сценариев, в которых вы можете применить модифицированную версию классического байесовского алгоритма оптимизации:

  • Многоцелевые задачи оптимизации с несколькими ограничениями. Очевидно, сюда входят задачи, в которых мы хотим оптимизировать несколько черных ящиков или только один черный ящик при наличии нескольких ограничений. В частности, есть проблемы, связанные с оптимизацией нескольких черных ящиков одновременно. В большинстве случаев эти черные ящики обратно коррелированы. Например, рассмотрим задачу гиперпараметрической настройки алгоритмов машинного обучения. Здесь мы хотим одновременно оптимизировать оценку ошибки обобщения и времени предсказания нейронной сети. Следовательно, существует компромисс: решения, которые минимизируют время прогнозирования нейронной сети, не должны давать низкую оценку ошибки обобщения, и наоборот. Следовательно, решение представляет собой набор конфигураций для гиперпараметров, которые показывают наилучший компромисс для всех целей, называемый набором Парето, который можно найти с помощью новой функции сбора данных [2].
  • Включение целочисленных и категориальных переменных в байесовскую оптимизацию: байесовская оптимизация, как мы видели, работает только с реальными переменными. Однако такие проблемы, как настройка гиперпараметров алгоритмов ML, включают оптимизацию функций целочисленных и категориальных переменных. Например, гиперпараметры глубокой нейронной сети могут включать, помимо скорости обучения, количество слоев, являющееся целочисленной переменной, и функцию активации, являющуюся категориальной переменной. Проблема в том, что байесовская оптимизация обычно использует гауссовский процесс в качестве вероятностной суррогатной модели для построения функции сбора данных на каждой итерации. Более того, большинство ядер гауссовских процессов (модель, которую я объясню в другом посте) и конкретно те, которые используются для BO, предполагают вещественные переменные. Решение состоит в том, чтобы создать преобразование, которое позволяет правильному ядру GP работать с целыми и категориальными переменными [3].
  • Байесовская оптимизация оценивается параллельно. Стандартный алгоритм байесовской оптимизации позволяет каждый раз оценивать только одну возможную конфигурацию. Однако в большинстве случаев это неэффективно, связано с тратой ресурсов, если у вас есть вычислительный кластер, например, где мы можем оценивать несколько точек одновременно. Следовательно, желательно разработать процедуру, позволяющую байесовской оптимизации предоставлять набор точек на каждой итерации для оценки цели.
    В моей диссертации предлагается расширение теоретико-информационного метода для проведения параллельных оценок в ограниченные многокритериальные сценарии [4]. Существует аналогичная настройка, называемая Неблизорукая байесовская оптимизация, где мы оптимизируем не функцию за один шаг, а находим оптимальный ответ задачи за n итераций, который является оптимальным набор решений. Это более эффективно, но требует больших вычислительных затрат.
  • Асинхронная байесовская оптимизация.Как мы уже видели, байесовская оптимизация может предлагать более одной точки одновременно. Но когда мы оцениваем несколько конфигураций нейронной сети, иногда одни настройки обходится дешевле, чем другие. Например, глубокую нейронную сеть, состоящую всего из 2 скрытых слоев, обучить дешевле, чем сеть со 100 скрытыми слоями. Идеальная настройка — это та, которая способна постоянно оценивать конфигурации и не ждать завершения всех конфигураций пакета. Эта идея, однако, сложна для реализации на практике в ограниченном многоцелевом сценарии, но вы можете подождать.

И есть еще настройки! Например, учитывать сложные переменные вместо структурированных данных. Например, оптимизировать фотографию относительно всех возможных фотографий. В этих настройках нам нужно предоставить специальное ядро ​​гауссовского процесса или жизнеспособное преобразование. Мы также можем решать задачи, лежащие в симплексе, а не в гиперкубе (полезно для финансов). Если хотите узнать больше, подписывайтесь и не забывайте развлекаться на работе, пока это возможно!

[1] Гарридо Мерчан, EC (2021). Передовые методы байесовской оптимизации в сложных сценариях.

[2] Гарридо-Мерчан, Э. К., и Эрнандес-Лобато, Д. (2019). Прогнозирующий энтропийный поиск для многокритериальной байесовской оптимизации с ограничениями. Нейрокомпьютинг, 361, 50–68.

[3] Гарридо-Мерчан, Э. К., и Эрнандес-Лобато, Д. (2020). Работа с категориальными и целочисленными переменными в байесовской оптимизации с гауссовыми процессами. Нейрокомпьютинг, 380, 20–35.

[4] Гарридо-Мерчан, Э. К., и Эрнандес-Лобато, Д. (2020). Параллельный прогностический поиск энтропии для многокритериальной байесовской оптимизации с ограничениями. препринт arXiv arXiv:2004.00601.