Исследование Байесовской Оптимизации

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Разбиение Байесовской оптимизации на небольшие, значительные куски.

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

Добыча Золота!

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

Предположим, что распределение золота f(x)f(x)f (x ) выглядит примерно так, как показано ниже. Он является бимодальным, с максимальным значением около x=5x = 5x = 5 . А пока давайте не будем беспокоиться о единицах оси X или оси Y.

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

Сейчас мы обсуждаем две общие цели для решения проблемы добычи золота.

  • Задача 1: наилучшая оценка распределения золота (активное обучение)
    В этой задаче мы хотим точно оценить распределение золота на новых землях. Мы не можем бурить в каждом месте из-за непомерно высокой стоимости. Вместо этого мы должны бурить в местах, обеспечивающих высокую информацию о распределении золота. Эта проблема сродни к активное обучение .

  • Задача 2: Определение местоположения максимума золота (байесовская оптимизация)
    В этой задаче мы хотим найти место максимального содержания золота. Мы, опять же, не можем бурить в каждом месте. Вместо этого мы должны бурить в местах, показывающих многообещающее содержание золота. Эта проблема сродни к Байесовская Оптимизация .

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

активное обучение

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

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

Поскольку мы знаем истинное значение нашей функции только в нескольких точках, нам нужна суррогатная модель для значений, которые наша функция принимает в другом месте. Этот суррогат должен быть достаточно гибким, чтобы моделировать истинную функцию. Использование гауссовского процесса (GP) является общим выбором, как из-за его гибкости, так и из-за его способности давать нам оценки неопределенности Гауссовский процесс поддерживает настройку Приоров с помощью конкретных ядер и средних функций. Можно было бы посмотреть на эту отличную дистиллированную статью о гауссовых процессах подробнее узнать.

Пожалуйста, найдите это удивительное видео от Javier Gonz?lez на процессах Gaussian. .

Наша суррогатная модель начинается с априора f(x)f(x)f (x ) — в случае золота мы выбираем априор, предполагая, что он равномерно распределен Особенности: мы используем ядро Matern 5/2 из-за его свойства отдавать предпочтение дважды дифференцируемым функциям. Смотрите Rasmussen and Williams 2004 и scikit-learn , для получения подробной информации о ядре Matern. . По мере того, как мы оцениваем точки (бурение), мы получаем больше данных для нашего суррогата, чтобы учиться, обновляя его в соответствии с правилом Байеса.

Каждая новая точка данных обновляет нашу суррогатную модель, приближая ее к основной истине. Черная линия и затененная серая область указывают на среднее (?)(mu)(? ) и неопределенность (?±?)(mu pm sigma)( ? ± ?) в нашей оценке распределения золота до и после бурения.

В приведенном выше примере мы начали с однородной неопределенности. Но после нашего первого обновления задняя часть точно находится вблизи x=0.5x = 0.5x = 0 .5 и неуверенный прочь от него. Мы могли бы просто продолжать добавлять больше учебных точек и получать более точную оценку f(x)f(x)f ( x ) .

Однако мы хотим свести к минимуму количество оценок. Таким образом, мы должны выбрать следующую точку запроса “Бойко”, используя активное обучение. Хотя есть много способов выбрать умные точки,мы будем выбирать самый неопределенный.

Это дает нам следующую процедуру для активного обучения:

  1. Выберите и добавьте точку с наибольшей неопределенностью в обучающий набор (путем запроса / надписывания этой точки)
  2. Тренируйтесь на новом тренажере
  3. Перейти к #1 до конвергенции или бюджета истекло

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

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

Байесовская Оптимизация

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

Это ключевой вопрос в Байесовской оптимизации: "основываясь на том, что мы знаем до сих пор, какую точку мы должны оценить дальше?"Помните, что оценка каждого пункта стоит дорого, поэтому мы хотим, чтобы выбрать тщательно! В случае активного обучения мы выбрали самую неопределенную точку, исследуя функцию. Но в Байесовской оптимизации нам нужно сбалансировать исследование неопределенных регионов, которые могут неожиданно иметь высокое содержание золота, против сосредоточения внимания на регионах, которые мы уже знаем, имеют более высокое содержание золота (вид эксплуатации).

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

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

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

