7 фреймворков автоматического машинного обучения
Чем интересны системы автоматического машинного обучения? Какие фреймворки годятся для AutoML? В чем пока есть ограничения? Отвечаем в статье.
Концепция автоматического машинного обучения
Пусть имеется набор данных, по которому мы хотим получить предсказательную модель. Традиционный подход машинного обучения требует выполнить такую последовательность действий:
- Предварительная обработка данных.
- Определение характерных особенностей датасета, конструирование новых признаков.
- Выбор подходящей модели обучения.
- Оптимизация гиперпараметров.
- Обучение при оптимальных параметрах.
Процесс может оказаться долгим, а значит, дорогим. Ведь для лучшего результата необходимо многократно проверить гипотезу, которая, к тому же, на каждом шаге может уточняться.
Задача автоматического машинного обучения (AutoML) – автоматизировать все или хотя бы некоторые из перечисленных этапов без потери предсказательной точности. Идеальная стратегия AutoML предполагает, что любой пользователь может взять «сырые» данные, построить на них модель, и получить предсказания с лучшей возможной (для имеющейся выборки) точностью.
Но не значит ли это, что наступит день, когда отпадет необходимость в специалистах по анализу данных? Конечно, нет. Технологии AutoML направлены на избавление от рутинной последовательности операций и ручного перебора моделей. Чтобы специалисты могли больше времени уделять творческой стороне вопроса.
Рассмотрим описанный выше «конвейер» машинного обучения. Каждый этап требует своего подхода. Например, для подготовки данных бывает необходимо автоматизировать:
- Определение типа столбцов (численные данные, текст, булевы значения и т. д.)
- Смысловое содержание. Например, если поле – текст, то что он представляет: фамилию, дату, геотэг и т. д.
- Обнаружение задач: выделение кластеров, ранжирование и пр.
Особое внимание уделяется процессу нахождения лучших гиперпараметров модели. Два наиболее распространенных метода их нахождения:
- Поиск по сетке/решетке (grid search).
- Случайный поиск (random search).
Очевидно, что популярность этих методов объясняется простотой реализации. Оба метода оправданы лишь для малого числа гиперпараметров. Для оптимизации параметров используются и другие алгоритмы: байесовской оптимизации, имитации отжига, эволюционные алгоритмы и др. Рассмотрим подробнее фреймворки, позволяющие найти подходящую модель и настроить ее параметры.
Фреймворки автоматического машинного обучения
1. MLBox
Фреймворк MLBox успел хорошо зарекомендовать себя на Kaggle. Так, на соревновании Two Sigma Connect: Rental Listing Inquiries применявшие MLBox участники смогли попасть в верхние 5% рейтинга. MLBox решает следующие задачи:
- Подготовка данных (наиболее развитая часть библиотеки)
- Выбор модели
- Поиск гиперпараметров
Из недостатков отметим, что на Linux систему установить гораздо проще, чем на Mac или Windows.
2. Auto Sklearn
Как следует из названия, фреймворк Auto Sklearn построен на базе популярной библиотеки машинного обучения scikit-learn. Что умеет Auto Sklearn:
- Генерация признаков (отличительная черта фреймворка)
- Выбор модели
- Настройка гиперпараметров
Auto Sklearn хорошо справляется с небольшими наборами данных, но не «переваривает» крупные датасеты.
3. TPOT
TPOT позиционируется как фреймворк, в котором конвейер машинного обучения автоматизирован целиком. Для нахождения оптимальной модели используется генетический алгоритм. Строится множество различных моделей с выбором лучшей по предсказательной точности. Так же, как и Auto Sklearn, этот фреймворк представляет собой надстройку над scikit-learn. Зато у TPOT имеются собственные алгоритмы регрессии и классификации. К недостаткам относится неумение TPOT взаимодействовать с естественным языком и категориальными строками.
4. H2O
H2O AutoML поддерживает работу как с традиционными моделями машинного обучения, так и с нейросетями. Особенно подойдет тем, кто ищет способ автоматизации глубокого обучения.
5. Auto Keras
Auto Keras следует дизайну классического scikit-learn API, но использует мощный нейросетевой поиск параметров модели с помощью Keras.
6. Google Cloud AutoML
Cloud AutoML использует нейросетевую архитектуру. У этого продукта Google простой пользовательский интерфейс для обучения и разворачивания моделей. Однако платформа платна, и в долговременной перспективе ее имеет смысл применять лишь в коммерческих проектах. С другой стороны, в течение года Cloud AutoML с ограничениями доступен бесплатно для исследовательских целей.
7. Uber Ludwig
Цель проекта Uber Ludwig – автоматизировать процесс глубокого обучения с минимальным количеством кода. Этот фреймворк работает только с моделями глубокого обучения, игнорируя прочие модели ML. И, конечно, как это обычно бывает с Deep Learning, существенную роль играет количество данных.
Текущие ограничения автоматического машинного обучения
Итак, AutoML уже довольно хорошо справляется с обучением с учителем, то есть с качественно размеченными данными. Но пока не умеет решать задачи обучения без учителя или с подкреплением. Последнее вызывает сложности для воплощения таких сценариев, как искусственный интеллект робота, находящегося в настоящем мире или соперника в игре.
Редким примером удачной реализации автоматического обучения с подкреплением является AlphaZero, разработанная компанией DeepMind. На ее примере была показана возможность улучшения качества игры в Го при тренировках, в которых искусственный интеллект соревновался с самим собой.
Технологии AutoML также пока имеют трудности в обработке сложных сырых данных и оптимизации процесса конструирования новых признаков (feature engineering). По этой причине выбор значимых признаков остается одним из краеугольных камней процесса обучения модели.
Однако во всех перечисленных областях наблюдается прогресс, который ускоряется с увеличением числа конкурсов по AutoML.