A hyperparameter optimization framework – Optuna

A hyperparameter optimization framework – Optuna Программирование, IT, Удаленная работа, Карьера, Профессия, Framework, Фриланс, Программист

Из названия все ясно. Лучшая утилита для оптимизации гиперпараметров вашей модели или нет? Многие перескакивает с метода подбора параметров GridSearch/Random из scikit-learn и постепенно переходят на библиотеку Optuna со своими решениями.

Почему?

Обычный GridSearch – примитивное перебирание по сетке, где мы смотрим только на качество решаемой задачи по accuracy, cross-entropy, mse. Экспоненциальный перебор всех узлов сетки параметров зависит напрямую от подаваемых координат.

Очевидно, простой "перебор" –  подход зачастую крайне ресурсоемкий. А вот Random'изированный показывает лучший результат, так как подбирает случайные комбинации и сэмплирует результаты… Но что если строить вероятностные модели выборки гиперпараметров?

Optuna и работает по этому принципу — байесовской оптимизации GP или Tree-structured Parzen Estimator (TPE). Чем лучше TPE в сравнении с всякими серчами переборов? Он предполагает вероятностные модели и исходит из прогнозируемой эффективности модели.

Как видно, такой подход выглядит избирательнее и зачастую приводит к лучшим результатам. Особенно, в скорости: TPE работает в три раза быстрее, чем обычный сеточный перебор. В Optuna, помимо классических серчей, есть простые байесовские алгоритмы и возможность прунинга пространства гиперпараметров и даже CMA-ES, иначе генетические алгоритмы, о которых вы узнаете в конце курса. 

Какие ещё преимущества у этого фреймворка?

  • У Optuna хорошая документация. Хотя и не слишком очевидно на старте, какие алгоритмы реализованы в библиотеке.

  • Есть Define-by-run, при помощи которого можно динамически описывать пространство параметров во время работы оптимизировать.

  • Можно явно задавать максимизацию или минимизацию функции качества.