Формализация Байесовской Оптимизации

Давайте теперь формально введем байесовскую оптимизацию. Наша цель-найти местоположение (x?Rd{x in mathbb{R}^d}x ? R d), соответствующее глобальному максимуму (или минимуму) функции f:Rd?Rf: mathbb{R}^d mapsto mathbb{R}f : R d ? R. Мы представляем общие ограничения в Байесовской оптимизации и сравниваем их с ограничениями в нашем примере золотодобычиРаздел ниже основан на слайдах / разговоре Питера Фрейзера из Uber по Байесовской оптимизации:

.

Общие Ограничения

Ограничения в области добычи золота пример

ffF ' S допустимое множество AAa просто, например, ограничения коробки.Нашей областью в задаче золотодобычи является одномерное коробчатое ограничение: 0<=x<=60 leq x leq 60 <= x <= 6 .
fff является непрерывным, но не имеет специальной структуры, например, вогнутость,что позволит легко оптимизировать.Наша истинная функция не является ни выпуклой, ни вогнутой функцией, что приводит к локальным оптимумам.
fff не содержит производных: оценки не дают никакой информации о градиенте.Наша оценка (путем бурения) количества содержания золота в местоположении не дала нам никакой информации о градиенте.
fff дорого оценить: количество раз, когда мы можем оценить его сильно ограничен.Бурение стоит дорого.
fff может быть шумным. Если шум присутствует, мы будем считать, что он независим и нормально распределен, с общей, но неизвестной дисперсией.Мы предполагаем, что бесшумные измерения в нашем моделировании (хотя, легко включить нормально распределенный шум для регрессии GP).

Чтобы решить эту проблему, мы будем следовать следующему алгоритму:

  1. Сначала мы выбираем суррогатную модель для моделирования истинной функции fff и определяем ее предшествующую .
  2. Учитывая множество наблюдений (оценок функций), используйте правило Байеса, чтобы получить заднюю часть .
  3. Используйте функцию приема ?(x)alpha(x)? ( x ) , которая является функцией задней части, чтобы решить следующую точку выборки xt=argmaxx?(x)x_t = ext{argmax}_x alpha(x)x t= argmax xa (x ) .
  4. Добавьте новые выборочные данные в набор наблюдений и выполните шаг Гото #2 до завершения конвергенции или бюджета.

Функции Приобретения

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

Вероятность улучшения (PI)

Эта функция приобретения выбирает следующую точку запроса как ту, которая имеет наибольшую вероятность улучшения по сравнению с текущим max f(x+)f(x^+)f (x + ) . Математически мы пишем выбор следующей точки следующим образом,

xt+1=argmax(?PI(x))=argmax(P(f(x))>=(f(x+)+?))x_{t+1} = ext{argmax}(alpha_{PI}(x)) = ext{argmax}(P(f(x)) geq (f(x^+) +epsilon))x t + 1= argmax (? P I (x)) = argmax ( P ( f (x)) >= (f (x +) + ? ))

где,

  • P(?)P(cdot)P ( ? ) указывает на вероятность
  • ?epsilon?-это небольшое положительное число
  • И, x+=argmaxxi?x1:tf(xi) x^+ = ext{argmax}_{x_i in x_{1:t}}f(x_i)x + = argmax x i? x 1: tf ( x i), где xix_ix i-местоположение, запрошенное на ithi^{th}I-м шаге времени.

Присмотревшись внимательнее, мы просто находим вероятность верхнего хвоста (или CDF) суррогатной задней части. Кроме того, если мы используем GP в качестве суррогата, выражение выше преобразуется в,

xt+1=argmaxx?(?t(x)-f(x+)-??t(x))x_{t+1} = argmax_x Phileft(frac{mu_t(x) - f(x^+) - epsilon}{sigma_t(x)} ight)x t + 1= A r g m A x x? ( ? t (x ) ? t (x ) - f (x + ) - ?)

