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

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

Введение в автоматизированное машинное обучение (AutoML)

Определение и концепция

Автоматизированное машинное обучение (AutoML) — это подобласть машинного обучения, в которой основное внимание уделяется автоматизации всего конвейера машинного обучения или его частей. Конвейер машинного обучения состоит из нескольких шагов, необходимых для создания и развертывания модели машинного обучения. Эти шаги включают в себя:

  • Предварительная обработка данных. Этот этап включает в себя очистку, преобразование и подготовку данных для машинного обучения. Это может включать такие задачи, как обработка пропущенных значений, выбросов, дубликатов, шума, дисбалансов, кодирование категориальных переменных, масштабирование числовых переменных и т. д.
  • Разработка функций: этот шаг включает в себя создание новых функций или изменение существующих функций на основе данных, которые могут повысить производительность модели машинного обучения. Он может включать в себя такие задачи, как извлечение признаков, выбор признаков, преобразование признаков, объединение признаков и т. д.
  • Выбор модели: этот шаг включает в себя выбор наиболее подходящего алгоритма или архитектуры машинного обучения для данной задачи. Это может включать в себя такие задачи, как сравнение различных типов моделей (например, линейных моделей, древовидных моделей, нейронных сетей), оценка их производительности на проверочном наборе или использование перекрестной проверки, выбор лучшей модели на основе некоторых критериев (например, точность, точность, полнота) и т.
  • Конфигурация модели: этот шаг включает в себя настройку начальных параметров или настроек выбранной модели машинного обучения. Он может включать в себя такие задачи, как определение входного и выходного слоев, определение функций активации, инициализация весов, установка функции потерь, выбор оптимизатора и т. д.
  • Настройка гиперпараметров. Этот шаг включает в себя поиск оптимальных значений гиперпараметров выбранной модели машинного обучения. Гиперпараметры — это параметры, которые не изучаются моделью, но влияют на ее производительность. Они могут включать такие параметры, как скорость обучения, количество эпох, размер пакета, регуляризация, отсев и т. д. Настройка гиперпараметров может выполняться с использованием различных методов, таких как поиск по сетке, случайный поиск, байесовская оптимизация, эволюционные алгоритмы и т. д.
  • Оценка модели. Этот шаг включает в себя оценку производительности окончательной модели машинного обучения на тестовом наборе или с использованием других показателей. Он может включать в себя такие задачи, как расчет точности, прецизионности, отзыва, F1-оценки, кривой ROC, AUC, матрицы путаницы и т. д., сравнение с базовыми моделями или человеческими характеристиками, анализ ошибок или неправильных классификаций и т. д.
  • Развертывание модели. Этот шаг включает в себя развертывание окончательной модели машинного обучения в рабочей среде или предоставление ее для использования другими приложениями или пользователями. Это может включать такие задачи, как сохранение или экспорт модели в подходящем формате (например, pickle, ONNX), размещение или обслуживание модели на облачной платформе (например, Azure ML, AWS Sagemaker), создание API или веб-интерфейса для доступ к модели (например, Flask), периодический мониторинг или обновление модели (например, с использованием циклов обратной связи) и т. д.

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

Важность и преимущества

AutoML важен и полезен по нескольким причинам. Во-первых, AutoML может сократить время и ресурсы, необходимые для создания и развертывания моделей машинного обучения. Согласно опросу Kaggle, специалисты по данным тратят большую часть своего времени на очистку данных (23%), разработку функций (14%) и выбор модели (12%), и только 11% своего времени тратят на построение моделей и 7% при развертывании модели. AutoML может автоматизировать эти задачи и ускорить конвейер машинного обучения, позволяя специалистам по данным сосредоточиться на более творческих и стратегических аспектах своей работы. Например, AutoML Vision от Google утверждает, что сокращает время, необходимое для создания пользовательского классификатора изображений, с недель до минут.

Во-вторых, AutoML может сделать машинное обучение доступным для неспециалистов. Машинное обучение — сложная и быстро развивающаяся область, для освоения которой требуется много знаний и опыта. Однако не у всех есть опыт, навыки или ресурсы для изучения и применения машинного обучения. AutoML может снизить барьеры для входа и демократизировать машинное обучение, предоставляя удобные интерфейсы, готовые модели и рекомендации для неспециалистов. Например, Microsoft Azure AutoML позволяет пользователям создавать модели машинного обучения без кода или с минимальным кодом, используя интерфейс перетаскивания.

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

Процесс автоматизированного машинного обучения

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

Предварительная обработка данных и проектирование признаков

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

  • Обработка отсутствующих значений. Отсутствующие значения — это значения, которые не записаны или не доступны в данных. Отсутствующие значения могут возникать по разным причинам, например из-за человеческих ошибок, сбоев системы или преднамеренных пропусков. Отсутствующие значения могут повлиять на производительность моделей машинного обучения, поскольку они могут привести к систематической ошибке или шуму в данных. Поэтому важно правильно обработать пропущенные значения, прежде чем применять машинное обучение. Некоторые из распространенных методов обработки пропущенных значений:
  • Удаление строк или столбцов. Этот метод включает удаление строк или столбцов, содержащих отсутствующие значения, из данных. Этот метод прост и быстр, но может привести к потере ценной информации или значительному уменьшению размера данных.
  • Вменение значений: этот метод включает замену отсутствующих значений некоторыми оценочными значениями, основанными на другой доступной информации. Этот метод может сохранить размер и структуру данных, но может привести к ошибкам или допущениям в данных. Некоторые из распространенных методов вменения значений:
  • Вменение среднего/медианы/моды: этот метод включает замену пропущенных значений средним значением, медианой или модой соответствующего столбца или строки. Этот метод прост и быстр, но он может не учитывать изменчивость или распределение данных.
  • Вменение постоянного значения: этот метод включает замену отсутствующих значений постоянным значением, которое отличается от любого другого значения в данных. Этот метод может явно указывать на наличие пропущенных значений, но он может не отражать истинный характер или взаимосвязь данных.
  • Вменение регрессии: этот метод включает замену отсутствующих значений предсказанными значениями из модели регрессии, которая использует другие переменные в качестве предикторов. Этот метод может зафиксировать корреляцию или тенденцию данных, но может привести к ошибкам или переобучению модели.
  • Вменение K-ближайших соседей: этот метод включает замену пропущенных значений средним или средневзвешенным значением k ближайших соседей, которые имеют аналогичные значения для других переменных. Этот метод может фиксировать сходство или близость данных, но он может быть дорогостоящим в вычислительном отношении или чувствительным к выбросам.
  • Множественное вменение: этот метод включает замену отсутствующих значений несколькими наборами вмененных значений, которые отражают неопределенность или изменчивость данных. Этот метод может обеспечить более надежные и точные оценки, чем методы одиночного вменения, но он может оказаться более сложным и трудным для реализации.
  • Обработка выбросов: выбросы — это значения, которые значительно отличаются от большинства других значений в данных. Выбросы могут возникать по разным причинам, таким как ошибки измерения, естественные вариации или аномалии. Выбросы могут повлиять на производительность моделей машинного обучения, поскольку они могут исказить распределение или взаимосвязь.