Методы оптимизации гиперпараметров - ML

Опубликовано: 21 Июля, 2021

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

Методы исчерпывающего поиска

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

Недостаток:

Случайный поиск и поиск по сетке легко реализовать и могут работать параллельно, но у этого алгоритма есть несколько недостатков:

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

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

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

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

  1. Постройте суррогатную вероятностную модель целевой функции.
  2. Найдите гиперпараметры, которые лучше всего подходят для суррогата
  3. Примените эти гиперпараметры к исходной целевой функции
  4. Обновите суррогатную модель, используя новые результаты
  5. Повторяйте шаги 2–4 до n числа итераций.

Последовательная оптимизация на основе моделей:

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

Есть 5 важных параметров SMBO:

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

Существует множество различных версий алгоритма оптимизации гиперпараметров SMBO. Общее различие между ними - суррогатные функции. Некоторая суррогатная функция, такая как гауссовский процесс, случайная регрессия леса, оценка Tree Prazen. В этом посте мы обсудим Tree Prazen Estimator ниже.

Оценщики Tree Prazen:

Tree Prazen Estimators использует древовидную структуру для оптимизации гиперпараметра. С помощью этого метода можно оптимизировать многие гиперпраметры, такие как количество слоев, оптимизатор в модели, количество нейронов в каждом слое. В оценщике tree prazen вместо вычисления P (y | x) мы вычисляем P (x | y) и P (y) (где y - промежуточная оценка, которая определяет, насколько хороши значения этого гиперпараметра, такие как потеря проверки и x является гиперпараметром).

В первой части Tree Prazen Estimator мы выбираем потерю валидации случайным поиском, чтобы инициализировать алгоритм. Затем мы разделяем наблюдения на две группы: наиболее эффективную (например, верхний квартиль) и остальные, принимая y * в качестве значения разделения для двух групп.

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

P (x | y) = f (x), если y <y *, и p (x | y) = g (x), если y? Y *.

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

P (y) вычисляется с использованием того факта, что p (y <y *) =? который определяет процентильное разделение на две категории.

Используя правило Байя (т.е. p (x, y) = p (y) p (x | y)), можно показать), что определение ожидаемых улучшений эквивалентно f (x) / g (x).

На этом последнем этапе мы пытаемся максимизировать f (x) / g (x)

Недостаток:

Самый большой недостаток Tree Prazen Estimator в том, что он выбирает гиперпараметры независимо друг от друга, что каким-то образом влияет на эффективность и требуемые вычисления, потому что в большинстве нейронных сетей они являются отношениями между различными параметрами hper

Другие алгоритмы оценки гиперпараметров:

Гиперполос

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

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

Недостатки:

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

Обучение на уровне населения (PBT):

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

Байесовская оптимизация и гиперполос (BOHB):

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

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

  • Случайный поиск для оптимизации гиперпараметров
  • Алгоритмы оптимизации гиперпараметров
  • Hyperband: новый бандитский подход к оптимизации гиперпараметров
  • Блог PBT Deepmind