Что такое автоматизированное машинное обучение (AutoML)?

ОБЛАСТЬ ПРИМЕНЕНИЯ: пакет SDK для Python azure-ai-ml версии 2 (текущая версия)

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

Как работает AutoML?

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

С помощью Машинного обучения Azure вы можете проектировать и запускать эксперименты по использованию автоматизированного ML.

  1. Определите проблему машинного обучения , которую необходимо решить: классификацию, прогнозирование, регрессию, компьютерное зрение или NLP.

  2. Выберите, хотите ли вы использовать интерфейс code-first или веб-интерфейс без code Studio. Пользователи, которые предпочитают использовать интерфейс code-first, могут использовать пакет SDK 2 для Машинного обучения Azure или СРЕДУ CLIv2 Машинного обучения Azure. Начало работы с учебником. Обучение модели обнаружения объектов с помощью AutoML и Python. Пользователи, предпочитающие ограниченный интерфейс или без кода, могут использовать веб-интерфейс в Студия машинного обучения Azure по адресу https://ml.azure.com. Начало работы с учебником. Создание модели классификации с помощью автоматизированного машинного обучения в Машинном обучении Azure.

  3. Укажите источник помеченных обучающих данных. Вы можете перенести данные в Машинное обучение Azure различными способами.

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

  5. Отправьте задание обучения.

  6. Проверьте результаты.

Этот процесс представлен на схеме ниже. Автоматизированное машинное обучение

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

Несмотря на то, что создание модели автоматизировано, можно также узнать, насколько важны признаки или насколько они подходят для создаваемых моделей.

Когда следует использовать AutoML: классификация, регрессия, прогнозирование, компьютерное зрение & NLP

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

Специалисты по машинному обучению и разработчики в разных отраслях могут использовать автоматизированное ML для следующего:

  • Реализации решений ML без обширных знаний в области программирования.
  • Экономии времени и ресурсов.
  • Использования рекомендаций по обработке и анализу данных.
  • Обеспечения гибкого подхода к решению проблем.

Классификация

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

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

Пример классификации и автоматизированного машинного обучения см. в этой записной книжке Python: Банковский маркетинг.

Регрессия

Аналогично классификации, регрессия также является распространенной задачей контролируемого обучения. Машинное обучение Azure предлагает конструирование признаков, характерных для проблем регрессии. Узнайте подробнее о параметрах конструирования признаков. Список алгоритмов, поддерживаемых AutoML, также можно найти здесь.

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

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

Прогнозирование временных рядов

Создание прогнозов является неотъемлемой частью любого бизнеса, будь то прогнозирование дохода, инвентаризация, продажи или спрос. Вы можете использовать автоматизированное ML для объединения методов и подходов и получения рекомендуемого, высококачественного прогноза временных рядов. Список алгоритмов, поддерживаемых AutoML, можно найти здесь.

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

Конфигурация расширенного прогнозирования включает следующее:

  • Контроль сплошности и конструирование признаков.
  • Временные ряды и средства обучения DNN (Auto-ARIMA, Prophet, ForecastTCN).
  • Поддержка многих моделей путем группирования.
  • Перекрестная проверка последовательного происхождения
  • Настраиваемые задержки.
  • Признаки для скользящих агрегатов значений окна.

Пример прогнозирования и автоматизированного машинного обучения см. в этой записной книжке Python: Потребность в энергии.

компьютерное зрение;

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

Используя эти параметры, вы можете выполнять такие задачи:

  • Простая интеграция с возможностью добавления меток к данным Машинного обучения Azure
  • Использование помеченных данных для создания моделей изображений
  • Оптимизация производительности модели путем указания алгоритма модели и настройки гиперпараметров.
  • Загрузка или развертывание полученной модели в качестве веб-службы в Машинное обучение Azure.
  • Ввод в эксплуатацию в большом масштабе, используя возможности Машинного обучения Azure MLOps и Конвейеры машинного обучения.

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

Узнайте, как настроить обучение AutoML для моделей компьютерного зрения.

Computer vision tasks examples. Image from: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf Изображение из: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf

Автоматизированное машинное обучение поддерживает для изображений следующие задачи компьютерного зрения.

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

