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


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

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

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

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

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

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

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

  2. Выберите опыт разработки с использованием кода или веб-интерфейс студии без использования кода: пользователи, предпочитающие опыт с кодом, могут использовать 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

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

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

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

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

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

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

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

Регрессия

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Важно!

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

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

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

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

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

Примечание.

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

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

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

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

Ансамблевые модели

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

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

Алгоритм выбора ансамбля Caruana с методом сортированной инициализации ансамбля определяет, какие модели использовать в ансамбле. На общем уровне этот алгоритм инициализирует ансамбль до пяти моделей с наилучшими индивидуальными оценками и проверяет, что эти модели находятся в пределах 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.