Красота байесовской оптимизации, объясненная простыми словами

Интуиция, лежащая в основе гениального алгоритма

Вот функция: f (x). Вычислить дорого, необязательно аналитическое выражение, и вы не знаете его производной.

Ваша задача: найти глобальные минимумы.

Это, безусловно, сложная задача, на одну сложнее других задач оптимизации в рамках машинного обучения. Например, градиентный спуск имеет доступ к производным функции и использует преимущества математических сокращений для более быстрого вычисления выражений.

В качестве альтернативы, в некоторых сценариях оптимизации оценка функции обходится дешево. Если мы можем получить сотни результатов для вариантов ввода x за несколько секунд, простой поиск по сетке может дать хорошие результаты.

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

К сожалению, в текущей задаче такой роскоши нет. Мы ограничены в нашей оптимизации несколькими направлениями, а именно:

  • Подсчитывать дорого. В идеале мы могли бы запросить функцию достаточно, чтобы практически воспроизвести ее, но наш метод оптимизации должен работать с ограниченной выборкой входных данных.
  • Производная неизвестна. Есть причина, по которой градиентный спуск и его разновидности по-прежнему остаются самыми популярными методами глубокого обучения, а иногда и других алгоритмов машинного обучения. Знание производной дает оптимизатору представление о направлении - у нас этого нет.
  • Нам нужно найти глобальные минимумы, что является сложной задачей даже для такого сложного метода, как градиентный спуск. Наша модель каким-то образом нуждается в механизме, чтобы избежать попадания в локальные минимумы.

Решение: байесовская оптимизация, которая обеспечивает элегантную основу для решения проблем, которые напоминают описанный сценарий поиска глобального минимума за наименьшее количество шагов.

Давайте построим гипотетический пример функции c (x) или стоимости модели с учетом некоторого ввода x. Конечно, внешний вид функции будет скрыт от оптимизатора; это истинная форма c (x). На жаргоне это называется «целевая функция».

Байесовская оптимизация подходит к этой задаче с помощью метода, известного как суррогатная оптимизация. Для контекста суррогатная мать - это женщина, которая соглашается родить ребенка от другого человека - в этом контексте суррогатная функция является приближением целевой функции.

Суррогатная функция формируется на основе точек выборки.

Основываясь на суррогатной функции, мы можем определить, какие точки являются многообещающими минимумами. Мы решили взять больше образцов из этих многообещающих регионов и соответствующим образом обновить суррогатную функцию.

На каждой итерации мы продолжаем изучать текущую суррогатную функцию, узнавать больше об областях интереса с помощью выборки и обновлять функцию. Обратите внимание, что суррогатная функция будет математически выражена таким образом, что ее оценка будет значительно дешевле (например, y=x будет приближением для более дорогостоящей функции, y=arcsin((1-cos²x)/sin x) в определенном диапазоне).

После определенного числа итераций нам суждено достичь глобального минимума, если только форма функции не очень причудливой (в том смысле, что она имеет большие и дикие колебания вверх и вниз), при которых Лучше задать вопрос, чем оптимизация: что не так с вашими данными?

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

Это суррогатный подход к оптимизации. Так что же делает его байесовским?

Суть байесовской статистики и моделирования заключается в обновлении априорной (предыдущей) веры в свете новой информации для создания обновленной апостериорной (после) веры. Именно это и делает в данном случае суррогатная оптимизация, поэтому ее лучше всего представить через байесовские системы, формулы и идеи.

Давайте подробнее рассмотрим суррогатные функции, которые обычно представлены гауссовскими процессами, которые можно представить как бросок игральных костей, который возвращает функции, соответствующие заданным точкам данных (например, sin, log) вместо чисел от 1 до 6. Процесс возвращает несколько функций, к которым привязаны вероятности.

Эта статья Оскара Кнагга дает хорошее представление о том, как работают врачи общей практики.

Есть веская причина, по которой гауссовские процессы, а не какой-либо другой метод аппроксимации кривой, используется для моделирования суррогатной функции: он является байесовским по своей природе. GP - это распределение вероятностей, подобное распределению конечных результатов события (например, 1/2 шанса подбрасывания монеты), но по всем возможным функциям.

Например, мы можем определить текущий набор точек данных как 40% представимых функцией a (x), 10% функцией b (x) и т. д. Представляя суррогатную функцию в виде распределения вероятностей, она может быть обновлена ​​новой информацией с помощью изначально вероятностных байесовских процессов. Возможно, когда вводится новая информация, данные могут быть представлены функцией a (x) только на 20%. Эти изменения регулируются формулами Байеса.

