Введение в настройку гиперпараметров и две самые популярные техники

Содержание

- "Введение"

- Поиск по сетке против байесовской оптимизации

-"Краткое содержание"

-"Использованная литература"

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

Введение

Гиперпараметры — это параметры, которые задаются перед фактической тренировкой для управления процессом обучения. Дерево решений требует ограничения на максимальное количество узлов дерева; полиномиальная регрессия полиномиальная степень обученной модели; регрессия опорного вектора ядра, параметр регуляризации C и предел допуска ϵ. Все эти параметры влияют на процесс обучения и, следовательно, на производительность полученной модели.

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

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

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

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

С циклом for мы могли бы выполнить следующие шаги для каждого возможного гиперпараметра и сохранить результаты каждого запуска в списке:

  1. Определите алгоритм полиномиальной регрессии с указанным значением гиперпараметра
  2. Постройте модель (используя набор данных поезда)
  3. Оцените модель (используя набор данных проверки или тестирования)

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

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

Чтобы уменьшить вычислительную мощность, необходимую для поиска оптимальных настроек гиперпараметров, байесовская оптимизация использует теорему Байеса. Проще говоря, теорема Байеса используется для расчета вероятности события на основе его связи с другим событием [Hel19].

Таким образом, если мы знаем вероятность наблюдения события А и В независимо друг от друга (так называемая априорная вероятность) и вероятность события В при условии, что А истинно (так называемая условная вероятность), мы можем вычислить вероятность события A при условии, что B истинно (условная вероятность), следующим образом:

Популярным применением теоремы Байеса является обнаружение болезней. Для экспресс-тестов интересует, насколько высока фактическая вероятность того, что человек с положительным результатом теста действительно болен. [Фах16]

В контексте оптимизации гиперпараметров мы хотели бы предсказать распределение вероятностей значения потерь для любой возможной комбинации гиперпараметров в определенном пространстве гиперпараметров. С помощью некоторых рассчитанных «истинных» значений функции потерь мы хотели бы смоделировать функцию функции потерь во всем пространстве гиперпараметров — результирующая модельная функция представляет собой так называемую суррогатную функцию. . Для нашего примера мы могли бы рассчитать результирующие потери для степени полинома 2, 8 и 16 и использовать регрессионный анализ для обучения функции, которая аппроксимирует потери по всему пространству гиперпараметров от 1 до 20.

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

В регрессии гауссовского процесса результирующая модель обеспечивает не только приближение истинной функции (средняя функция гауссовского процесса), но также измерение неопределенности (ковариации) модели для каждого x. Проще говоря, чем меньше стандартное отклонение (здесь: серый фон) в точке функции, тем точнее модель в том, что среднее значение (здесь: черная кривая) представляет собой хорошее приближение к реальному значению потерь. Если кто-то хочет повысить точность аппроксимации, мы можем просто увеличить размер обучающего набора данных. Поскольку мы можем специально выбрать некоторые комбинации гиперпараметров и рассчитать результирующие потери модели, стоит сначала подумать, какая точка выборки, вероятно, приведет к максимальному улучшению модели. Популярный способ найти следующую точку выборки — использовать неопределенность модели в качестве основы для принятия решения.

Эти и подобные соображения отражены в функции сбора данных, которая является основой для выбора следующей точки (точек) выборки.

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

Поиск по сетке и байесовская оптимизация

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

Целевая переменная: MEDV — средняя стоимость домов, занимаемых владельцами, в 1000 долларов США.

Независимая переменная: LSTAT — % более низкий статус населения

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

Регрессия опорных векторов — как это работает

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

Функциональность P_xi регрессии опорных векторов (SVR) основана на машине опорных векторов (SVM). По сути, мы ищем линейную функцию:

⟨w, x⟩ описывает векторное произведение. Цель регрессии SV состоит в том, чтобы найти прямую линию в качестве модели для точек данных, тогда как параметры прямой линии должны быть определены таким образом, чтобы линия была максимально «плоской». Этого можно добиться минимизацией нормы: [Wei18][Ber85]

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

На рисунке выше показано «наказание» за отклонения, превышающие величину ϵ, с использованием линейной функции потерь. Функция потерь называется ядром. Помимо линейного ядра, часто используются полиномиальное или RBF-ядро. [Smo04][Yu12][Bur98] Таким образом, формулировка по Вапнику следующая:

Оценка производительности модели

Чтобы оценить производительность модели при различных настройках гиперпараметров, необходимо определить подходящую функцию потерь. Часто используемой функцией стоимости L(f,x,y) для задач регрессии является средняя квадратичная ошибка (MSE):

где f=A(D) представляет функцию/модель, возвращаемую алгоритмом A при обучении на наборе данных поезда D=z_1,z_2,…,z_k. z описывает экземпляры обучающего набора данных, который использовался для обучения модели f=A(D). Переменная x описывает гиперпараметры. y — наблюдаемые значения прогнозируемой переменной. С точки зрения оптимизации гиперпараметров наблюдаемые значения представляют собой рассчитанные потери (например, среднеквадратическая ошибка).

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

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

