7 фреймворков автоматического машинного обучения

Чем интересны системы автоматического машинного обучения? Какие фреймворки годятся для AutoML? В чем пока есть ограничения? Отвечаем в статье.

Фреймворки автоматического машинного обучения

Концепция автоматического машинного обучения

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

  1. Предварительная обработка данных.
  2. Определение характерных особенностей датасета, конструирование новых признаков.
  3. Выбор подходящей модели обучения.
  4. Оптимизация гиперпараметров.
  5. Обучение при оптимальных параметрах.

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

Задача автоматического машинного обучения (AutoML) – автоматизировать все или хотя бы некоторые из перечисленных этапов без потери предсказательной точности. Идеальная стратегия AutoML предполагает, что любой пользователь может взять «‎сырые» данные, построить на них модель, и получить предсказания с лучшей возможной (для имеющейся выборки) точностью.

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

Рассмотрим описанный выше «конвейер» машинного обучения. Каждый этап требует своего подхода. Например, для подготовки данных бывает необходимо автоматизировать:

  • Определение типа столбцов (численные данные, текст, булевы значения и т. д.)
  • Смысловое содержание. Например, если поле – текст, то что он представляет: фамилию, дату, геотэг и т. д.
  • Обнаружение задач: выделение кластеров, ранжирование и пр.

Особое внимание уделяется процессу нахождения лучших гиперпараметров модели. Два наиболее распространенных метода их нахождения:

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

Фреймворки автоматического машинного обучения

1. MLBox

Фреймворк автоматического машинного обучения

Фреймворк MLBox успел хорошо зарекомендовать себя на Kaggle. Так, на соревновании Two Sigma Connect: Rental Listing Inquiries применявшие MLBox участники смогли попасть в верхние 5% рейтинга. MLBox решает следующие задачи:

  • Подготовка данных (наиболее развитая часть библиотеки)
  • Выбор модели
  • Поиск гиперпараметров

Из недостатков отметим, что на Linux систему установить гораздо проще, чем на Mac или Windows.

2. Auto Sklearn

7 фреймворков автоматического машинного обучения

Как следует из названия, фреймворк Auto Sklearn построен на базе популярной библиотеки машинного обучения scikit-learn. Что умеет Auto Sklearn:

  • Генерация признаков (отличительная черта фреймворка)
  • Выбор модели
  • Настройка гиперпараметров

Auto Sklearn хорошо справляется с небольшими наборами данных, но не «переваривает» крупные датасеты.

3. TPOT

7 фреймворков автоматического машинного обучения

TPOT позиционируется как фреймворк, в котором конвейер машинного обучения автоматизирован целиком. Для нахождения оптимальной модели используется генетический алгоритм. Строится множество различных моделей с выбором лучшей по предсказательной точности. Так же, как и Auto Sklearn, этот фреймворк представляет собой надстройку над scikit-learn. Зато у TPOT имеются собственные алгоритмы регрессии и классификации. К недостаткам относится неумение TPOT взаимодействовать с естественным языком и категориальными строками.

4. H2O

7 фреймворков автоматического машинного обучения

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

5. Auto Keras

7 фреймворков автоматического машинного обучения

Auto Keras следует дизайну классического scikit-learn API, но использует мощный нейросетевой поиск параметров модели с помощью Keras.

6. Google Cloud AutoML

7 фреймворков автоматического машинного обучения

Cloud AutoML использует нейросетевую архитектуру. У этого продукта Google простой пользовательский интерфейс для обучения и разворачивания моделей. Однако платформа платна, и в долговременной перспективе ее имеет смысл применять лишь в коммерческих проектах. С другой стороны, в течение года Cloud AutoML с ограничениями доступен бесплатно для исследовательских целей.

7. Uber Ludwig

7 фреймворков автоматического машинного обучения

Цель проекта Uber Ludwig – автоматизировать процесс глубокого обучения с минимальным количеством кода. Этот фреймворк работает только с моделями глубокого обучения, игнорируя прочие модели ML. И, конечно, как это обычно бывает с Deep Learning, существенную роль играет количество данных.

Текущие ограничения автоматического машинного обучения

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

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

Технологии AutoML также пока имеют трудности в обработке сложных сырых данных и оптимизации процесса конструирования новых признаков (feature engineering). По этой причине выбор значимых признаков остается одним из краеугольных камней процесса обучения модели.

Однако во всех перечисленных областях наблюдается прогресс, который ускоряется с увеличением числа конкурсов по AutoML.

Делитесь своим списком must-have фреймворков машинного обучения ;)

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