Автоматическое машинное обучение
Автоматическое машинное обучение (англ. Automated machine learning, AutoML) — это процесс автоматизации задач применения машинного обучения к реальным задачам. Это сочетание автоматизации и машинного обучения[1].
Автоматическое машинное обучение ]потенциально охватывает все этапы — от работы с исходным набором данных до построения модели машинного обучения, готовой к внедрению. AutoML был предложен как решение на базе искусственного интеллекта для постоянно растущей сложности применения методов машинного обучения[2][3]. Высокая степень автоматизации в AutoML позволяет неспециалистам использовать модели и методы машинного обучения без необходимости становиться экспертами в этой области. Автоматизация полного цикла применения методов машинного обучения дополнительно обеспечивает более простые решения, ускоряет их создание, а получаемые модели зачастую превосходят по качеству разработанные вручную[4].
К распространённым техникам AutoML относятся оптимизация гиперпараметров, метаобучение и поиск нейронных архитектур.
Сравнение со стандартным подходом
В типичном приложении машинного обучения специалисты располагают входными данными, которые используются для обучения модели. Сырые данные могут требовать преобразований для того, чтобы их можно было использовать с различными алгоритмами. Эксперт вынужден осуществлять предобработку данных, выделение признаков, извлечение признаков и отбор признаков. После этого проводится выбор алгоритма и оптимизация гиперпараметров, чтобы максимизировать качество прогноза модели. Если используется глубокое обучение, то архитектуру нейронной сети также подбирает специалист.
Каждый из этих шагов может быть довольно сложным и становится препятствием при практическом использовании машинного обучения. AutoML нацелен на упрощение данной последовательности действий, чтобы неспециалисты могли корректно и эффективно применять методы машинного обучения.
Автоматизация машинного обучения играет важную роль в более широкой задаче автоматизации науки о данных, которая также включает такие сложные задачи, как инженерия данных, исследование данных, интерпретация моделей и прогнозирование[5].
Этапы автоматизации
Автоматическое машинное обучение может охватывать различные стадии процесса машинного обучения[3]. Основные этапы автоматизации включают:
- Подготовка данных и их загрузка (из необработанных и различных форматов)
- Распознавание типа столбцов, например: булевый, дискретный числовой, непрерывный числовой или текстовый
- Определение назначения столбцов, например: целевой признак/метка, поле стратификации, числовой признак, категориальный текстовый признак или произвольный текст
- Определение типа задачи, например: бинарная классификация, регрессия, кластеризация или ранжирование
- Выделение признаков
- Отбор признаков
- Извлечение признаков
- Метаобучение и трансферное обучение
- Обнаружение и обработка смещённых или пропущенных данных
- Выбор модели — выбор алгоритма машинного обучения, часто включая несколько конкурирующих программных реализаций
- Ансамблирование — подход, при котором использование нескольких моделей часто даёт лучшие результаты, чем одна модель[6]
- Оптимизация гиперпараметров алгоритма обучения и этапа формирования признаков
- Поиск нейронной архитектуры
- Выбор пайплайна с учётом ограничений времени, памяти и сложности
- Выбор метрик оценки качества и процедур валидации
- Проверка задачи
- Обнаружение утечек данных
- Выявление неправильных конфигураций
- Анализ полученных результатов
- Формирование пользовательских интерфейсов и визуализаций
Проблемы и ограничения
В области автоматического машинного обучения существует ряд важных вызовов. Одной из ключевых тем считается так называемое «развитие в формате кустарной индустрии»[7]. Эта формулировка отражает проблему, когда процессы сильно зависят от ручных решений и субъективности экспертов, что противоречит самой идее машинного обучения — построению систем, которые способны учиться и улучшаться самостоятельно, основываясь на анализе данных. В сущности, речь идёт о балансе между степенью участия экспертов и степенью автономии машин при обучении. Тем не менее, для разработки таких систем требуются знания алгоритмов машинного обучения и проектирования систем, а также значительные трудозатраты на их создание и настройку[8].
Дополнительными вызовами остаются задачи метаобучения[9] и эффективного распределения вычислительных ресурсов.
Примечания
Литература
- Open Source AutoML Tools: AutoGluon, TransmogrifAI, Auto-sklearn, and NNI (англ.). Bizety (16 июня 2020).
- Ferreira, Luís, et al. «A comparison of AutoML tools for machine learning, deep learning and XGBoost.» 2021 International Joint Conference on Neural Networks (IJCNN). IEEE, 2021. https://repositorium.sdum.uminho.pt/bitstream/1822/74125/1/automl_ijcnn.pdf
- Feurer, M., Klein, A., Eggensperger, K., Springenberg, J., Blum, M., & Hutter, F. (2015). Efficient and robust automated machine learning. Advances in neural information processing systems, 28. https://proceedings.neurips.cc/paper_files/paper/2015/file/11d0e6287202fced83f79975ec59a3a6-Paper.pdf