Таким образом, набор данных разбит на K подмножеств. После этого K−1 подмножеств используются в качестве обучающего набора данных, один для проверки. После построения модели вычисляется MSE для набора проверочных данных. Эта процедура повторяется до тех пор, пока каждое подмножество не будет использовано один раз в качестве набора данных проверки.

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

Если вы используете модуль sklearn sklearn.model_selection.cross_val_score и хотите использовать MSE в качестве параметра оценки, вы заметите, что можно выбрать только отрицательную MSE. Это связано с единообразным соглашением о попытке максимизировать баллы во всех случаях. Следовательно, функции стоимости всегда отрицательные.

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

Целевая функция: целевая функция задач математической оптимизации — это функция с действительным знаком, которую следует минимизировать или максимизировать.

Поскольку мы не знаем аналитического вида f(x) в первый момент, мы говорим о так называемой функции черного ящика. Функция черного ящика — это система, внутренние механизмы которой неизвестны. Такие системы, как транзисторы, двигатели и человеческий мозг, часто называют системами черного ящика.

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

Поиск оптимальных настроек гиперпараметров

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

На следующем рисунке показана процедура для пространства гиперпараметров Epsilon=0,1−16, где C постоянно принимает значение 7.

Процесс оптимизации гиперпараметров «Поиск по сетке» работает в соответствии с этой процедурой. Таким образом, мы строим функцию примерно с каждым шагом расчета, по крупицам.

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

Поиск по сетке

Как показано на следующем рисунке, мы определяем «сетку» над пространством гиперпараметров. Если мы считаем, что ядро ​​на данный момент фиксировано, получается следующее двумерное пространство гиперпараметров. (C_min=1, C_max=50, ε_min=1, ε_max=30, step_size=1)

На рисунке уже видно, что оптимум в выбранном пространстве гиперпараметров должен лежать примерно в нижней, правой части.

Точки на правом графике указывают, какая комбинация гиперпараметров была исследована. Для показанного примера было оценено 1500 комбинаций гиперпараметров. Поскольку мы используем перекрестную проверку для оценки, 5-кратная перекрестная проверка приводит к 1500 x 5 = 7500 моделей, которые необходимо построить и оценить.

Хотя для примера мы выбираем исключительно высокую степень детализации, алгоритмы с 3, 4 или 5 гиперпараметрами тем не менее требуют огромных вычислительных мощностей.

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

В принципе правильный подход, но если речь идет о так называемых «затратных» функциях черного ящика, стоит использовать альтернативные методы оптимизации гиперпараметров [Cas13].

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

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

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

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

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

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

Суррогатная функция — регрессия гауссовского процесса

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

Наиболее известной суррогатной функцией в контексте оптимизации гиперпараметров является процесс Гаусса, или, точнее, регрессия процесса Гаусса. Более подробное объяснение того, как работает регрессия гауссовского процесса, можно найти в книге «Гауссовские процессы для машинного обучения» Карла Эдварда Расмуссена и Кристофера К. И. Уильямса, которая доступна бесплатно по адресу:

www.gaussianprocess.org

Или взгляните на одну из моих предыдущих статей, описывающих, как работает регрессия GP:

towardsdatascience.com/7-из-самых-распространенных-используемых-регрессионных-алгоритмов-и-как-выбрать-правильный-один

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

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

Поскольку у нас обычно нет предварительных знаний о том, как выглядит функция черного ящика, мы выбираем для априорного гауссовского процесса среднюю функцию, которая представляет собой прямую, параллельную оси x (y = 0). В качестве ядра мы используем одно из наиболее часто используемых ядер — радиальную базисную функцию (RBF). Поскольку мы предполагаем, что точка (здесь выделена красным) является частью «истинной» функции черного ящика путем прямого вычисления точек выборки, ковариация, равная нулю, получается в положении вычисленной точки. На рисунке уровень неопределенности модели представлен стандартным отклонением и выделен серым цветом. Зная отдельные точки данных истинной функции, возможный ход функции постепенно сужается.

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

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

Наиболее популярной функцией приобретения в контексте оптимизации гиперпараметров является ожидаемое улучшение (EI). Дальнейшими функциями приобретения являются «Вероятность улучшения», «Градиент знаний», «Поиск энтропии» или «Энтропия прогнозирования».

EI определяется следующим образом [Kra18][Jon98][Uai18][Has19]:

где

и

  • μ: среднее значение распределения, определяемого гауссовым процессом.
  • σ: стандартное отклонение распределения, определяемого гауссовым процессом.
  • Φ(): стандартная нормальная кумулятивная функция плотности (cdf).
  • ϕ(): стандартная нормальная функция плотности вероятности (pdf)
  • ξ: параметр исследования

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

С помощью приведенной выше формулы мы теперь вычисляем функцию приобретения для пространства гиперпараметров. f(x+) описывает максимальное значение всех точек выборки, рассчитанных до сих пор. Поскольку мы рассчитали только одну точку на рисунке, f(x+) — это значение функции в выбранной точке выборки — здесь при −31,0−31,0. σ и μ описываются моделью регрессии гауссовского процесса. На рисунке вы видите оба значения для позиции x=15.

