В машинном обучении оптимизация гиперпараметров [1] или настройка — это проблема выбора набора оптимальных гиперпараметров для алгоритма обучения. Гиперпараметр — это параметр , значение которого используется для управления процессом обучения.
Оптимизация гиперпараметров находит кортеж гиперпараметров, который дает оптимальную модель, которая минимизирует заранее определенную функцию потерь на заданных независимых данных. [2] Целевая функция принимает кортеж гиперпараметров и возвращает соответствующие потери. [2] Перекрестная проверка часто используется для оценки эффективности этого обобщения и, следовательно, выбора набора значений для гиперпараметров, которые максимизируют ее. [3]
Традиционным способом выполнения оптимизации гиперпараметров был поиск по сетке или перебор параметров , который представляет собой просто исчерпывающий поиск по заданному вручную подмножеству пространства гиперпараметров алгоритма обучения. Алгоритм поиска по сетке должен руководствоваться некоторой метрикой производительности, обычно измеряемой путем перекрестной проверки на обучающем наборе [4] или оценки на наборе для предварительной проверки. [5]
Поскольку пространство параметров машинного обучения может включать в себя пространства вещественных или неограниченных значений для определенных параметров, перед применением поиска по сетке может потребоваться установка границ и дискретизация вручную.
Например, типичный классификатор SVM с мягкой маржой , оснащенный ядром RBF, имеет как минимум два гиперпараметра, которые необходимо настроить для хорошей производительности на невидимых данных: константу регуляризации C и гиперпараметр ядра γ. Оба параметра являются непрерывными, поэтому для выполнения поиска по сетке для каждого выбирается конечный набор «разумных» значений, скажем
Затем поиск по сетке обучает SVM с каждой парой ( C , γ) в декартовом произведении этих двух наборов и оценивает их производительность на отложенном наборе проверки (или посредством внутренней перекрестной проверки на обучающем наборе, и в этом случае несколько SVM тренируются в паре). Наконец, алгоритм поиска по сетке выводит настройки, получившие наивысший балл в процедуре проверки.
Поиск по сетке страдает от проклятия размерности , но часто оказывается смущающе параллельным, поскольку параметры гиперпараметров, которые он оценивает, обычно не зависят друг от друга. [3]
Случайный поиск заменяет исчерпывающий перебор всех комбинаций случайным их выбором. Это можно просто применить к описанной выше дискретной ситуации, но также можно обобщить и на непрерывные и смешанные пространства. Преимущество поиска по сетке заключается в том, что случайный поиск может исследовать гораздо больше значений, чем поиск по сетке для непрерывных гиперпараметров. Он может превзойти поиск по сетке, особенно когда лишь небольшое количество гиперпараметров влияет на конечную производительность алгоритма машинного обучения. [3] В этом случае говорят, что задача оптимизации имеет низкую внутреннюю размерность. [6] Случайный поиск также до неприличия параллелен и, кроме того, позволяет включать предварительные знания, указывая распределение, из которого следует выполнять выборку. Несмотря на свою простоту, случайный поиск остается одним из важных базовых показателей для сравнения производительности новых методов оптимизации гиперпараметров.
Байесовская оптимизация — это метод глобальной оптимизации для зашумленных функций черного ящика. Применительно к оптимизации гиперпараметров байесовская оптимизация строит вероятностную модель отображения функции от значений гиперпараметров к цели, оцениваемой на проверочном наборе. Путем итеративной оценки многообещающей конфигурации гиперпараметров на основе текущей модели, а затем ее обновления, байесовская оптимизация направлена на сбор наблюдений, раскрывающих как можно больше информации об этой функции и, в частности, о местоположении оптимума. Он пытается сбалансировать разведку (гиперпараметры, результат которых наиболее неопределенен) и эксплуатацию (гиперпараметры, ожидаемые близкие к оптимальным). На практике было показано [7] [8] [9] [10] для получения лучших результатов при меньшем количестве оценок по сравнению с поиском по сетке и случайным поиском благодаря способности рассуждать о качестве экспериментов до их проведения. .
Для конкретных алгоритмов обучения можно вычислить градиент относительно гиперпараметров, а затем оптимизировать гиперпараметры с помощью градиентного спуска . Первое использование этих методов было сосредоточено на нейронных сетях. [11] С тех пор эти методы были распространены на другие модели, такие как машины опорных векторов [12] или логистическая регрессия. [13]
Другой подход для получения градиента по гиперпараметрам заключается в дифференцировании шагов алгоритма итеративной оптимизации с использованием автоматического дифференцирования . [14] [15] [16] [17] Более поздняя работа в этом направлении использует теорему о неявной функции для расчета гиперградиентов и предлагает устойчивую аппроксимацию обратного гессиана. Метод масштабируется до миллионов гиперпараметров и требует постоянной памяти. [18]
В другом подходе [19] гиперсеть обучается аппроксимации наилучшей функции ответа. Одним из преимуществ этого метода является то, что он также может обрабатывать дискретные гиперпараметры. Самонастраивающиеся сети [20] предлагают версию этого подхода с эффективным использованием памяти за счет выбора компактного представления гиперсети. Совсем недавно Δ-STN [21] еще больше усовершенствовал этот метод за счет небольшой репараметризации гиперсети, что ускоряет обучение. Δ-STN также дает лучшее приближение якобиана наилучшего ответа за счет линеаризации сети в весах, тем самым удаляя ненужные нелинейные эффекты больших изменений весов.
Помимо гиперсетевых подходов, градиентные методы могут использоваться для оптимизации дискретных гиперпараметров, а также путем непрерывной релаксации параметров. [22] Такие методы широко используются для оптимизации гиперпараметров архитектуры при поиске нейронной архитектуры .
Эволюционная оптимизация — это методология глобальной оптимизации зашумленных функций черного ящика. При оптимизации гиперпараметров эволюционная оптимизация использует эволюционные алгоритмы для поиска в пространстве гиперпараметров для данного алгоритма. [8] Эволюционная оптимизация гиперпараметров следует процессу , вдохновленному биологической концепцией эволюции :
Эволюционная оптимизация использовалась при оптимизации гиперпараметров для алгоритмов статистического машинного обучения, [8] автоматизированного машинного обучения , типичной нейронной сети [23] и поиска архитектуры глубоких нейронных сетей , [24] [25] , а также при обучении весов в глубоких нейронных сетях. сети. [26]
Популяционное обучение (PBT) изучает как значения гиперпараметров, так и веса сети. Несколько процессов обучения работают независимо, используя разные гиперпараметры. Как и в случае с эволюционными методами, плохо работающие модели итеративно заменяются моделями, которые принимают модифицированные значения и веса гиперпараметров на основе более эффективных моделей. Эта замещающая модель теплого запуска является основным отличием PBT от других эволюционных методов. Таким образом, PBT позволяет гиперпараметрам развиваться и устраняет необходимость ручной гипернастройки. В этом процессе не делается никаких предположений относительно архитектуры модели, функций потерь или процедур обучения.
PBT и его варианты являются адаптивными методами: они обновляют гиперпараметры во время обучения моделей. Напротив, неадаптивные методы имеют неоптимальную стратегию назначения постоянного набора гиперпараметров для всего обучения. [27]
Класс алгоритмов оптимизации гиперпараметров на основе ранней остановки специально создан для больших пространств поиска непрерывных и дискретных гиперпараметров, особенно когда вычислительные затраты для оценки производительности набора гиперпараметров высоки. Irace реализует итеративный гоночный алгоритм, который фокусирует поиск на наиболее перспективных конфигурациях, используя статистические тесты для отбраковки тех, которые работают плохо. [28] [29] Еще одним алгоритмом оптимизации гиперпараметров с ранней остановкой является последовательное сокращение пополам (SHA), [30] который начинается со случайного поиска, но периодически сокращает низкопроизводительные модели, тем самым концентрируя вычислительные ресурсы на более перспективных моделях. Асинхронное последовательное сокращение пополам (ASHA) [31] еще больше улучшает профиль использования ресурсов SHA, устраняя необходимость синхронной оценки и сокращения низкопроизводительных моделей. Hyperband [32] — это алгоритм более высокого уровня, основанный на ранней остановке, который вызывает SHA или ASHA несколько раз с различными уровнями агрессивности сокращения, чтобы иметь более широкое применение и с меньшим количеством требуемых входных данных.
Также были разработаны RBF [33] и спектральный [34] подходы.
Когда выполняется оптимизация гиперпараметров, набор гиперпараметров часто помещается в обучающий набор и выбирается на основе эффективности обобщения или оценки проверочного набора. Однако эта процедура сопряжена с риском переподбора гиперпараметров в набор проверки. Следовательно, показатель эффективности обобщения набора проверки (который может состоять из нескольких наборов в случае процедуры перекрестной проверки) не может использоваться для одновременной оценки эффективности обобщения окончательной модели. Для этого эффективность обобщения должна оцениваться на наборе, независимом (не имеющем пересечения) от набора (или наборов), используемых для оптимизации гиперпараметров, иначе производительность может дать слишком оптимистичное значение ( слишком большой). Это можно сделать на втором наборе тестов или с помощью процедуры внешней перекрестной проверки , называемой вложенной перекрестной проверкой, которая позволяет объективно оценить эффективность обобщения модели с учетом систематической ошибки, вызванной оптимизацией гиперпараметров.