В этой статье мы поговорим о методах оптимизации гиперпараметров и программной среде под названием OPTUNA
Итак, давайте выпьем кофе и начнем.

Оглавление:

  1. Оптимизация гиперпараметров
  2. Введение в методы оптимизации
  3. Что такое ОПТУНА?
  4. Optuna Basic, архитектура и реализация кода

1. Оптимизация гиперпараметров

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

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

Я знаю, что вы думаете, мы можем добавить все гиперпараметры Space и получить лучшую модель, верно? Конечно, это не Магия, и мы не можем решить все задачи,
Причины этого таковы;

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

2. Введение методов оптимизации

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

Традиционные методы
традиционные методы используются в областях, где пространство гиперпараметров является неопределенным. Приведем несколько примеров:
1- Поиск по сетке:Поиск по одному в Наших предопределенных гиперпараметрах Пространственная матрица
2 -
Случайный поиск:
Случайный поиск в наших предопределенных гиперпараметрах Пространственная матрица Пространственная матрица

По мере увеличения пространства гиперпараметров и объема традиционные методы ухудшаются и требуют очень много времени.

Байесовские методы

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

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

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

Эта проблема начинается с поиска всех параметров, потому что поиск всех параметров требует чрезмерного времени и ресурсов.
Затем предлагается несколько алгоритмов, чтобы оптимально сбалансировать дилемму разведки-эксплуатации. Вот некоторые примеры: оценщик Парцена с древовидной структурой (TPE) и регрессор гауссовского процесса, например. Кригинг.

Метод ранней остановки

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

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

Эволюционный метод

Эволюционные методы оптимизации ищут пространство гиперпараметров с помощью эволюционных алгоритмов. Этот метод был вдохновлен концепцией эволюции Чарльза Дарвина. Обычно это следует процессу, следующему за биологической концепцией эволюции:

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

3. Что такое Оптуна❓

Optuna была представлена ​​Takuya Akiba et. др. [1] в 2019 г. Optuna – это программная платформа для автоматической оптимизации гиперпараметров, специально разработанная для машинного обучения. Он имеет императивный пользовательский API в стиле определение при запуске. Благодаря нашему API определение-за-выполнением, код, написанный с помощью Optuna, обладает высокой модульностью, и пользователь Optuna может динамически создавать области поиска для гиперпараметров.

Optuna стремится сбалансировать алгоритмы выборки и сокращения. Optuna реализует алгоритмы выборки, такие как Tree-Structured of Parzen Estimator (TPE) [7, 8] для независимой выборки параметров, а также Гауссовы процессы (GP) [8] и Адаптация ковариационной матрицы (CMA)[9] для реляционной выборки параметров, целью которой является использовать корреляцию между параметрами. Аналогичным образом, Optuna реализует вариант алгоритма Asynchronous Successive Halving (ASHA) [10] для сокращения областей поиска.

Optuna не зависит от фреймворка, то есть его можно легко интегрировать с любыми фреймворками машинного и глубокого обучения, такими как: PyTorch, Tensorflow, Keras, Scikit-Learn, XGBoost и т. д.

Optuna называет свои алгоритмы оптимизации двумя разными категориями:

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

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

Стратегия выборки

TPESampler (оценщик Парцена с древовидной структурой):

1- Во-первых, он случайным образом выбирает подмножество гиперпараметров и сортирует их по баллам.
2- Далее гиперпараметры делятся на две группы на основе некоторого заранее определенного квантиля.
3- Затем две группы моделируются. в оценочные плотности l(x1) и g(x2) с помощью Parzen Estimators (оценки плотности ядра).
4- Находит гиперпараметры, которые являются наивысшим ожидаемым улучшением. [самое низкое l(x1)/g(x2)].
5-Гиперпараметр с наибольшим ожидаемым улучшением оценивается, сортируется и снова делится. Этот процесс повторяется до тех пор, пока бюджет не будет завершен и не будут возвращены лучшие гиперпараметры.[2]

NSGAIISampler (генетический алгоритм сортировки без доминирования II):