Это было бы сложно или даже невозможно сделать, скажем, с помощью полиномиальной регрессии, подходящей к новым точкам данных.

Суррогатная функция - представленная в виде распределения вероятностей, априорная - обновляется «функцией приобретения». Эта функция отвечает за предложение новых точек для тестирования при поиске и разработке компромисса:

  • Эксплуатация направлена ​​на выборку, в которой суррогатная модель предсказывает хорошую цель. Это использование известных многообещающих точек. Однако, если мы уже достаточно исследовали определенный регион, постоянное использование известной информации мало что даст.
  • Исследование направлено на отбор проб в местах с высокой степенью неопределенности. Это гарантирует, что ни одна крупная область космоса не останется неисследованной - глобальные минимумы могут оказаться там.

Функция сбора данных, которая поощряет слишком много эксплуатации и слишком мало исследований, приведет к тому, что модель будет располагать только минимумы, которые она находит первой (обычно локальные - «идти только там, где есть свет»). Функция приобретения, которая поощряет противоположное, не будет оставаться в минимуме, локальном или глобальном, в первую очередь. Дает хорошие результаты при хрупком балансе.

Функция сбора данных, которую мы обозначим a (x), должна учитывать как эксплуатацию, так и разведку. Общие функции сбора данных включают ожидаемое улучшение и максимальную вероятность улучшения, каждая из которых измеряет вероятность того, что конкретный ввод может окупиться в будущем с учетом информации о предшествующем (гауссовский процесс).

Давайте сложим по кусочкам. Байесовская оптимизация может выполняться как таковая:

  1. Инициализировать предварительное распределение «суррогатной функции» гауссовского процесса.
  2. Выберите несколько точек данных x так, чтобы функция сбора данных a (x), работающая с текущим предварительным распределением, была максимальной.
  3. Оцените точки данных x в функции целевой стоимости c (x) и получите результаты y.
  4. Обновите предварительное распределение гауссовского процесса новыми данными для получения апостериорного распределения (которое станет апостериорным на следующем шаге).
  5. Повторите шаги 2–5 для нескольких итераций.
  6. Интерпретируйте текущее распределение гауссовского процесса (что очень дешево), чтобы найти глобальные минимумы.

Байесовская оптимизация заключается в том, чтобы положить в основу идеи суррогатной оптимизации вероятностные идеи. Комбинация этих двух идей создает мощную систему с множеством приложений, от разработки фармацевтических продуктов до автономных транспортных средств.

Однако чаще всего в машинном обучении байесовская оптимизация используется для оптимизации гиперпараметров. Например, если мы обучаем классификатор повышения градиента, есть десятки параметров, от скорости обучения до максимальной глубины и минимального значения разделения примесей. В этом случае x представляет гиперпараметры модели, а c (x) представляет производительность модели с учетом гиперпараметров х.

Основная причина использования байесовской оптимизации заключается в сценариях, в которых очень дорого оценивать результат. Во-первых, необходимо построить целый ансамбль деревьев с параметрами, а во-вторых, они должны выполнить несколько прогнозов, что дорого для ансамблей.

Возможно, нейронная сеть оценивает потери для заданного набора параметров быстрее: просто повторное умножение матриц, что очень быстро, особенно на специализированном оборудовании. Это одна из причин, по которой используется градиентный спуск, который заставляет повторять запросы, чтобы понять, куда он идет.

В итоге:

  • Суррогатная оптимизация использует суррогатную или аппроксимативную функцию для оценки целевой функции посредством выборки.
  • Байесовская оптимизация помещает суррогатную оптимизацию в вероятностную структуру, представляя суррогатные функции как распределения вероятностей, которые могут обновляться в свете новой информации.
  • Функции сбора данных используются для оценки вероятности того, что исследование определенной точки в космосе принесет «хороший» доход с учетом того, что в настоящее время известно из предшествующих, сбалансированных исследований и эксплуатации.
  • Используйте байесовскую оптимизацию в первую очередь, когда оценка целевой функции требует больших затрат, что обычно используется при настройке гиперпараметров. (Для этого существует множество библиотек, таких как HyperOpt.)

Спасибо за прочтение!



Все изображения созданы автором, если не указано иное.