Обработка естественного языка: NLP

Поддержка задач обработки естественного языка (NLP) в автоматизированном машинном обучении позволяет легко создавать модели, обученные по текстовым данным, для классификации текста и сценариев распознавания именованных сущностей. Создавать модели NLP, обученные с помощью автоматизированного машинного обучения, можно с использованием пакета SDK Python для Машинного обучения Azure. Доступ к результатам экспериментальных заданий, моделям и выходным данным можно получить из пользовательского интерфейса Студии машинного обучения Azure.

NLP поддерживает следующие возможности:

  • Комплексное обучение NLP глубоким нейронным сетям с помощью последних предварительно обученных моделей BERT
  • Простая интеграция с возможностью маркировки данных Машинного обучения Azure
  • Использование помеченных данных для создания моделей NLP
  • Многоязычная поддержка, включающая 104 языка
  • Распределенное обучение с использованием Horovod

Узнайте, как настроить обучение AutoML для моделей NLP.

Обучение, проверка и тестирование данных

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

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

Важно!

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

Узнайте, как использовать проверочные данные для настройки экспериментов AutoML (предварительная версия) с помощью пакета SDK или Студии машинного обучения Azure.

Проектирование признаков

Конструирование признаков — это создание функций, которые помогают алгоритмам машинного обучения обучаться быстрее. При этом используется база данных предметной области. Чтобы упростить конструирование признаков в машинном обучении Azure применяются методики масштабирования и нормализации. В совокупности эти методы и функции, описанные выше, называются конструированием признаков.

Для автоматических экспериментов c машинным обучением конструирование признаков применяется автоматически. Но этот процесс также можно настроить под ваши данные. Узнайте больше о том, что включает в себя конструирование признаков (пакет SDK версии 1) и как AutoML помогает предотвратить чрезмерное заполнение и несбалансированность данных в моделях.

Примечание

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

Настройка конструирования признаков

Также доступны дополнительные методы конструирования признаков, такие как, кодирование и преобразования.

Включить этот параметр можно следующими способами:

Коллективные модели

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

  • Голосование: прогноз формируется на основе взвешенного среднего вероятности прогнозируемых классов (для задач классификации) или целевых объектов прогнозируемой регрессии (для задач регрессии).
  • Распределение: объединение разнородных моделей и обучение метамодели на основе выходных данных отдельных моделей. Текущие метамодели по умолчанию — LogisticRegression для задач классификации и ElasticNet для задач регрессии/прогнозирования.

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

Сведения об изменении параметров ансамбля по умолчанию в автоматизированном машинном обучении см. в пакете AutoML .

AutoML & ONNX

С помощью Машинного обучения Azure AutoML можно использовать для создания модели Python и преобразования ее в формат ONNX. После преобразования моделей в формат ONNX их можно запускать на различных платформах и устройствах. Узнайте подробнее об ускорении моделей ML с помощью ONNX.

Сведения о том, как преобразовать модель в формат ONNX, см. в этом примере Jupyter Notebook. Узнайте, какие алгоритмы поддерживаются в ONNX.

Среда выполнения ONNX также поддерживает C#, поэтому вы можете автоматически использовать созданную модель в приложениях C# без необходимости перекодирования или любых сетевых задержек, которые имеются на конечных точках REST. Дополнительные сведения об использовании модели AutoML ONNX в приложении .NET с ML.NET и работу с моделями ONNX с помощью API языка C# среды выполнения ONNX.

Дальнейшие действия

Есть несколько ресурсов, которые помогут вам приступить к работе с AutoML.

Практические руководства и другие учебные материалы

Руководства — это полный вводный пример в сценарии AutoML.

В обучающих статьях приводятся дополнительные сведения о возможностях автоматизированного ML. Например,

Примеры записной книжки Jupyter

Изучите подробные примеры кода и варианты использования в репозитории записных книжек GitHub для автоматизированных примеров машинного обучения.

Справочник по пакету SDK для Python

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

Примечание

Автоматизированное машинное обучение также доступно в других решениях Майкрософт, например, ML.NET, HDInsight, Power BI и SQL Server