где,

  • ?(?)Phi(cdot)? ( ? ) указывает на CDF

На приведенной ниже визуализации показан расчет ?PI(x)alpha_{PI}(x)? P I (x ) . Оранжевая линия представляет текущий max (плюс an ? epsilon?) или f(x+)+? f(x^+) + epsilonf ( x+) + ? . Фиолетовая область показывает плотность вероятности в каждой точке. Серые области показывают плотность вероятности ниже текущей максимальной. “Площадь "фиолетовой области в каждой точке представляет собой " вероятность улучшения по сравнению с текущим максимумом". Следующая точка для оценки с помощью критерия PI (показана пунктирной синей линией) - x=6x = 6x = 6 .

Интуиция позади ?epsilon? в ПИ

PI использует ?epsilon? для достижения баланса между разведкой и эксплуатацией. Увеличение ?epsilon? приводит к запросу местоположений с большим ?sigma? По мере распространения их плотности вероятности.

Давайте теперь посмотрим на функцию сбора PI в действии. Начнем с ?=0.075epsilon=0.075? = 0 .075.

Глядя на график выше, мы видим, что мы достигаем глобальных максимумов за несколько итерацийСвязи рвутся случайным образом.. Наш суррогат обладает большой неопределенностью в x?[2,4]x in [2, 4]x ? [ 2, 4 ] в первых нескольких итерацияхДоля неопределенности определяется серой полупрозрачной областью.. Функция приобретения первоначально эксплуатирует регионы с большими перспективамиТочки в окрестности текущих максимумов, что приводит к высокой неопределенности в области x?[2,4]x in [2, 4]x ? [ 2 , 4 ] . Это наблюдение также показывает, что нам не нужно строить точную оценку функции черного ящика, чтобы найти ее максимум.

Приведенная выше визуализация показывает, что увеличение ?epsilon? до 0,3 позволяет нам исследовать больше. Однако, похоже, что мы исследуем больше, чем требуется.

Что произойдет, если мы увеличим ?epsilon? немного больше?

Мы видим, что сделали только хуже! Наша модель теперь использует ?=3epsilon = 3? = 3, и мы не можем эксплуатировать, когда мы приземляемся рядом с глобальным максимумом. Кроме того, с высокой разведкой, установка становится похожей на активное обучение.

Наши быстрые эксперименты выше помогают нам сделать вывод, что ?epsilon? контролирует степень разведки в функции сбора PI.

Ожидаемое улучшение (EI)

Вероятность улучшения только смотрела на то, насколько вероятно это улучшение, но, не рассматривала, насколько мы можем улучшить. Следующий критерий, называемый ожидаемым улучшением (EI), делает именно этоХорошим введением в ожидаемую функцию приобретения улучшения является этот пост Томаса Хуйскенса, а эти слайды-Питера Фрейзера! Идея довольно проста-выберите следующую точку запроса как ту, которая имеет наибольшее ожидаемое улучшение по сравнению с текущим max f(x+)f(x^+)f ( x + ) , где x+=argmaxxi?x1:tf(xi) x^+ = ext{argmax}_{x_i in x_{1:t}}f(x_i)x + = argmax x i? x 1 : tf (x i) и xix_ix i-это местоположение, запрашиваемое на ithi^{th}i-м временном шаге.

В этой функции приема t+1tht + 1^{th}T + 1 t h query point, xt+1x_{t+1}x t + 1, выбирается в соответствии со следующим уравнением.

xt+1=argminxE(||ht+1(x)-f(x?)|| | Dt) x_{t+1} = argmin_x mathbb{E} left( ||h_{t+1}(x) - f(x^star) || | mathcal{D}_t ight) x t + 1= A r g m i n xE (| |H T + 1( x) - f ( x?) | |  |  d t)