Классические эвристические методы для этой задачи были разработаны для задач многокритериальной оптимизации. В литературе широко используется генетический алгоритм недоминируемой сортировки II (НСГА-II), который является одним из наиболее эффективных многокритериальных эвристических методов при решении задач многокритериальной оптимизации. Один из многокритериальных эвристических методов, NSGA-II, позволяет получить оптимальные по Парето решения, известные как набор доминирующих решений, без каких-либо предварительных знаний за один прогон. NSGA-II более полезен, чем классический генетический алгоритм, так как сводит к минимуму вычислительную сложность за счет расчета метода быстрой сортировки с преобладанием и скученного расстояния без необходимости повторения для каждого решения
[3-Çok Amaçlı Optimizasyon Problemlerinin NSGA-II Yaklaşımıyla ÇözümüApril 2019,Конференция: IMCOFE 2019,Проект: Экспертная система для оценки и выбора алгоритмов бикластеризации]

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

Говорят, что индивидуум (А) доминирует над индивидуумом (В), если

  • Нет цели A хуже, чем цель B
  • Существует по крайней мере одна цель A лучше, чем цель B.

Основной процесс

  1. Первоначально отбирается случайная родительская популяция, и каждому оцениваемому решению присваивается ранг пригодности, равный его уровню недоминирования. Сначала он выбирает все недоминируемые решения из совокупности P и присваивает им ранг 1, затем выбирает все из оставшихся решений и присваивает им ранг 2, и так далее, пока всем индивидуумам не будет присвоен ранг.
  2. Выбираются два случайных испытания, и лучшее из них становится Родителем 1. Процесс повторяется один раз для выбора другого Родителя 2 [Выбор бинарного турнира].
  3. Эти два родителя воссоединяются, чтобы произвести потомство, которое становится дочерней популяцией [Рекомбинация]. Дочерний элемент подвергается мутации и изменяет некоторые свои значения [Мутация]. Этот шаг повторяется до тех пор, пока исходный размер популяции не удвоится.
  4. Население снова отсортировано по недоминированию. Новое поколение будет выбрано в порядке ранга. Crowding-sort будет реализован для расчета плотности решений, если конкретный ранг только частично включен в следующее поколение. Менее плотные испытания выбираются для следующего поколения до тех пор, пока подсчет популяции снова не достигнет исходного размера популяции.
  5. Новое поколение воспроизводится и снова итеративно отбрасывается до тех пор, пока не будет достигнуто максимальное количество поколений и не будут возвращены лучшие гиперпараметры.

Пробоотборник CMA-ES (стратегия эволюции адаптации ковариационной матрицы):

Ковариационная матрицаAdaptation Evolution Strategy (CMA-ES) [1] — один из наиболее многообещающих методов оптимизации черного ящика, когда целевые функции не могут быть описаны с помощью явного представления. в общем. CMA-ES показал наилучшую производительность из более чем 100 методов оптимизации черного ящика для различных тестовых задач [4- И. Лощилов, М. Шоенауэр и М. Себаг. Двухпопуляционные алгоритмы CMA-ES с суррогатными моделями и линейным поиском, семинар GECCO, 2013 г.].

CMA-ES выбирает решения (т. е. решения соответствуют гиперпараметрам, если вы выполняете оптимизацию гиперпараметров) из многомерного гауссовского распределения. После оценки всех решений решения сортируются по значениям оценки, затем обновляются параметры распределения (т. е. вектор среднего значения и матрица ковариации) на основе ранжирования значений оценки. Следующая анимация объясняет поведение CMA-ES.

Стратегия сокращения

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

SuccessiveHalvingPruner (асинхронное последовательное деление пополам):

Основной процесс;

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

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

4. Optuna Basic, архитектура и реализация кода

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

Исследование.
Исследуемый объект запускается для поиска наилучшего пространства гиперпараметров, вводятся сведения о том, сколько испытаний будет выполнять optuna, а в конце этого исследования наилучшее испытание и лучшее пространство гиперпараметров будет сохранено в Study.best_trial & study.best_params.
❗ПРИМЕЧАНИЕ:❗ Если ваша оценка является функцией потерь, вы должны выбрать направление «минимизировать», если ваша оценка является показателем успеха, она должна быть «Максимизировать». »в этом объекте изучения.

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

Улучшение алгоритма Optuna

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

Начнем! Спасибо, что прочитали мой 📧, если вы видите что-то не так, вы должны объяснить в директ!

В этом 📧 я объяснил оптимизацию гиперпараметров и что делать с Optuna? увидимся в моем следующем 📧. Если вы хотите проверить мое машинное обучение и статистическое моделирование в CRM только с теорией (ENG) 📧, для вас есть ссылка: 🔎
👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋👋