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

Вступление

Гиперпараметры - это параметры, используемые для управления поведением алгоритма при построении модели. Эти параметры невозможно узнать в ходе обычного тренировочного процесса. Их нужно назначить перед обучением модели.

Пример: n_neighbors (KNN), ядро ​​ (SVC), max_depth и критерий (классификатор дерева решений) и т. Д.

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

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

Пример: поиск по сетке, случайный поиск, байесовский поиск и т. Д.





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

  1. Ray-Tune
  2. Optuna
  3. Hyperopt
  4. mlmachine
  5. Полиаксон
  6. Байесовская оптимизация
  7. Талос
  8. ШЕРПА
  9. Scikit-Optimize
  10. GPyOpt

1. Ray-Tune

Tune - это библиотека Python для проведения экспериментов и настройки гиперпараметров в любом масштабе. [GitHub]

Ключевая особенность

  1. Запустите многоузловую развертку распределенных гиперпараметров менее чем за десять строк кода.
  2. Поддерживает любую структуру машинного обучения, включая PyTorch, XGBoost, MXNet и Keras.
  3. Выбирайте среди самых современных алгоритмов, таких как Population Based Training (PBT), BayesOptSearch, HyperBand / ASHA.
  4. Алгоритмы поиска Tune - это оболочки для библиотек оптимизации с открытым исходным кодом, таких как HyperOpt, SigOpt, Dragonfly и Facebook Axe.
  5. Автоматически визуализируйте результаты с помощью TensorBoard.

#Tune for Scikit Learn

Установка: pip install ray [tune] tune-sklearn

2. Optuna

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

Ключевая особенность

  1. Простое распараллеливание
  2. Быстрая визуализация
  3. Эффективные алгоритмы оптимизации
  4. Легкая, универсальная и платформо-независимая архитектура
  5. Пифонические поисковые пространства

Установка: pip install optuna

3. Hyperopt

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

Hyperopt в настоящее время поддерживает три алгоритма:

Ключевая особенность

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

Установка: pip install hyperopt



4. mlmachine

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

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

Хорошо объясненная статья о mlmachine.



Установка: pip install mlmachine

5. Полиаксон

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

Polyaxon выполняет настройку гиперпараметров путем предоставления набора настраиваемых алгоритмов поиска. Polyaxon поддерживает как простые подходы, такие как random search и grid search, так и простой интерфейс для расширенных подходов, таких как Hyperband и Bayesian Optimization, он также интегрируется с такими инструментами, как Hyperopt, и предоставляет интерфейс для запуска настраиваемых итеративных процессов. Все эти алгоритмы поиска работают асинхронно и поддерживают параллелизм и маршрутизацию для максимального использования ресурсов кластера (ов).

Ключевая особенность

  1. Простота в использовании: Polyaxon's Optimization Engine - это встроенная служба, которую можно легко использовать, добавив раздел matrix в свои операции, вы можете выполнить настройку гиперпараметров с помощью интерфейса командной строки, клиента и панели инструментов.
  2. Масштабируемость: настройка гиперпараметров или нейронных архитектур требует использования большого количества вычислительных ресурсов. Используя Polyaxon, вы можете запускать сотни испытаний параллельно и интуитивно отслеживать их прогресс.
  3. Гибкость: помимо богатых встроенных алгоритмов, Polyaxon позволяет пользователям настраивать различные алгоритмы настройки гиперпараметров, алгоритмы поиска нейронной архитектуры, алгоритмы ранней остановки и т. Д.
  4. Эффективность: мы интенсивно работаем над более эффективной настройкой модели как на уровне системы, так и на уровне алгоритмов. Например, использование ранней обратной связи для ускорения процедуры настройки.

Установка: pip install -U polyaxon

6. Байесовская оптимизация.

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

Установка: pip install байесовская оптимизация

7. Талос

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

Ключевая особенность

  1. Однострочный конвейер оптимизации и прогнозирования talos.Scan(x, y, model, params).predict(x_test, y_test)
  2. Автоматическая оптимизация гиперпараметров
  3. Оценщик обобщения модели
  4. Аналитика экспериментов
  5. Параметры псевдо, квази и квантового случайного поиска
  6. Поиск по сетке
  7. Вероятностные оптимизаторы
  8. Стратегии индивидуальной оптимизации для одного файла




Установка: pip install talos

8. ШЕРПА

SHERPA - библиотека Python для гиперпараметрической настройки моделей машинного обучения.

Это обеспечивает:

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

Установка: pip install parameter-sherpa

9. Scikit-Optimize

Scikit-Optimize или skopt - это простая и эффективная библиотека для минимизации (очень) дорогостоящих и шумных функций черного ящика. В нем реализовано несколько методов последовательной оптимизации на основе модели. skopt стремится быть доступным и простым в использовании во многих контекстах. Scikit-Optimize обеспечивает поддержку настройки гиперпараметров алгоритмов машинного обучения, предлагаемых библиотекой scikit-learn, так называемой оптимизации гиперпараметров.

Библиотека построена на базе NumPy, SciPy и Scikit-Learn.

Установка: pip install scikit-optimize

10. GPyOpt

GPyOpt - это инструмент для оптимизации (минимизации) функций черного ящика с использованием гауссовских процессов. Он был реализован на Python группой машинного обучения (в SITraN) Университета Шеффилда. GPyOpt основан на GPy, библиотеке для моделирования гауссовских процессов на Python. Он может обрабатывать большие наборы данных с помощью разреженных гауссовских моделей процессов.

"Ключевая особенность"

  1. Байесовская оптимизация с произвольными ограничениями
  2. Параллельная байесовская оптимизация
  3. Смешивание разных типов переменных s
  4. Настройка scikit-learn моделей
  5. Интеграция гиперпараметров модели
  6. Внешняя объективная оценка

Установка: pip install gpyopt

Спасибо за чтение!

Мы очень ценим любые отзывы и комментарии!

Некоторые из моих других сообщений могут быть вам интересны,





« is и == в Python
Ускорьте сравнение строк medium.com»