Автоматическое машинное обучение

Автоматическое машинное обучение (англ. Automated machine learning, AutoML) — это процесс автоматизации задач применения машинного обучения к реальным задачам. Это сочетание автоматизации и машинного обучения[1].

Автоматическое машинное обучение ]потенциально охватывает все этапы — от работы с исходным набором данных до построения модели машинного обучения, готовой к внедрению. AutoML был предложен как решение на базе искусственного интеллекта для постоянно растущей сложности применения методов машинного обучения[2][3]. Высокая степень автоматизации в AutoML позволяет неспециалистам использовать модели и методы машинного обучения без необходимости становиться экспертами в этой области. Автоматизация полного цикла применения методов машинного обучения дополнительно обеспечивает более простые решения, ускоряет их создание, а получаемые модели зачастую превосходят по качеству разработанные вручную[4].

К распространённым техникам AutoML относятся оптимизация гиперпараметров, метаобучение и поиск нейронных архитектур.

Сравнение со стандартным подходом

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

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

Автоматизация машинного обучения играет важную роль в более широкой задаче автоматизации науки о данных, которая также включает такие сложные задачи, как инженерия данных, исследование данных, интерпретация моделей и прогнозирование[5].

Этапы автоматизации

Автоматическое машинное обучение может охватывать различные стадии процесса машинного обучения[3]. Основные этапы автоматизации включают:

  • Подготовка данных и их загрузка (из необработанных и различных форматов)
    • Распознавание типа столбцов, например: булевый, дискретный числовой, непрерывный числовой или текстовый
    • Определение назначения столбцов, например: целевой признак/метка, поле стратификации, числовой признак, категориальный текстовый признак или произвольный текст
    • Определение типа задачи, например: бинарная классификация, регрессия, кластеризация или ранжирование
  • Выделение признаков
  • Выбор модели — выбор алгоритма машинного обучения, часто включая несколько конкурирующих программных реализаций
  • Ансамблирование — подход, при котором использование нескольких моделей часто даёт лучшие результаты, чем одна модель[6]
  • Оптимизация гиперпараметров алгоритма обучения и этапа формирования признаков
    • Поиск нейронной архитектуры
  • Выбор пайплайна с учётом ограничений времени, памяти и сложности
  • Выбор метрик оценки качества и процедур валидации
  • Проверка задачи
  • Анализ полученных результатов
  • Формирование пользовательских интерфейсов и визуализаций

Проблемы и ограничения

В области автоматического машинного обучения существует ряд важных вызовов. Одной из ключевых тем считается так называемое «развитие в формате кустарной индустрии»[7]. Эта формулировка отражает проблему, когда процессы сильно зависят от ручных решений и субъективности экспертов, что противоречит самой идее машинного обучения — построению систем, которые способны учиться и улучшаться самостоятельно, основываясь на анализе данных. В сущности, речь идёт о балансе между степенью участия экспертов и степенью автономии машин при обучении. Тем не менее, для разработки таких систем требуются знания алгоритмов машинного обучения и проектирования систем, а также значительные трудозатраты на их создание и настройку[8].

Дополнительными вызовами остаются задачи метаобучения[9] и эффективного распределения вычислительных ресурсов.

Примечания

Литература