Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:
IoT Edge 1.1
Это важно
Дата окончания поддержки IoT Edge 1.1 была 13 декабря 2022 г.. Чтобы получить сведения о поддержке определенного продукта, службы, технологии или API, перейдите на страницу Политика жизненного цикла поддержки Майкрософт. Дополнительные сведения об обновлении до последней версии IoT Edge см. в статье Update IoT Edge.
Часто приложения Интернета вещей хотят воспользоваться преимуществами интеллектуального облака и интеллектуальных периферийных устройств. В этом руководстве мы рассмотрим обучение модели машинного обучения с данными, собранными с устройств Интернета вещей в облаке, развертывание этой модели в IoT Edge и периодическое обслуживание и уточнение модели.
Примечание.
Основные понятия, описанные в этом наборе руководств, применяются ко всем версиям IoT Edge, но пример устройства, создаваемого для пробного использования сценария, запускает IoT Edge версии 1.1.
Основная цель этого руководства — представить обработку данных Интернета вещей с помощью машинного обучения, в частности на периферии. Хотя мы касаемся многих аспектов общего рабочего процесса машинного обучения, это руководство не предназначено как подробное введение в машинное обучение. В качестве примера мы не пытаемся создать высокооптимизируемую модель для варианта использования . Мы просто делаем достаточно, чтобы проиллюстрировать процесс создания и использования жизнеспособной модели для обработки данных Интернета вещей.
В этом разделе руководства рассматривается следующее:
- Предварительные требования для выполнения последующих частей руководства.
- Целевая аудитория учебника.
- Вариант использования, который рассматривается в руководстве.
- Общий процесс, описанный в учебнике, предназначен для выполнения варианта использования.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Предпосылки
Чтобы завершить работу с руководством, вам потребуется доступ к подписке Azure, в которой есть права на создание ресурсов. Некоторые службы, используемые в этом руководстве, будут взиматься за использование Azure. Если у вас еще нет подписки Azure, вы можете приступить к работе с бесплатной учетной записью Azure.
Вам также нужен компьютер с установленным PowerShell, где можно запускать скрипты для настройки виртуальной машины Azure в качестве компьютера разработки.
В этом документе мы используем следующий набор средств:
Центр Интернета вещей Azure для сбора данных
Основной интерфейс для подготовки данных и экспериментов в машинном обучении - это Azure Notebooks. Запуск кода Python в блокноте на подмножестве выборочных данных — отличный способ быстрой итеративной и интерактивной обратной связи во время подготовки данных. Записные книжки Jupyter также можно использовать для подготовки скриптов для выполнения в большом масштабе в серверной части вычислений.
Azure Machine Learning как серверная часть для машинного обучения в масштабах и для генерации изображений с помощью машинного обучения. Мы используем серверную часть машинного обучения Azure с помощью сценариев, подготовленных и протестированных в записных книжках Jupyter.
Azure IoT Edge для использования образов машинного обучения вне облака
Очевидно, что доступны другие варианты. Например, в некоторых сценариях IoT Central можно использовать в качестве альтернативы без кода для записи начальных обучающих данных с устройств Интернета вещей.
Целевая аудитория и роли
Этот набор статей предназначен для разработчиков без предыдущего опыта разработки Интернета вещей или машинного обучения. Развертывание машинного обучения на периферии требует знания о том, как подключить широкий спектр технологий. Поэтому в этом руководстве рассматривается весь комплексный сценарий, демонстрирующий один из способов объединения этих технологий для решения Интернета вещей. В реальной среде эти задачи могут быть распределены между несколькими людьми с различными специализациями. Например, разработчики будут сосредоточиться на устройстве или облачном коде, а специалисты по обработке и анализу данных разработали модели аналитики. Чтобы отдельный разработчик успешно завершил работу с этим руководством, мы предоставили дополнительные рекомендации с аналитическими сведениями и ссылками на дополнительные сведения, которые мы надеемся, достаточно, чтобы понять, что делается, а также почему.
Кроме того, вы можете объединиться с коллегами разных ролей, чтобы следовать учебному пособию вместе, применяя весь свой опыт и навыки, и узнать, как всё работает в комплексе.
В любом случае для ориентации читателей каждая статья в этом руководстве указывает на роль пользователя. К этим ролям относятся:
- Облачная разработка (включая облачного разработчика, работающего в роли DevOps)
- Аналитика данных
Вариант использования: прогнозное обслуживание
Этот сценарий основан на варианте использования, представленном на конференции по прогностикам и управлению работоспособностью (PHM08) в 2008 году. Цель - прогнозирование оставшегося срока эксплуатации (RUL) набора турбовентиляторных двигателей самолетов. Эти данные были созданы с помощью C-MAPSS, коммерческой версии ПРОГРАММНОго обеспечения MAPSS (модульное Aero-Propulsion системное моделирование). Это программное обеспечение предоставляет гибкую среду моделирования двигателя turbofan, чтобы удобно имитировать параметры работоспособности, управления и двигателя.
Данные, используемые в этом руководстве, взяты из набора данных моделирования снижения уровня двигателя Turbofan.
Из файла readme:
Экспериментальный сценарий
Наборы данных состоят из нескольких многовариантных временных рядов. Каждый набор данных делится на обучающие и тестовые подмножества. Каждый временной ряд относится к отдельному двигателю, т. е. данные можно считать принадлежащими парку двигателей одного типа. Каждый двигатель имеет различные степени начального износа и производственных вариаций, которые неизвестны пользователю. Этот износ и вариация считаются нормальными, т. е. это не считается состоянием сбоя. Существует три операционных параметра, которые оказывают существенное влияние на производительность подсистемы. Эти параметры также включены в данные. Данные загрязнены шумом датчика.
Двигатель работает нормально в начале каждого временного ряда и даёт сбой в какой-то момент во время него. В наборе обучения неисправность растет в величине до сбоя системы. В тестовом наборе временной ряд заканчивается за некоторое время до сбоя системы. Цель соревнования заключается в прогнозировании количества оставшихся рабочих циклов до отказа в тестовом наборе, т. е. количество рабочих циклов после последнего выполненного цикла, в течение которых двигатель будет продолжать работать. Также предоставлен вектор значений true Remaining Useful Life (RUL) для тестовых данных.
Поскольку данные были опубликованы для конкуренции, несколько подходов к производным моделям машинного обучения были опубликованы независимо. Мы обнаружили, что изучение примеров полезно в понимании процесса и причин, связанных с созданием конкретной модели машинного обучения. См. пример:
Модель прогнозирования сбоя воздушного двигателя пользователем GitHub jancervenka.
Деградация двигателя Turbofan пользователем GitHub hankroark.
Процедура
На рисунке ниже показаны грубые шаги, описанные в этом руководстве.
Сбор обучающих данных: процесс начинается с сбора обучающих данных. В некоторых случаях данные уже собраны и доступны в базе данных или в виде файлов данных. В других случаях, особенно для сценариев Интернета вещей, данные должны собираться с устройств Интернета вещей и датчиков и храниться в облаке.
Предположим, что у вас нет коллекции двигателей turbofan, поэтому файлы проекта включают простой симулятор устройства, который отправляет данные устройства НАСА в облако.
Подготовка данных. В большинстве случаев необработанные данные, собранные с устройств и датчиков, потребуют подготовки к машинному обучению. Этот шаг может включать очистку данных, переформатирование данных или предварительную обработку для добавления дополнительной информации, которую машинное обучение может использовать.
Для данных машинного двигателя самолета подготовка данных включает вычисление явного времени до сбоя для каждой точки данных в образце на основе фактических наблюдений за данными. Эта информация позволяет алгоритму машинного обучения находить корреляции между фактическими шаблонами данных датчика и ожидаемым оставшимся временем жизни подсистемы. Этот шаг очень зависит от домена.
Создание модели машинного обучения. На основе подготовленных данных теперь можно экспериментировать с различными алгоритмами машинного обучения и параметризациями для обучения моделей и сравнения результатов друг с другом.
В этом случае для тестирования мы сравниваем прогнозируемый результат, вычисляемый моделью, с реальным результатом, наблюдаемым на наборе двигателей. В Машинном обучении Azure можно управлять различными итерациями моделей, создаваемых в реестре моделей.
Разверните модель. После того как у нас есть модель, которая удовлетворяет нашим критериям успеха, мы можем перейти к развертыванию. Это включает перенос модели в веб-сервис, который может получать данные с помощью вызовов REST и возвращать результаты анализа. Затем приложение веб-службы упаковано в контейнер Docker, который, в свою очередь, можно развернуть в облаке или в виде модуля IoT Edge. В этом примере мы сосредоточимся на развертывании на IoT Edge.
Обслуживание и уточнение модели. Наша работа не заканчивается после развертывания модели. Во многих случаях мы хотим продолжать собирать данные и периодически отправлять эти данные в облако. Затем мы можем использовать эти данные для переобучения и уточнения модели, которую затем можно повторно развернуть в IoT Edge.
Очистка ресурсов
Это руководство является частью набора, в котором каждая статья основывается на работе, выполняемой в предыдущих. Подождите с очисткой ресурсов, пока не завершите последний урок.
Дальнейшие действия
Это руководство разделено на следующие разделы:
- Настройте компьютер разработки и службы Azure.
- Создайте обучающие данные для модуля машинного обучения.
- Обучение и развертывание модуля машинного обучения.
- Настройте устройство IoT Edge в качестве прозрачного шлюза.
- Создание и развертывание модулей IoT Edge.
- Отправьте данные на устройство IoT Edge.
Перейдите к следующей статье, чтобы настроить компьютер разработки и подготовить ресурсы Azure.