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

LightGBM Tuner - это один из модулей интеграции Optuna для оптимизации гиперпараметров LightGBM. Использовать LightGBM Tuner просто. Вы используете LightGBM Tuner, изменяя одну инструкцию импорта в вашем коде Python. Используя экспертную эвристику, LightGBM Tuner позволяет настраивать гиперпараметры за меньшее время, чем раньше. Во второй половине статьи мы подтверждаем это с помощью тестов.

Наивный метод настройки гиперпараметров на LightGBM

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

При настройке гиперпараметров LightGBM с помощью Optuna наивный пример кода может выглядеть следующим образом:

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

Пошаговый алгоритм

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

Хотя существует множество методов поиска, которые пытаются достичь лучшей оценки с помощью нескольких проб, давайте подумаем о пространстве поиска. Среди экспертов, которые вручную настраивали гиперпараметры LightGBM, есть широко используемый и эффективный метод, названный пошаговым алгоритмом [1] [2]. Он настраивает важные переменные гиперпараметров по порядку.

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

LightGBM Tuner - это модуль, реализующий пошаговый алгоритм.

Использование тюнера LightGBM

LightGBM Tuner был выпущен в качестве экспериментальной функции в Optuna v0.18.0. Вы можете попробовать это, изменив оператор импорта следующим образом:

Полный пример кода доступен в нашем репозитории.

Настройка гиперпараметров начинается, когда вы вызываете lgb.train () в своем коде Python. «Лучшие параметры» и «история поиска» по результатам настройки могут быть получены путем передачи объектов Python в качестве аргументов ключевого слова в `lgb.train ()`.

В текущей реализации функция lgb.train () - единственный поддерживаемый LightGBM API.

Контрольные точки

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

В этом тесте мы выбрали три метода для сравнения.

  • [Tuner] Пошаговая настройка с помощью LightGBM Tuner
  • [TPE] TPE (древовидный оценщик парзенов) [3] + простая настройка
  • [Случайная] Случайная выборка + простая настройка

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

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

На следующем рисунке приведены результаты теста.

Маркеры красного креста показывают результат при использовании параметров LightGBM по умолчанию без какой-либо настройки. Горизонтальные оси представляют количество испытаний, а вертикальные оси представляют лучший результат оценки в предыдущих испытаниях. AUC (Площадь под кривой ROC) используется в качестве показателя оценки, и более высокое значение указывает на лучший результат.

В этом тесте мы обнаружили, что LightGBM Tuner достиг лучших результатов оценки на 6 из 9 наборов данных.

Количественный анализ: изучение ключевых гиперпараметров

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

LightGBM Tuner выбирает одну переменную гиперпараметра для пошаговой настройки. Например, feature_fraction, num_leaves и так далее соответственно. Какой из этих гиперпараметров было важно настроить для процесса оптимизации в результате нашего теста? Следующие графики скрипки показывают результаты изменения оценки валидации при настройке каждой переменной.

Чем больше ширина, тем больше влияние на значение оценки. Это указывает на значительный эффект настройки переменной. Как вы можете видеть на приведенном выше рисунке, в зависимости от набора данных наиболее важная переменная различается. В нашем тесте наиболее важной переменной была «feature_fraction», «num_leaves» или «bagging_fraction». Текущая реализация LightGBM Tuner фиксирует порядок переменных настройки и количество попыток для каждой переменной. Путем поиска гиперпараметров, которые имеют большое влияние, и настройки их в идеальном порядке могут стать возможными дальнейшие улучшения.

Заключение

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

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

Ссылка

  • [1] Жан-Франсуа Пюже. «Beyond Feature Engineering and HPO», представленная на Kaggle Days Paris
  • [2] 脇 大祐, 坂 田 隆 司, 保 坂 桂 佑, 平 松 雄 司. «Kaggle で 勝 つ デ ー タ 分析 ​​の 技術», 技術 評論 社
  • [3] Джеймс Бергстра, Реми Барденет, Йошуа Бенжио, Балаж Кегль, «Алгоритмы для оптимизации гиперпараметров», In Proc. Международной конференции по достижениям в системах обработки нейронной информации (NIPS’11).
  • [4] Стефан Фолкнер, Аарон Кляйн, Фрэнк Хаттер, «BOHB: надежная и эффективная оптимизация гиперпараметров в масштабе», In Proc. 35-й Международной конференции по машинному обучению (ICML’18).