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

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

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

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

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

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

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

  2. Выберите, хотите ли вы использовать интерфейс с кодом для первого кода или веб-интерфейс студии no-code studio: пользователи, которые предпочитают интерфейс с кодом, могут использовать Машинное обучение Azure SDKv2 или Машинное обучение Azure CLIv2. Начало работы с руководством. Обучение модели обнаружения объектов с помощью 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: Bank Marketing.

Регрессия

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

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

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

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

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

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

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

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

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

Компьютерное зрение

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

С помощью этой возможности можно:

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

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

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

Примеры задач компьютерного зрения. Изображение из: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf Изображение из: http://cs231n.stanford.edu/slides/2021/lecture_15.pdf

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

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

Обработка естественного языка: 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 можно использовать автоматизированное машинное обучение для создания модели Python и преобразования ее в формат ONNX. После того как модели находятся в формате ONNX, их можно запускать на различных платформах и устройствах. Узнайте подробнее об ускорении моделей ML с помощью ONNX.

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

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

Следующие шаги

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

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

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

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

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

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

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

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

Примечание.

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