Где ffФ - фактический наземных функции, ht+1h_{t+1}ЧТ+1 - это задний среднее суррогат на t+1tht+1^{th}Т+1тч выместив, Dtmathcal{D}_tДт ,- подготовка данных {(xi,f(xi))} ?x?x1:t{(x_i, f(x_i))} forall x in x_{1:t}{(х, я,Ф(ХЯ))} ?х?х1:т и x?x^starХ? является фактическое положение, в котором ffе принимает максимальное значение.

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

xt+1=argmaxxE(max{0, ht+1(x)-f(x+)} | Dt) x_{t+1} = argmax_x mathbb{E} left( {max} { 0, h_{t+1}(x) - f(x^+) } | mathcal{D}_t ight) x t + 1= A r g m A x xE (m a x { 0,  h t + 1 (x) - f (x + ) }  |  D t)

где f(x+)f(x^+)f (x+) - максимальное значение, которое было найдено до сих пор. Это уравнение для суррогата GP является аналитическим выражением, показанным ниже.

EI(x)={(?t(x)-f(x+)-?)?(Z)+?t(x)?(Z),if ?t(x)>00if ?t(x)=0 EI(x)= egin{cases} (mu_t(x) - f(x^+) - epsilon)Phi(Z) + sigma_t(x)phi(Z), & ext{if} sigma_t(x) > 0 0 & ext{if} sigma_t(x) = 0 end{cases} Ея(х)={(?Т(Х)-ф(х+)-?)?(з)+?т(х)?(з),0, если ?т(х)>0, если ?т(х)=0 Z=?t(x)-f(x+)-??t(x)Z= frac{mu_t(x) - f(x^+) - epsilon}{sigma_t(x)}для Z=?т(х)?Т(Х)-ф(х+)-?

где ?(?)Phi(cdot)? ( ? ) обозначает CDF, а ?(?)phi(cdot)? ( ? ) обозначает pdf.

Из приведенного выражения видно, что ожидаемое улучшение будет высоким, когда: i) ожидаемое значение ?t(x)-f(x+)mu_t(x) - f(x^+)? t( x ) - f ( x + ) высоко, или, ii) когда неопределенность ?t(x)sigma_t(x)? t( x ) вокруг точки высока.

Как и функция приобретения PI, мы можем умерить объем исследования функции приобретения EI, изменив ?epsilon? .

Для ?=0.01epsilon = 0.01? = 0 .0 1 мы приближаемся к глобальным максимумам за несколько итераций.

Теперь мы увеличиваем ?epsilon?, чтобы исследовать больше.

Как мы и ожидали, увеличиваем значение до ?=0.3epsilon = 0.3? = 0 .3 делает функцию приобретения исследовать больше. По сравнению с предыдущими оценками, мы видим меньше эксплуатации. Мы видим, что он оценивает только две точки вблизи глобальных максимумов.

Давайте увеличим ?epsilon? еще больше.

Это лучше, чем раньше? Получается и да, и нет. Мы видим, что здесь мы делаем слишком много исследований, учитывая значение ?=3epsilon = 3? = 3 . Мы быстро достигаем близко к глобальным максимумам, но, к сожалению, не эксплуатируем, чтобы получить больше выигрышей вблизи глобальных максимумов.

PI vs Ei

Мы видели два тесно связанных метода, вероятность улучшения и ожидаемое улучшение .

На точечной диаграмме выше показаны функции приобретения политик, оцененные по различным точкамКаждая точка - это точка в пространстве поиска. Кроме того, обучающий набор, используемый при создании графика, состоит только из одного наблюдения (0.5,f(0.5))(0.5, f(0.5))( 0 .5, f ( 0 .5)). Мы видим, что ?EIalpha_{EI}? E I и ?PIalpha_{PI}? P I достигают максимума 0,3 и около 0,47 соответственно. Выбор точки с низким ?PIalpha_{PI}? P I и высоким ?EIalpha_{EI}? E I приводит к высокому рискуТак как "вероятность улучшения" невелика и высокая наградаПоскольку " ожидаемое улучшение” является высоким. В случае, если несколько точек имеют одинаковый ?EIalpha_{EI}? E I, мы должны установить приоритет точки с меньшим риском (более высокий ?PIalpha_{PI}? P I). Аналогично, когда риски одинаковы (одинаковые ?PIalpha_{PI}? P I) для любых двух точек, мы должны выбрать точку с большим вознаграждением (более высокое ?EIalpha_{EI}? E I).

