Эта статья изначально была размещена на нашем веб-сайте компании. Flexday Solutions LLC — это команда лидеров мнений в области искусственного интеллекта, машинного обучения и облачных решений. .

Введение

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

Как видно из рисунка, изменение наклона, точки пересечения или того и другого может определить, достаточно ли хорошо линия представляет данные. Поэтому крайне важно получить наилучшие значения этих параметров, чтобы иметь надежную модель. Учитывая набор данных, эти два параметра могут быть получены таким образом, что модель предсказывает с разумной точностью, насколько далеко новая точка данных расположена от линии. Этот процесс оценки лучших параметров набора данных называется обучением модели. Во время обучения параметры модели оцениваются путем оптимизации функции стоимости и использования доступного набора данных. Аналогичный подход также используется при разработке надежной модели машинного обучения (ML) или глубокого обучения (DL) для данной проблемы.

Всегда есть набор исторических данных и алгоритм обучения для разработки модели машинного обучения. Каждый из алгоритмов обучения может иметь большой набор параметров, которые называются гиперпараметрами. На данном этапе необходимо понимать разницу между параметрами модели и гиперпараметрами. На рисунке 2 показано, что параметры модели и гиперпараметры представляют собой два непересекающихся множества, не имеющих общих параметров. Параметры W0, W1, W2,… и т. д. являются частью модели, тогда как скорость обучения, выбор оптимизатора, размер пакета, n_neighbors, ядро ​​и т. д. являются частью алгоритма обучения и не имеют ничего общего с моделью.

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

Следует отметить, что выбор соответствующего подмножества гиперпараметров с лучшими значениями важен, поскольку эти гиперпараметры будут влиять на скорость и точность обучения. В зависимости от системы или решаемой проблемы количество гиперпараметров, необходимых для обучения, будет разным. Таким образом, выбор правильного набора гиперпараметров — довольно сложная и сложная задача. Эти параметры образуют n-мерное пространство поиска, где каждое измерение является одним из таких параметров.

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

Методы оптимизации

n*=arg f(η) (1)

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

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

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

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

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

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

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

Оптуна и автоматическая оптимизация

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

Optuna — это библиотека Python с открытым исходным кодом, которую можно использовать для автоматизации настройки гиперпараметров для решения любой проблемы машинного обучения. Optuna можно использовать со многими платформами машинного обучения, такими как TensorFlow, PyTorch, LightGBM и scikit-learn. Среди различных функций Optuna использует механизм обрезки, чтобы сэкономить время на всем процессе оптимизации. Как мы упоминали выше, оптимизация гиперпараметров может занять много времени, если мы выбираем большое количество параметров в пространстве поиска. В механизме обрезки любые необоснованные или бесперспективные испытания прекращаются на ранней стадии обучения, экономя время и ресурсы.

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

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

Написано членами экспертной группы Flexday, Bhaskarjyoti Borah и Mukut Kalita.