Поделиться через


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

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

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

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

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

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

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

  2. Выберите, хотите ли вы использовать опыт с приоритетом на код или веб-опыт с no-code студией: пользователи, которые предпочитают опыт с кодом, могут использовать Azure Machine Learning SDKv2 или Azure Machine Learning CLIv2. Начните с учебного пособия: Обучение модели обнаружения объектов с помощью AutoML и Python. Пользователи, которые предпочитают ограниченный или без написания кода опыт, могут использовать веб-интерфейс в студии машинного обучения Azure.https://ml.azure.com Начните с руководства: создайте модель классификации с помощью автоматизированного ML в Azure Machine Learning.

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

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

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

  6. Просмотрите результаты.

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

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

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

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

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

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

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

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

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

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

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

Регрессия

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры задач компьютерного зрения. Изображение из: 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 применяются методики масштабирования и нормализации. Коллективно эти техники и проектирование признаков называются фeатуризацией.

Для автоматических экспериментов 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 среды выполнения ONNX для C#.

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

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

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

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

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

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

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

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

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

Примечание.

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