Если теперь мы посмотрим на формулу более внимательно, то заметим, что EI состоит из двух частей:

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

То, как взвешиваются обе части, зависит от CDF(Z) и PDF(Z). Если разница между f(x+) и µ велика по сравнению со стандартным отклонением регрессионной модели, CDF(Z) приближается к 1, а PDF(Z) к 0. Это означает, что области имеют больший вес, где среднее значение модель значительно выше, чем максимальное значение f(x+) точек выборки на данный момент. Параметр исследования может быть установлен свободно и, таким образом, в некоторой степени контролировать взвешивание.

Здесь говорится о компромиссе между разведкой и эксплуатацией, что отражается двумя компонентами термина:

  1. Исследовательский: выберите точку на функции, где текущая модель показывает наибольшую неопределенность (исследуйте другие части пространства поиска в надежде найти другие многообещающие области [Leh13])
  2. Эксплуатационный: выберите точку, которая сейчас показывает наибольшую ценность, и исследуйте область более внимательно.

После вычисления функции приобретения мы просто определяем значение гиперпараметра x (здесь: гиперпараметр Эпсилон), при котором EI максимален, и вычисляем значение функции черного ящика (здесь: отрицательная перекрестная оценка) для выбранного значения гиперпараметра. . Затем мы снова выполняем расчет функции сбора и определяем точку выборки для следующей итерации.

Краткое содержание

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

Статья не претендует на полное представление о байесовской оптимизации. Не рассматривается ни практическое применение с такими библиотеками, как scikit-optimizer или hyperopt, ни сравнение различных методов оптимизации на конкретных примерах приложений.

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

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





Если вы еще не являетесь участником Medium Premium и планируете им стать, вы можете поддержать меня, зарегистрировавшись по следующей реферальной ссылке:

https://dmnkplzr.medium.com/membership

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

Рекомендации

[Agn20] Агнихотри, Апурв; Батра, Нипун. Изучение байесовской оптимизации. https://distill.pub/2020/bayesian-optimization/. 2020.
[Bur98] Берджес, Си-Джей-Си; Кауфман, Л.; Смола, AJ; Вапник, В. Машины регрессии опорных векторов. 1998. URL http://papers.nips.cc/paper/1238-support-vector-regression-machines.pdfine
[Cas13] Кассило, Андреа. Учебное пособие по оптимизации черного ящика. https://www.lix.polytechnique.fr/~dambrosio/blackbox_material/Cassioli_1.pdf. 2013.
[CST79] Служба переписи населения США. https://www.cs.toronto.edu/~delve/data/boston/bostonDetail.html
[Fah16] Fahrmeir, L.; Хьюманн, К.; Кюнстлер, Р. Статистика: Der Weg zur Datenanalyse. Спрингер-Лербух. Springer Spektrum, Берлин и Гейдельберг, 8., überarbeitete und ergänzte auflage Auflage, 2016. ISBN 978–3–662 50371–3. doi:10.1007/978–3–662–50372–0
[Has19] Байесовская оптимизация гиперпараметров с использованием гауссовских процессов. 2018. https://brendanhasz.github.io/2019/03/28/hyperparameter-optimization.html#hyperparameter-optimization
[Hel19] Helmenstine, Anne Marie. Определение теоремы Байеса и примеры. https://www.thoughtco.com/bayes-theorem-4155845. 2019.
[Jon98] Джонс, Д. Р., Шонлау, М. и Уэлч, В. Дж. Эффективная глобальная оптимизация дорогостоящих функций черного ящика. Журнал глобальной оптимизации
[Kra18] Мартин Крассер. Байесовская оптимизация. http://krasserm.github.io/2018/03/21/bayesian-optimization/
[Leh13] Е.П. Легтихет. https://www.researchgate.net/post/What_is_the_difference_between_exploration_vs_exploitation_intensification_vs_diversification_and_global_search_vs_local_search [Sci18] Сикотт, Ксавьер. Оценщик перекрестной проверки. https://stats.stackexchange.com/questions/365224/cross-validation-and-confidence-interval-of-the-true-error/365231#365231. 2018
[Smo04] Смола, Эй Джей; Schölkopf, B. Учебное пособие по регрессии опорных векторов. Статистика и вычисления, 14(3):199–222, 2004 г. ISSN 0960–3174. doi:10.1023/B:STCO. 0000035301.49549.8849549.
[Uai18] UAI 2018. https://www.youtube.com/watch?v=C5nqEHpdyoE. 2018.
[Ю12] Ю, Х.; Ким, С. Учебное пособие по SVM — классификация, регрессия и ранжирование. Г. Розенберг; Т. Бэк; Дж. Н. Кок, Справочник по естественным вычислениям, 479–506. Springer Berlin Heidelberg, Берлин, Гейдельберг, 2012. ISBN 978–3–540–92909–3.
[Was21] Вашингтонский университет. https://sites.math.washington.edu/. 2021.