Томпсон Сэмплинг

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

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

Мы можем понять интуицию, стоящую за выборкой Томпсона, по двум наблюдениям:

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

    Например, три выборки (выборка № 1, № 2, № 3) показывают высокую дисперсию, близкую к x=6x=6x = 6 . Оптимизация образца 3 поможет в разведке путем оценки x=6x=6x = 6 .

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

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

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

Случайный

До сих пор мы использовали интеллектуальные функции сбора данных. Мы можем создать функцию случайного сбора данных путем выборки xxx случайным образом.

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

Резюме функций приобретения

Теперь давайте обобщим основные идеи, связанные с функциями приобретения: i) они являются эвристиками для оценки полезности точки; ii) они являются функцией суррогатной задней части; iii) они сочетают разведку и эксплуатацию; и iv) они недороги для оценки.

Другие Функции Приобретения

Мы видели различные функции приобретения до сих пор. Один тривиальный способ придумать функции приобретения - это иметь комбинацию explore / exploit.

Верхняя доверительная граница (UCB)

Одной из таких тривиальных функций приобретения, которая сочетает в себе компромисс между разведкой и эксплуатацией, является линейная комбинация среднего и неопределенности нашей суррогатной модели. Среднее значение модели означает использование (знаний нашей модели), а неопределенность модели означает исследование (из-за отсутствия наблюдений в нашей модели). ?(x)=?(x)+?x?(x)alpha(x) = mu(x) + lambda imes sigma(x)?(x)=?(x)+?x?(x)

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

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

Вероятность улучшения + ? xlambda imes?  x ожидаемое улучшение (EI-PI)

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

Верхняя доверительная граница гауссовского процесса (GP-UCB)

Прежде чем говорить о GP-UCB, давайте быстро поговорим о сожалении . Представьте, что если максимальное золото было aaединицами измерения, а наша оптимизация вместо этого пробует местоположение, содержащее b<ab < aB< A единиц, то наше сожаление состоит в том, что a-ba - bа-б . Если мы накапливаем сожаление в течение nnn итераций, мы получаем то, что называется кумулятивным сожалением.
GP-UCB's формулировка дается по формуле::

GP-UCB(x)=?t(x)+?t?t(x) alpha_{GP-UCB}(x) = mu_t(x) + sqrt{eta_t}sigma_t(x) ? G P-U C B (x ) = ? t (x ) + ? t? t( x)

Где ttt-шаг по времени.

Сринивас и др. Аль. разработали график для ?eta?, который они теоретически демонстрируют, чтобы свести к минимуму кумулятивное сожаление.

Сравнение

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

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

Настройка Гиперпараметра

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

?^ridge=argmin? ? Rp?i=1n(yi-xiT?)2+??j=1p?j2 hat{ heta}_{ridge} = argmin_{ heta in mathbb{R}^p} sumlimits_{i=1}^{n} left(y_i - x_i^T heta ight)^2 + lambda sumlimits_{j=1}^{p} heta^2_j ?^РЯДГЕ=Аргмян? ? рпя=1?н(ГЯ-хяТ?)2+?J в=1?п?J в2

В регрессии хребта весовая матрица ? heta? является параметром, а коэффициент регуляризации ?>=0lambda geq 0? >= 0-гиперпараметром.
Если мы решим вышеуказанную регрессионную задачу с помощью оптимизации градиентного спуска, мы дополнительно введем еще один параметр оптимизации-скорость обучения ?alpha? .

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

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

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

Пример 1-машина вектора поддержки (SVM)

В этом примере мы используем SVM для классификации в наборе данных sklearn's moons и используем байесовскую оптимизацию для оптимизации гиперпараметров SVM.

  • ?gamma?-изменяет поведение ядра SVM. Интуитивно это является мерой влияния одного обучающего примераОтвет StackOverflow для интуиции за гиперпараметрами..
  • CCC-изменяет слабость классификации, чем выше CCC, тем более чувствительным является SVM по отношению к шуму.

Давайте теперь посмотрим на набор данных, который имеет два класса и два объекта.

Давайте применим байесовскую оптимизацию, чтобы узнать лучшие гиперпараметры для этой задачи классификации Примечание: поверхностные графики, которые вы видите для приведенной ниже точности наземной истины, были рассчитаны для каждого возможного гиперпараметра только для демонстрации целей. У нас нет этих значений в реальных приложениях. . Оптимальные значения для < C, ?C, gammaC,  ? > были найдены путем выполнения поиска сетки с высокой степенью детализации.

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

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

Сравнение

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

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

остальные примеры

Пример 2-Случайный Лес

Использование Байесовской оптимизации в классификаторе случайных лесов.

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

Параметры случайного леса - это индивидуальные обученные модели деревьев решений.

Мы снова будем использовать Гауссовские процессы с ядром Matern для оценки и прогнозирования функции точности по двум гиперпараметрам.

Выше приведен типичный Байесовский прогон оптимизации с вероятностью улучшения функции приема.

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

Теперь при оптимизации гиперпараметров используется функция получения верхней доверительной границы гауссовых процессов.

Давайте теперь использовать функцию случайного сбора.

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

Пример 3-Нейронные Сети

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

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

  • batch_size-этот гиперпараметр задает количество обучающих примеров для объединения, чтобы найти градиенты для одного шага в градиентном спуске.
    Наше пространство поиска возможных размеров пакетов состоит из целых значений s. t. batch_size = 2i ? 2<=i<=7 & i?Z2^i forall 2 leq i leq 7 & i in mathbb{Z}2 i  ?  2 <= i <= 7  &  i ? Z .
  • скорость обучения-этот гиперпараметр задает размер шага, с которым мы будем выполнять градиентный спуск в нейронной сети.
    Мы будем искать по всем вещественным числам в диапазоне [10-6, 1][10^{-6}, 1][ 1 0-6,  1].
  • активация-у нас будет одна категориальная переменная, т. е. активация, применяемая к нашим слоям нейронной сети. Эта переменная может принимать значения в множестве {relu, sigmoid}{ relu, sigmoid }{ r e l u,  s i g m o I d } .

log_batch_size = целое число( низкий уровень=2, высокий=7, name= 'log_batch_size' ) lr = реальный( низкий уровень=1e-6, high=1e0, prior= 'log-uniform', имя= 'lr' ) активация = категориальная( категории=['relu', 'sigmoid'], name='активация' ) размеры = [ dim_num_batch_size_to_base, dim_learning_rate, dim_activation ]

Now import gp-minimizeNote: One will need to negate the accuracy values as we are using the minimizer function from scikit-optim. from scikit-optim to perform the optimization. Below we show calling the optimizer using Expected Improvement, but of course we can select from a number of other acquisition functions.

# setting up default parameters (1st point) default_parameters = [4, 1e-1, 'relu'] # bayesian optimization search_result = gp_minimize( func=train, dimensions=dimensions, acq_func='EI', # Expected Improvement. n_calls=11, x0=default_parameters )

In the graph above the y-axis denotes the best accuracy till then, (f(x+))left( f(x^+) ight)(f(x+)) and the x-axis denotes the evaluation number.

Looking at the above example, we can see that incorporating Bayesian Optimization is not difficult and can save a lot of time. Optimizing to get an accuracy of nearly one in around seven iterations is impressive!The example above has been inspired by Hvass Laboratories’ Tutorial Notebook showcasing hyperparameter optimization in TensorFlow using scikit-optim.

Let us get the numbers into perspective. If we had run this optimization using a grid search, it would have taken around (5x2x7)(5 imes 2 imes 7)(5x2x7) iterations. Whereas Bayesian Optimization only took seven iterations. Each iteration took around fifteen minutes; this sets the time required for the grid search to complete around seventeen hours!

Заключение и резюме

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

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


Источник: distill.pub

Комментарии: